aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-12-17 02:56:52 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-12-17 02:56:52 +0000
commit2601ee77efe1f10be7cbeb8af94e2fb229cc1ec1 (patch)
treedee02f1a965266cfc29d96ae664f71ecc889e879 /lib/python
parent654f9ddcbd850acbd23cb0b568632268cfd26f22 (diff)
downloadenigma2-2601ee77efe1f10be7cbeb8af94e2fb229cc1ec1.tar.gz
enigma2-2601ee77efe1f10be7cbeb8af94e2fb229cc1ec1.zip
timer: add name/description, factor out "parse from epg event", fix some cases where demux was not available at that time, add timeshift framework, fix movielist (not all movies are great!)
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Components/MovieList.py16
-rw-r--r--lib/python/Components/TimerList.py5
-rw-r--r--lib/python/Screens/EpgSelection.py21
-rw-r--r--lib/python/Screens/EventView.py21
-rw-r--r--lib/python/Screens/InfoBarGenerics.py16
-rw-r--r--lib/python/Screens/TimerEdit.py38
-rw-r--r--lib/python/Screens/TimerEntry.py3
7 files changed, 50 insertions, 70 deletions
diff --git a/lib/python/Components/MovieList.py b/lib/python/Components/MovieList.py
index 9ab58704..2e010ab6 100644
--- a/lib/python/Components/MovieList.py
+++ b/lib/python/Components/MovieList.py
@@ -1,7 +1,8 @@
from HTMLComponent import *
from GUIComponent import *
+from Tools.FuzzyDate import FuzzyTime
-from enigma import eListboxPythonMultiContent, eListbox, gFont
+from enigma import eListboxPythonMultiContent, eListbox, gFont, iServiceInformation
from enigma import eServiceReference, eServiceCenter, \
eServiceCenterPtr, iListableServicePtr, \
@@ -38,8 +39,17 @@ def MovieListEntry(serviceref, serviceHandler):
len = "?:??"
res.append((0, 0, 400, 30, 0, RT_HALIGN_LEFT, info.getName(serviceref)))
- res.append((0, 30, 200, 20, 1, RT_HALIGN_LEFT, "Toller Film"))
- res.append((0, 50, 200, 20, 1, RT_HALIGN_LEFT, "Aufgenommen: irgendwann"))
+
+ description = info.getInfoString(serviceref, iServiceInformation.sDescription)
+ begin = info.getInfo(serviceref, iServiceInformation.sTimeCreate)
+
+ begin_string = ""
+ if begin > 0:
+ t = FuzzyTime(begin)
+ begin_string = t[0] + ", " + t[1]
+
+ res.append((0, 30, 200, 20, 1, RT_HALIGN_LEFT, description))
+ res.append((0, 50, 200, 20, 1, RT_HALIGN_LEFT, begin_string))
res.append((200, 50, 200, 20, 1, RT_HALIGN_RIGHT, len))
return res
diff --git a/lib/python/Components/TimerList.py b/lib/python/Components/TimerList.py
index b1e8bf45..f4176fad 100644
--- a/lib/python/Components/TimerList.py
+++ b/lib/python/Components/TimerList.py
@@ -26,9 +26,6 @@ RT_WRAP = 32
def TimerEntryComponent(timer, processed):
res = [ timer ]
- print time.strftime("%c", time.localtime(timer.begin))
- print time.strftime("%c", time.localtime(timer.end))
-
res.append((0, 0, 400, 30, 0, RT_HALIGN_LEFT, timer.service_ref.getServiceName()))
repeatedtext = ""
days = [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ]
@@ -46,7 +43,7 @@ def TimerEntryComponent(timer, processed):
else:
res.append((0, 30, 200, 20, 1, RT_HALIGN_LEFT, repeatedtext + ("%s, %s ... %s" % (FuzzyTime(timer.begin) + FuzzyTime(timer.end)[1:]))))
- res.append((300, 0, 200, 20, 1, RT_HALIGN_RIGHT, timer.description))
+ res.append((300, 0, 200, 20, 1, RT_HALIGN_RIGHT, timer.name))
if not processed:
if timer.state == TimerEntry.StateWait:
diff --git a/lib/python/Screens/EpgSelection.py b/lib/python/Screens/EpgSelection.py
index db8be2e1..4d288b00 100644
--- a/lib/python/Screens/EpgSelection.py
+++ b/lib/python/Screens/EpgSelection.py
@@ -5,7 +5,7 @@ from Components.ActionMap import ActionMap
from Screens.EventView import EventView
from enigma import eServiceReference, eServiceEventPtr
from Screens.FixedMenu import FixedMenu
-from RecordTimer import RecordTimerEntry
+from RecordTimer import RecordTimerEntry, parseEvent
from TimerEdit import TimerEditList
from TimerEntry import TimerEntry
from ServiceReference import ServiceReference
@@ -49,24 +49,15 @@ class EPGSelection(Screen):
self.session.open(EventView, event, self.currentService, self.eventViewCallback)
def timerAdd(self):
- epg = self["list"].getCurrent()
+ event = self["list"].getCurrent()
+
+ if event is None:
+ return
- if (epg == None):
- description = "unknown event"
- else:
- description = epg.getEventName()
- # FIXME we need a timestamp here:
- begin = epg.getBeginTime()
-
- print begin
- print epg.getDuration()
- end = begin + epg.getDuration()
-
-
# FIXME only works if already playing a service
serviceref = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference())
- newEntry = RecordTimerEntry(begin, end, serviceref, epg, description)
+ newEntry = RecordTimerEntry(serviceref, *parseEvent(event))
self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry)
def timerEditFinished(self, answer):
diff --git a/lib/python/Screens/EventView.py b/lib/python/Screens/EventView.py
index 79d548af..e3585b67 100644
--- a/lib/python/Screens/EventView.py
+++ b/lib/python/Screens/EventView.py
@@ -4,7 +4,7 @@ from Components.Label import Label
from Components.ScrollLabel import ScrollLabel
from enigma import eServiceEventPtr
from ServiceReference import ServiceReference
-from RecordTimer import RecordTimerEntry
+from RecordTimer import RecordTimerEntry, parseEvent
from TimerEntry import TimerEntry
class EventView(Screen):
@@ -38,24 +38,7 @@ class EventView(Screen):
self.cbFunc(self.setEvent, +1)
def timerAdd(self):
- epg = self.event
-
- if (epg == None):
- description = "unknown event"
- else:
- description = epg.getEventName()
- # FIXME we need a timestamp here:
- begin = epg.getBeginTime()
-
- print begin
- print epg.getDuration()
- end = begin + epg.getDuration()
-
-
- # FIXME only works if already playing a service
- serviceref = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference())
-
- newEntry = RecordTimerEntry(begin, end, serviceref, epg, description)
+ newEntry = RecordTimerEntry(self.currentService, *parseEvent(self.event))
self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry)
def timerEditFinished(self, answer):
diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py
index efcb0dad..77c4a415 100644
--- a/lib/python/Screens/InfoBarGenerics.py
+++ b/lib/python/Screens/InfoBarGenerics.py
@@ -562,6 +562,8 @@ class InfoBarPVR:
}
self.setSeekState(lookup[self.seekstate]);
+from RecordTimer import parseEvent
+
class InfoBarInstantRecord:
"""Instant Record - handles the instantRecord action in order to
start/stop instant records"""
@@ -582,19 +584,25 @@ class InfoBarInstantRecord:
def startInstantRecording(self):
serviceref = self.session.nav.getCurrentlyPlayingServiceReference()
-
+
# try to get event info
- epg = None
+ event = None
try:
service = self.session.nav.getCurrentService()
info = service.info()
ev = info.getEvent(0)
- epg = ev
+ event = ev
except:
pass
+ if event is not None:
+ data = parseEvent(event)
+ data = (data[0], data[1] + 3600 * 10, data[2], data[3], data[4])
+ else:
+ data = (time.time(), time.time() + 3600 * 10, "instant record", "", None)
+
# fix me, description.
- self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 3600 * 10, serviceref, epg, "instant record")
+ self.recording = self.session.nav.recordWithTimer(serviceref, *data)
self.recording.dontSave = True
#self["BlinkingPoint"].setConnect(lambda: self.recording.isRunning())
diff --git a/lib/python/Screens/TimerEdit.py b/lib/python/Screens/TimerEdit.py
index 5233da9b..73733913 100644
--- a/lib/python/Screens/TimerEdit.py
+++ b/lib/python/Screens/TimerEdit.py
@@ -6,7 +6,7 @@ from Components.Label import Label
from Components.Button import Button
from Components.TextInput import TextInput
from TimerEntry import TimerEntry
-from RecordTimer import RecordTimerEntry
+from RecordTimer import RecordTimerEntry, parseEvent
from time import *
from ServiceReference import ServiceReference
from Components.config import *
@@ -54,34 +54,22 @@ class TimerEditList(Screen):
self["timerlist"].invalidate()
def addCurrentTimer(self):
- begin = time()
- end = time() + 60
-
- epg = None
- try:
- service = self.session.nav.getCurrentService()
+ event = None
+ service = self.session.nav.getCurrentService()
+ if service is not None:
info = service.info()
- ev = info.getEvent(0)
- epg = ev
- except:
- pass
-
- if (epg == None):
- description = "unknown event"
- else:
- description = ev.getEventName()
- # FIXME we need a timestamp here:
- begin = ev.getBeginTime()
-
- print begin
- print ev.getDuration()
- end = begin + ev.getDuration()
-
+ if info is not None:
+ event = info.getEvent(0)
# FIXME only works if already playing a service
serviceref = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference())
- self.addTimer(RecordTimerEntry(begin, end, serviceref, epg, description))
+ if event is None:
+ data = (int(time()), int(time() + 60), "unknown event", "", None)
+ else:
+ data = parseEvent(event)
+
+ self.addTimer(RecordTimerEntry(serviceref, *data))
def addTimer(self, timer):
self.session.openWithCallback(self.finishedAdd, TimerEntry, timer)
@@ -103,4 +91,4 @@ class TimerEditList(Screen):
def leave(self):
self.session.nav.RecordTimer.saveTimer()
- self.close() \ No newline at end of file
+ self.close()
diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py
index a7cbad9b..966bbab4 100644
--- a/lib/python/Screens/TimerEntry.py
+++ b/lib/python/Screens/TimerEntry.py
@@ -78,6 +78,7 @@ class TimerEntry(Screen):
repeated = 0
config.timerentry.type = configElement_nonSave("config.timerentry.type", configSelection, type, (_("once"), _("repeated")))
+ config.timerentry.name = configElement_nonSave("config.timerentry.name", configText, self.timer.name, (configText.extendableSize, self.keyRightCallback))
config.timerentry.description = configElement_nonSave("config.timerentry.description", configText, self.timer.description, (configText.extendableSize, self.keyRightCallback))
config.timerentry.repeated = configElement_nonSave("config.timerentry.repeated", configSelection, repeated, (_("daily"), _("weekly"), _("Mon-Fri"), _("user defined")))
@@ -126,6 +127,7 @@ class TimerEntry(Screen):
def createSetup(self):
self.list = []
+ self.list.append(getConfigListEntry(_("Name"), config.timerentry.name))
self.list.append(getConfigListEntry(_("Description"), config.timerentry.description))
self.timerTypeEntry = getConfigListEntry(_("Timer Type"), config.timerentry.type)
self.list.append(self.timerTypeEntry)
@@ -227,6 +229,7 @@ class TimerEntry(Screen):
return int(mktime(dt.timetuple()))
def keyGo(self):
+ self.timer.name = config.timerentry.name.value
self.timer.description = config.timerentry.description.value
self.timer.resetRepeated()