continue
# allow single entry not to be a list
- if type(plugins) is not list:
+ if not isinstance(plugins, list):
plugins = [ plugins ]
for p in plugins:
# build a diff between the old list of plugins and the new one
# internally, the "fnc" argument will be compared with __eq__
plugins_added = [p for p in new_plugins if p not in self.pluginList]
- plugins_removed = [p for p in self.pluginList if p not in new_plugins]
+ plugins_removed = [p for p in self.pluginList if not p.internal and p not in new_plugins]
for p in plugins_removed:
self.removePlugin(p)
def getPlugins(self, where):
"""Get list of plugins in a specific category"""
- if type(where) is not list:
+ if not isinstance(where, list):
where = [ where ]
res = [ ]
+
for x in where:
- for p in self.plugins.get(x, [ ]):
- res.append(p)
- return res
+ res.extend(self.plugins.get(x, [ ]))
+
+ return res
def getPluginsForMenu(self, menuid):
res = [ ]
wakeup = -1
for p in self.pluginList:
current = p.getWakeupTime()
- if current > -1 and wakeup < current:
+ if current > -1 and (wakeup > current or wakeup == -1):
wakeup = current
return int(wakeup)