Folks,
What's the biggest issue, I see with the plugin system right now. There is no way to know when a new plugin has been released for Indigo... Well, other than trying to monitor the forums...
I am trying to solve this problem...
First, before I go to far, I would love it if someone with a little bit more Django experience would be willing to give a hand here... But, I am now learning a completely new web design platform, as I engineer this system, since I have never even examined Django before 3 days ago....
How can I find new plugins? Try here, http://www.indigo-plugins.com/ListAll .
What information is available through the web site?
* The current Version of the Plugin
* What version of Indigo this plugin ahas been tested with
* The Price of the plugin (This is my own future planning. I do not know if this field will ever be used)
* What URL downloads can be found at
* A Short description
* A Long description
* Author's name
* Author's web site
* Author's Email
* The Bundle ID of the plugin that Indigo recognizes
How can I be sure that I am running the latest version of a plugin? If the developers enable the Update system built-in to this website, you will be notified in the Indigo log when a newer version of the plugin is released.
How can developers use this to help ensure their plugins are up to date? When you register your plugin at the web site, one of the fields contains the bundle ID of the plugin.
Demo URL for update server...
http://127.0.0.1:8000/VersionCheck/com. ... xternal_IP
These are the changes necessary, to make this update engine work... I'll show you, the changes I made to the External IP Address & Dynamic DNS plugin:
I added the following Globals variables:
plugin_id = r'com.schollnick.indigoplugin.External_IP'
version_check_site = r'http://www.indigo-plugins.com'
version_check_url = version_check_site + "/VersionCheck/%s" % plugin_id
In the startup() function:
Added self.VersionCheck ()
def VersionCheck ( self ):
version_found = urllib2.urlopen( version_check_url ).read()
version_found = version_found[0:-1]
self.debugLog ("Version Check Server reports %s is available." % version_found)
if float(version_found) > float(self.pluginVersion):
indigo.server.log ( "A New Version of %s v.%s is available. You can download the upgrade from %s" % (self.pluginDisplayName, version_found, ""), type="Upgrade" )
And that's it. The server will return the version number of the latest version of the plugin, the VersionCheck function will fetch this, and compare that with the existing plugin's version number. If the server "wins", then a log message is entered into the log.
I am planning to add additional features to the server, but I want to invite all the developers to contact me, so that we can start to register their plugins and enable these features...
At this point, one missing feature on the server is user registration... So please email me at Benjamin AT schollnick DOT net, and I'll setup an account for you, so that you can enter your plugin information... (Or you can email it to me...)
If you have any suggestions, please feel free to send it as well...
- Benjamin