aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Components/Converter/ServicePosition.py14
-rwxr-xr-x[-rw-r--r--]lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py36
-rw-r--r--lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py52
-rw-r--r--lib/python/Screens/InfoBarGenerics.py14
-rw-r--r--lib/python/Tools/Downloader.py53
-rw-r--r--lib/python/Tools/Makefile.am3
6 files changed, 100 insertions, 72 deletions
diff --git a/lib/python/Components/Converter/ServicePosition.py b/lib/python/Components/Converter/ServicePosition.py
index b92af40b..56a6db67 100644
--- a/lib/python/Components/Converter/ServicePosition.py
+++ b/lib/python/Components/Converter/ServicePosition.py
@@ -21,11 +21,6 @@ class ServicePosition(Converter, Poll, object):
self.showHours = 'ShowHours' in args
self.showNoSeconds = 'ShowNoSeconds' in args
- if self.detailed:
- self.poll_interval = 100
- else:
- self.poll_interval = 500
-
if type == "Length":
self.type = self.TYPE_LENGTH
elif type == "Position":
@@ -37,7 +32,14 @@ class ServicePosition(Converter, Poll, object):
else:
raise ElementError("type must be {Length|Position|Remaining|Gauge} with optional arguments {Negate|Detailed|ShowHours|ShowNoSeconds} for ServicePosition converter")
- self.poll_enabled = self.type != self.TYPE_LENGTH
+ if self.detailed:
+ self.poll_interval = 100
+ elif self.type == self.TYPE_LENGTH:
+ self.poll_interval = 2000
+ else:
+ self.poll_interval = 500
+
+ self.poll_enabled = True
def getSeek(self):
s = self.source.service
diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py
index 4c8167d4..6e444b7b 100644..100755
--- a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py
+++ b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py
@@ -18,8 +18,8 @@ from os import system, path as os_path
class CIselectMainMenu(Screen):
skin = """
- <screen position="205,150" size="310,270" title="CI Assignment" >
- <widget name="CiList" position="10,10" size="290,200" scrollbarMode="showOnDemand" />
+ <screen position="180,150" size="350,270" title="CI assignment" >
+ <widget name="CiList" position="10,10" size="330,200" scrollbarMode="showOnDemand" />
<ePixmap position="10,210" size="290,2" pixmap="skin_default/div-h.png" transparent="1" alphatest="on" />
<ePixmap pixmap="skin_default/buttons/red.png" position="10,220" size="140,40" alphatest="on" />
<ePixmap pixmap="skin_default/buttons/green.png" position="160,220" size="140,40" alphatest="on" />
@@ -54,7 +54,7 @@ class CIselectMainMenu(Screen):
for slot in range(NUM_CI):
state = eDVBCI_UI.getInstance().getState(slot)
if state == 0:
- appname = _("Slot %d") %(slot+1) + " - " + _("no module")
+ appname = _("Slot %d") %(slot+1) + " - " + _("no module found")
elif state == 1:
appname = _("Slot %d") %(slot+1) + " - " + _("init modules")
elif state == 2:
@@ -67,6 +67,10 @@ class CIselectMainMenu(Screen):
menuList.list = self.list
menuList.l.setList(self.list)
self["CiList"] = menuList
+ self.onShown.append(self.setWindowTitle)
+
+ def setWindowTitle(self):
+ self.setTitle(_("CI assignment"))
def greenPressed(self):
cur = self["CiList"].getCurrent()
@@ -100,7 +104,7 @@ class CIselectMainMenu(Screen):
class CIconfigMenu(Screen):
skin = """
- <screen position="60,80" size="595,436" title="CI Assignment" >
+ <screen position="60,80" size="595,436" title="CI assignment" >
<widget name="CAidList.desc" position="10,10" size="575,22" font="Regular;20" />
<widget name="CAidList" position="10,40" size="575,45" font="Regular;20" />
<widget name="ServiceList.desc" position="10,90" size="575,22" font="Regular;20" />
@@ -121,7 +125,7 @@ class CIconfigMenu(Screen):
Screen.__init__(self, session)
self.ci_slot=ci_slot
self.filename="/etc/enigma2/ci"+str(self.ci_slot)+".xml"
-
+
self["key_red"] = StaticText(_("delete"))
self["key_green"] = StaticText(_("add Service"))
self["key_yellow"] = StaticText(_("add Provider"))
@@ -138,7 +142,7 @@ class CIconfigMenu(Screen):
"ok": self.okPressed,
"cancel": self.cancel
}, -1)
-
+
print "[CI_Wizzard_Config] Configuring CI Slots : %d " % self.ci_slot
i=0
@@ -163,6 +167,10 @@ class CIconfigMenu(Screen):
# if config mode !=advanced autoselect any caid
if config.usage.setup_level.index <= 1: # advanced
self.selectedcaid=self.caidlist
+ self.onShown.append(self.setWindowTitle)
+
+ def setWindowTitle(self):
+ self.setTitle(_("CI assignment"))
def redPressed(self):
self.delete()
@@ -197,7 +205,7 @@ class CIconfigMenu(Screen):
service_name = service_ref.getServiceName()
if find_in_list(self.servicelist, service_name, 0)==False:
split_ref=service_ref.ref.toString().split(":")
- if split_ref[0] == "1": #== dvb service und nicht muell von None
+ if split_ref[0] == "1":#== dvb service und nicht muell von None
self.servicelist.append( (service_name , ConfigNothing(), 0, service_ref.ref.toString()) )
self["ServiceList"].l.setList(self.servicelist)
@@ -301,7 +309,7 @@ class CIconfigMenu(Screen):
class easyCIconfigMenu(CIconfigMenu):
skin = """
- <screen position="80,80" size="470,420" title="CI Assignment" >
+ <screen position="80,80" size="470,420" title="CI assignment" >
<widget name="ServiceList.desc" position="10,10" size="420,22" font="Regular;20" />
<widget name="ServiceList" position="10,40" size="450,340" scrollbarMode="showOnDemand" />
<ePixmap position="10,360" size="450,2" pixmap="skin_default/div-h.png" transparent="1" alphatest="on" />
@@ -317,7 +325,7 @@ class easyCIconfigMenu(CIconfigMenu):
ci=ci_slot
CIconfigMenu.__init__(self, session, ci_slot)
self.skin = easyCIconfigMenu.skin
-
+
self["actions"] = ActionMap(["ColorActions","SetupActions"],
{
"green": self.greenPressed,
@@ -327,7 +335,7 @@ class easyCIconfigMenu(CIconfigMenu):
"ok": self.okPressed,
"cancel": self.cancel
}, -1)
-
+
def bluePressed(self):
print "do nothing"
@@ -341,7 +349,7 @@ class CAidSelect(Screen):
<widget source="key_red" render="Label" position="10,240" zPosition="1" size="140,40" font="Regular;19" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
<widget source="key_green" render="Label" position="160,240" zPosition="1" size="140,40" font="Regular;19" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
</screen>"""
-
+
def __init__(self, session, list, selected_caids):
self.skin = CAidSelect.skin
Screen.__init__(self, session)
@@ -365,6 +373,10 @@ class CAidSelect(Screen):
"green": self.greenPressed,
"red": self.cancel
}, -1)
+ self.onShown.append(self.setWindowTitle)
+
+ def setWindowTitle(self):
+ self.setTitle(_("select CAId's"))
def greenPressed(self):
list = self.list.getSelectionsList()
@@ -411,6 +423,7 @@ class myProviderSelection(ChannelSelectionBase):
def __onExecCallback(self):
self.showSatellites()
+ self.setTitle(_("Select provider to add..."))
def channelSelected(self): # just return selected service
ref = self.getCurrentSelection()
@@ -516,6 +529,7 @@ class myChannelSelection(ChannelSelectionBase):
def __onExecCallback(self):
self.setModeTv()
+ self.setTitle(_("Select service to add..."))
def doNothing(self):
print "nothing to do..."
diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py b/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py
index c91c8588..6d404cf2 100644
--- a/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py
+++ b/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py
@@ -16,6 +16,7 @@ from enigma import eConsoleAppContainer, eListbox, gFont, eListboxPythonMultiCon
from os import system, remove
import re
import urllib
+from Tools.Downloader import downloadWithProgress
from twisted.web import client
from twisted.internet import reactor, defer
from twisted.python import failure
@@ -24,57 +25,6 @@ from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier
class UserRequestedCancel(Exception):
pass
-class HTTPProgressDownloader(client.HTTPDownloader):
- def __init__(self, url, outfile, headers=None):
- client.HTTPDownloader.__init__(self, url, outfile, headers=headers, agent="Dreambox .NFI Download Plugin")
- self.status = None
- self.progress_callback = None
- self.deferred = defer.Deferred()
-
- def noPage(self, reason):
- if self.status == "304":
- print reason.getErrorMessage()
- client.HTTPDownloader.page(self, "")
- else:
- client.HTTPDownloader.noPage(self, reason)
-
- def gotHeaders(self, headers):
- if self.status == "200":
- if headers.has_key("content-length"):
- self.totalbytes = int(headers["content-length"][0])
- else:
- self.totalbytes = 0
- self.currentbytes = 0.0
- return client.HTTPDownloader.gotHeaders(self, headers)
-
- def pagePart(self, packet):
- if self.status == "200":
- self.currentbytes += len(packet)
- if self.totalbytes and self.progress_callback:
- self.progress_callback(self.currentbytes, self.totalbytes)
- return client.HTTPDownloader.pagePart(self, packet)
-
- def pageEnd(self):
- return client.HTTPDownloader.pageEnd(self)
-
-class downloadWithProgress:
- def __init__(self, url, outputfile, contextFactory=None, *args, **kwargs):
- scheme, host, port, path = client._parse(url)
- self.factory = HTTPProgressDownloader(url, outputfile, *args, **kwargs)
- self.connection = reactor.connectTCP(host, port, self.factory)
-
- def start(self):
- return self.factory.deferred
-
- def stop(self):
- print "[stop]"
- self.connection.disconnect()
- #self.factory.deferred.errback(failure.Failure(UserRequestedCancel))
-
- def addProgress(self, progress_callback):
- print "[addProgress]"
- self.factory.progress_callback = progress_callback
-
class Feedlist(MenuList):
def __init__(self, list=[], enableWrapAround = False):
MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent)
diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py
index c1618184..9adaa6db 100644
--- a/lib/python/Screens/InfoBarGenerics.py
+++ b/lib/python/Screens/InfoBarGenerics.py
@@ -1631,12 +1631,20 @@ class InfoBarAudioSelection:
idx = 0
while idx < n:
+ cnt = 0
i = audio.getTrackInfo(idx)
- language = i.getLanguage()
+ languages = i.getLanguage().split('/')
description = i.getDescription()
+ language = ""
- if LanguageCodes.has_key(language):
- language = LanguageCodes[language][0]
+ for lang in languages:
+ if cnt:
+ language += ' / '
+ if LanguageCodes.has_key(lang):
+ language += LanguageCodes[lang][0]
+ else:
+ language += lang
+ cnt += 1
if len(description):
description += " (" + language + ")"
diff --git a/lib/python/Tools/Downloader.py b/lib/python/Tools/Downloader.py
new file mode 100644
index 00000000..ffc24c1c
--- /dev/null
+++ b/lib/python/Tools/Downloader.py
@@ -0,0 +1,53 @@
+from twisted.web import client
+from twisted.internet import reactor, defer
+from twisted.python import failure
+
+class HTTPProgressDownloader(client.HTTPDownloader):
+ def __init__(self, url, outfile, headers=None):
+ client.HTTPDownloader.__init__(self, url, outfile, headers=headers, agent="Dreambox HTTP Downloader")
+ self.status = None
+ self.progress_callback = None
+ self.deferred = defer.Deferred()
+
+ def noPage(self, reason):
+ if self.status == "304":
+ print reason.getErrorMessage()
+ client.HTTPDownloader.page(self, "")
+ else:
+ client.HTTPDownloader.noPage(self, reason)
+
+ def gotHeaders(self, headers):
+ if self.status == "200":
+ if headers.has_key("content-length"):
+ self.totalbytes = int(headers["content-length"][0])
+ else:
+ self.totalbytes = 0
+ self.currentbytes = 0.0
+ return client.HTTPDownloader.gotHeaders(self, headers)
+
+ def pagePart(self, packet):
+ if self.status == "200":
+ self.currentbytes += len(packet)
+ if self.totalbytes and self.progress_callback:
+ self.progress_callback(self.currentbytes, self.totalbytes)
+ return client.HTTPDownloader.pagePart(self, packet)
+
+ def pageEnd(self):
+ return client.HTTPDownloader.pageEnd(self)
+
+class downloadWithProgress:
+ def __init__(self, url, outputfile, contextFactory=None, *args, **kwargs):
+ scheme, host, port, path = client._parse(url)
+ self.factory = HTTPProgressDownloader(url, outputfile, *args, **kwargs)
+ self.connection = reactor.connectTCP(host, port, self.factory)
+
+ def start(self):
+ return self.factory.deferred
+
+ def stop(self):
+ print "[stop]"
+ self.connection.disconnect()
+
+ def addProgress(self, progress_callback):
+ print "[addProgress]"
+ self.factory.progress_callback = progress_callback
diff --git a/lib/python/Tools/Makefile.am b/lib/python/Tools/Makefile.am
index fd23bd12..e7904d66 100644
--- a/lib/python/Tools/Makefile.am
+++ b/lib/python/Tools/Makefile.am
@@ -4,4 +4,5 @@ install_PYTHON = \
FuzzyDate.py XMLTools.py Directories.py NumericalTextInput.py \
KeyBindings.py BoundFunction.py ISO639.py Notifications.py __init__.py \
RedirectOutput.py DreamboxHardware.py Import.py Event.py CList.py \
- LoadPixmap.py Profile.py HardwareInfo.py Transponder.py ASCIItranslit.py
+ LoadPixmap.py Profile.py HardwareInfo.py Transponder.py ASCIItranslit.py \
+ Downloader.py