Show Overview by default (Setup when no feeds are present),
[enigma2-plugins.git] / simplerss / src / plugin.py
1 from Plugins.Plugin import PluginDescriptor
2
3 from RSSSetup import RSSSetup
4 from RSSScreens import RSSOverview
5 from RSSPoller import RSSPoller
6
7 from Components.config import config, ConfigSubsection, ConfigSubList, ConfigEnableDisable, ConfigInteger, ConfigText
8
9 # Initialize Configuration
10 config.plugins.simpleRSS = ConfigSubsection()
11 config.plugins.simpleRSS.show_new = ConfigEnableDisable(default=True)
12 config.plugins.simpleRSS.interval = ConfigInteger(default=10, limits=(5, 300))
13 config.plugins.simpleRSS.feedcount = ConfigInteger(default=0)
14 config.plugins.simpleRSS.feed = ConfigSubList()
15 for i in range(0, config.plugins.simpleRSS.feedcount.value):
16         config.plugins.simpleRSS.feed.append(ConfigSubsection())
17         config.plugins.simpleRSS.feed[i].uri = ConfigText(default="http://", fixed_size = False)
18         config.plugins.simpleRSS.feed[i].autoupdate = ConfigEnableDisable(default=True)
19
20 # Global Poller-Object
21 rssPoller = None
22
23 # Main Function
24 def main(session, **kwargs):
25         # Get Global rssPoller-Object
26         global rssPoller
27
28         # Return if it's empty (should never happen)
29         if rssPoller is None:
30                 return
31
32         # Show Overview when we have feeds
33         if len(rssPoller.feeds):
34                 session.open(RSSOverview, rssPoller)
35         # Show Setup otherwise
36         else:
37                 session.open(RSSSetup, rssPoller)
38
39 # Autostart
40 def autostart(reason, **kwargs):
41         global rssPoller
42
43         # not nice (?), but works
44         if kwargs.has_key("session") and reason == 0:
45                 rssPoller = RSSPoller(kwargs["session"])
46         elif reason == 1:
47                 rssPoller.shutdown()
48                 rssPoller = None
49
50 def Plugins(**kwargs):
51         return [ PluginDescriptor(name="RSS Reader", description="A simple to use RSS reader", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main),
52                 PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc = autostart),
53                 PluginDescriptor(name="View RSS", description="Let's you view current RSS entries", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main) ]