plugin.py split up,\nfeed overview and single feed view in different screens,\nyellow...
[enigma2-plugins.git] / simplerss / src / plugin.py
1 # warning, this is work in progress.
2 # plus, the error handling sucks.
3 #
4 # TODO:
5 #  - inline todos
6 #  - all that stuff I forgot...
7 #
8 from Plugins.Plugin import PluginDescriptor
9
10 from SimpleRSSSetup import SimpleRSSSetup
11 from SimpleRSSScreens import SimpleRSS
12 from RSSPoller import RSSPoller
13
14 from Components.config import config, ConfigSubsection, ConfigSubList, ConfigEnableDisable, ConfigInteger, ConfigText
15
16 config.plugins.simpleRSS = ConfigSubsection()
17 config.plugins.simpleRSS.show_new = ConfigEnableDisable(default=True)
18 config.plugins.simpleRSS.interval = ConfigInteger(default=10, limits=(5, 300))
19 config.plugins.simpleRSS.feedcount = ConfigInteger(default=0)
20 config.plugins.simpleRSS.feed = ConfigSubList()
21 for i in range(0, config.plugins.simpleRSS.feedcount.value):
22         config.plugins.simpleRSS.feed.append(ConfigSubsection())
23         config.plugins.simpleRSS.feed[i].uri = ConfigText(default="http://", fixed_size = False)
24         config.plugins.simpleRSS.feed[i].autoupdate = ConfigEnableDisable(default=True)
25
26 rssPoller = None
27
28 def main(session, **kwargs):
29         print "[SimpleRSS] Displaying SimpleRSS-Setup"
30         global rssPoller
31         session.open(SimpleRSSSetup, rssPoller)
32
33 def autostart(reason, **kwargs):
34         global rssPoller
35
36         # not nice (?), but works
37         if kwargs.has_key("session") and reason == 0:
38                 rssPoller = RSSPoller(kwargs["session"])
39         elif reason == 1:
40                 rssPoller.shutdown()
41                 rssPoller = None
42
43 def showCurrent(session, **kwargs):
44         global rssPoller
45         if rssPoller is None:
46                 return
47         session.open(SimpleRSS, rssPoller)
48
49 def Plugins(**kwargs):
50         return [ PluginDescriptor(name="RSS Reader", description="A simple to use RSS reader", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main),
51                 PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc = autostart),
52                 PluginDescriptor(name="View RSS", description="Let's you view current RSS entries", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=showCurrent) ]