global: 'Dream Multimedia' -> 'Dream Property'
[enigma2-plugins.git] / internetradio / src / plugin.py
1 #
2 # InternetRadio E2
3 #
4 # Coded by Dr.Best (c) 2012
5 # Support: www.dreambox-tools.info
6 # E-Mail: dr.best@dreambox-tools.info
7 #
8 # This plugin is open source but it is NOT free software.
9 #
10 # This plugin may only be distributed to and executed on hardware which
11 # is licensed by Dream Property GmbH.
12 # In other words:
13 # It's NOT allowed to distribute any parts of this plugin or its source code in ANY way
14 # to hardware which is NOT licensed by Dream Property GmbH.
15 # It's NOT allowed to execute this plugin and its source code or even parts of it in ANY way
16 # on hardware which is NOT licensed by Dream Property GmbH.
17 #
18 # If you want to use or modify the code or parts of it,
19 # you have to keep MY license and inform me about the modifications by mail.
20 #
21
22 from Plugins.Plugin import PluginDescriptor
23 from Tools.HardwareInfo import HardwareInfo
24 from Components.config import config, ConfigSubsection, ConfigSelection, ConfigDirectory, ConfigYesNo, Config, ConfigText
25 from InternetRadioScreen import InternetRadioScreen
26
27 config.plugins.internetradio = ConfigSubsection()
28 config.plugins.internetradio.showinextensions = ConfigYesNo(default = True)
29 config.plugins.internetradio.dirname = ConfigDirectory(default = "/media/hdd/streamripper/")
30 config.plugins.internetradio.riptosinglefile = ConfigYesNo(default = False)
31 config.plugins.internetradio.createdirforeachstream = ConfigYesNo(default = True)
32 config.plugins.internetradio.addsequenceoutputfile = ConfigYesNo(default = False)
33 config.plugins.internetradio.filter = ConfigText(default=_("Countries"))
34 if HardwareInfo().get_device_name() == "dm500hd":
35         config.plugins.internetradio.visualization = ConfigSelection(choices = [("2", _("On")), ("3", _("Off"))], default = "2")
36 else:
37         config.plugins.internetradio.visualization = ConfigSelection(choices = [("0", _("Screen and OLED")), ("1", _("OLED only")), ("2", _("Screen only")), ("3", _("Off"))], default = "2")
38 config.plugins.internetradio.googlecover = ConfigYesNo(default = False)
39 config.plugins.internetradio.startupname = ConfigText(default = "")
40 config.plugins.internetradio.startuptext = ConfigText(default = "")
41 config.plugins.internetradio.fullscreenautoactivation = ConfigSelection(choices = [("30", _("30 seconds")), ("60", _("1 minutes")), ("180", _("3 minutes")), ("-1", _("Off"))], default = "30")
42 config.plugins.internetradio.fullscreenlayout = ConfigSelection(choices = [("0", _("Visualization and Text")), ("1", _("Text only")), ("2", _("Blank"))], default = "0")
43
44
45 def sessionstart(reason, **kwargs):
46         if reason == 0 and "session" in kwargs:
47                 try:
48                         from Plugins.Extensions.WebInterface.WebChilds.Toplevel import addExternalChild
49                         from Plugins.Extensions.WebInterface.WebChilds.Screenpage import ScreenPage
50                         from twisted.python import util
51                         from twisted.web import static
52                         if hasattr(static.File, 'render_GET'):
53                                 class File(static.File):
54                                         def render_POST(self, request):
55                                                 return self.render_GET(request)
56                         else:
57                                 File = static.File
58                         session = kwargs["session"]
59                         root = File(util.sibpath(__file__, "web-data"))
60                         root.putChild("web", ScreenPage(session, util.sibpath(__file__, "web"), True))
61                         addExternalChild( ("internetradio", root, "Internet-Radio", "1", True) )
62                 except ImportError:
63                         pass # pah!
64
65 def main(session,**kwargs):
66         session.open(InternetRadioScreen)
67
68 def Plugins(**kwargs):
69         list = [PluginDescriptor(name="Internet-Radio", description=_("listen to internet-radio"), where = [PluginDescriptor.WHERE_PLUGINMENU], icon="plugin.png", fnc=main)] # always show in plugin menu
70         if config.plugins.internetradio.showinextensions.value:
71                 list.append (PluginDescriptor(name="Internet-Radio", description=_("listen to internet-radio"), where = [PluginDescriptor.WHERE_EXTENSIONSMENU], fnc=main))
72         list.append (PluginDescriptor(where=PluginDescriptor.WHERE_SESSIONSTART, fnc=sessionstart, needsRestart=False))
73         return list
74