plugin updating

This is a legacy forum which is locked for new topics. New topics should be started in one of the other forums under Extending Indigo
Forum rules
This is a legacy forum which is locked for new topics. New topics should be started in one of the other forums under Extending Indigo
gregjsmith
Posts: 946
Joined: Tue Apr 01, 2003 9:41 am
Location: Rio Rancho, NM
Contact:

plugin updating

Post by gregjsmith »

I think there needs to be a auto updating function for plugins. It's hard to keep track of when they have been updated or whats new. For that matter Indigo's updating could be improved.

It's also hard to tell where to get info about plugins, Is it in the"User Contributions" forum, the "Extending Indigo with Plugins and Python" forum or the "3rd party developers" forum?
User avatar
jay (support)
Site Admin
Posts: 19232
Joined: Wed Mar 19, 2008 11:52 am
Location: Austin, Texas
Contact:

Re: plugin updating

Post by jay (support) »

It's up to the 3rd party developer to advertise how to get support - we've provided forums for any developer that requests it the 3rd Party Developer section and that's where we recommend that they provide support, documentation, and upgrade notifications. We can't force them to do it though. And, for the moment, we're encouraging 3rd parties to put their plugins in the File Library - that should be the first place to look for plugins.

We're working on several things to help with finding and downloading plugins and getting notification when a new version of a plugin is available. Auto updating isn't in the cards though, at least in the short/medium term, for either Indigo or plugins - it's an extremely non-trivial exercise.
Jay (Indigo Support)
Twitter | Facebook | LinkedIn
User avatar
berkinet
Posts: 3441
Joined: Tue Nov 18, 2008 2:08 pm
Location: Berkeley, CA, USA & Mougins, France

Re: plugin updating

Post by berkinet »

jay wrote:I...We're working on several things to help with finding and downloading plugins and getting notification when a new version of a plugin is available. Auto updating isn't in the cards though, at least in the short/medium term, for either Indigo or plugins - it's an extremely non-trivial exercise.
Agreed with auto-updating, and good to hear version checking is being planned. In the meantime, the @gregjsmith's request seemed to be a good idea so I cooked up this snippet of portable code to let a plugin check its version number. I used my own server, but if there is general interest I could host other plugin's versions as well - until Matt and Jay do something official.

Other than entering a value for versionServer, the code should be completely portable. BTW, the "html" file contains one line only, with the version number. No actual html code.

Code: Select all

from urllib2 import urlopen
import urllib2
import socket

	########################################
	def versionCheck(self):	
		self.debugLog(u"versionCheck() called")
		sp = re.split('\.', self.pluginId)
		myName = sp[2]
		myVersion = str(self.pluginVersion)
		socket.setdefaulttimeout(3)
		versionServer = 'http://yikes.com/plugins/'
		theUrl = versionServer + myName + '.html'
		socket.setdefaulttimeout(3)
		try:
			f = urlopen(theUrl)
			latestVersion = str(f.read()).rstrip('\n')
			if myVersion < latestVersion:
				self.errorLog(u"You are running v%s. A newer version, v%s is available." % (myVersion, latestVersion))
			else:
				indigo.server.log(u"Your plugin version, v" + myVersion + " is current", type=self.pluginDisplayName)
		except:
			self.errorLog(u"Unable to reach the version server.")
EDIT: I added a timeout and exception handler. BTW, I called this from startup().
bschollnick2
Posts: 1355
Joined: Sun Oct 17, 2004 8:21 am
Location: Rochester, Ny
Contact:

Re: plugin updating

Post by bschollnick2 »

berkinet wrote:
jay wrote:I...We're working on several things to help with finding and downloading plugins and getting notification when a new version of a plugin is available. Auto updating isn't in the cards though, at least in the short/medium term, for either Indigo or plugins - it's an extremely non-trivial exercise.
Agreed with auto-updating, and good to hear version checking is being planned. In the meantime, the @gregjsmith's request seemed to be a good idea so I cooked up this snippet of portable code to let a plugin check its version number. I used my own server, but if there is general interest I could host other plugin's versions as well - until Matt and Jay do something official.

Other than entering a value for versionServer, the code should be completely portable. BTW, the "html" file contains one line only, with the version number. No actual html code.

Code: Select all

from urllib2 import urlopen
import urllib2
import socket

	########################################
	def versionCheck(self):	
		self.debugLog(u"versionCheck() called")
		sp = re.split('\.', self.pluginId)
		myName = sp[2]
		myVersion = str(self.pluginVersion)
		socket.setdefaulttimeout(3)
		versionServer = 'http://yikes.com/plugins/'
		theUrl = versionServer + myName + '.html'
		socket.setdefaulttimeout(3)
		try:
			f = urlopen(theUrl)
			latestVersion = str(f.read()).rstrip('\n')
			if myVersion < latestVersion:
				self.errorLog(u"You are running v%s. A newer version, v%s is available." % (myVersion, latestVersion))
			else:
				indigo.server.log(u"Your plugin version, v" + myVersion + " is current", type=self.pluginDisplayName)
		except:
			self.errorLog(u"Unable to reach the version server.")
EDIT: I added a timeout and exception handler. BTW, I called this from startup().
Please keep in mind, that I already created and implemented a full solution for version checking...

See http://www.perceptiveautomation.com/use ... com#p44355

Simply add an import line....

import versioncheck

Your plugin ID...
plugin_id = "com.schollnick.indigoplugin.External_IP"

And the actual version check code:

version_found, update_url, plugin_name = versioncheck.VersionCheck ( plugin_id )
self.debugLog ("Version Check Server reports %s is available." % version_found)
if version_found == None:
indigo.server.log ("Update Check failed. Please contact the Author of the Plugin.", isError=True)
elif 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, update_url), type="Upgrade", isError=True )

The web site is all setup.... and online, for use....

http://www.indigo-plugins.com
------
My Plugins for Indigo (v4, v5, and v6) - http://bit.ly/U8XxPG

Security Script for v4 - http://bit.ly/QTgclf
for v5 - http://bit.ly/T6WBKu

Support Forum(s) - http://www.perceptiveautomation.com/userforum/viewforum.php?f=33
Locked

Return to “Extending Indigo with Plugins and Python”