Author: duncan
Date: Tue Mar 4 16:57:50 2008
New Revision: 10463
Log:
Removed xml version of scheduled recordings from recordserver
Now using a pickled version and a pickled list of favourites
This is much faster when adding or updating a favourite
Modified:
branches/rel-1/freevo/src/helpers/recordserver.py
branches/rel-1/freevo/src/tv/epg_types.py
branches/rel-1/freevo/src/tv/favoriteitem.py
branches/rel-1/freevo/src/tv/programitem.py
branches/rel-1/freevo/src/tv/record_client.py
branches/rel-1/freevo/src/tv/record_types.py
branches/rel-1/freevo/src/tv/tvguide.py
branches/rel-1/freevo/src/www/htdocs/config.rpy
branches/rel-1/freevo/src/www/htdocs/favorites.rpy
branches/rel-1/freevo/src/www/htdocs/genre.rpy
branches/rel-1/freevo/src/www/htdocs/guide.rpy
branches/rel-1/freevo/src/www/htdocs/guidechannel.rpy
branches/rel-1/freevo/src/www/htdocs/index.rpy
branches/rel-1/freevo/src/www/htdocs/library.rpy
branches/rel-1/freevo/src/www/htdocs/record.rpy
branches/rel-1/freevo/src/www/htdocs/search.rpy
Modified: branches/rel-1/freevo/src/helpers/recordserver.py
==============================================================================
--- branches/rel-1/freevo/src/helpers/recordserver.py (original)
+++ branches/rel-1/freevo/src/helpers/recordserver.py Tue Mar 4 16:57:50 2008
@@ -64,8 +64,6 @@
# have been updated to use kaa.rpc
from video.commdetectclient import initCommDetectJob, queueIt, listJobs,
connectionTest
-from util.marmalade import jellyToXML, unjellyFromXML
-from twisted.web import sux
import tv.record_types
from tv.record_types import TYPES_VERSION
@@ -104,14 +102,15 @@
plugin.init_special_plugin(config.plugin_record)
def print_plugin_warning():
- _debug_("""
+ warning = """
*************************************************
** Warning: No recording plugin registered. **
** Check your local_conf.py for a **
** bad "plugin_record =" line or **
** this log for a plugin failure. **
** Recordings will fail! **
- *************************************************""", DWARNING)
+ *************************************************"""
+ _debug_(warning, DWARNING)
if not plugin.getbyname('RECORD'):
@@ -132,12 +131,16 @@
self.vg = None
self.previouslyRecordedShows = None
self.delay_recording = None
+ self.schedule = ScheduledRecordings()
+ self.updateFavoritesSchedule()
@kaa.rpc.expose('ping')
def pingtest(self):
+ _debug_('pingtest()', 2)
return True
+
@kaa.rpc.expose('isRecording')
def isRecording(self):
_debug_('isRecording()', 1)
@@ -155,9 +158,9 @@
return 0
- def findOverlaps(self, scheduledRecordings):
- _debug_('in findOverlaps', 2)
- progs = scheduledRecordings.getProgramList()
+ def findOverlaps(self, schedule):
+ _debug_('findOverlaps(schedule=%r)' % (schedule,), 2)
+ progs = schedule.getProgramList()
proglist = list(progs)
proglist.sort(self.progsTimeCompare)
for progitem in proglist:
@@ -228,94 +231,77 @@
@kaa.rpc.expose('getScheduledRecordings')
def getScheduledRecordings(self):
- _debug_('getScheduledRecordings()', 2)
+ _debug_('getScheduledRecordings()', 1)
file_ver = None
- scheduledRecordings = None
+ schedule = None
if os.path.isfile(config.TV_RECORD_SCHEDULE):
_debug_('reading cache (%r)' % config.TV_RECORD_SCHEDULE, 2)
- if hasattr(self, 'scheduledRecordings_cache'):
- mod_time, scheduledRecordings = self.scheduledRecordings_cache
+ if hasattr(self, 'schedule_cache'):
+ mod_time, schedule = self.schedule_cache
try:
if os.stat(config.TV_RECORD_SCHEDULE)[stat.ST_MTIME] ==
mod_time:
_debug_('using cached schedule', 2)
- return scheduledRecordings
+ return schedule
except OSError, why:
_debug_('Failed to stat %r: %s' %
(config.TV_RECORD_SCHEDULE, why), DERROR)
pass
- try:
- f = open(config.TV_RECORD_SCHEDULE, 'r')
- scheduledRecordings = unjellyFromXML(f)
- f.close()
- except sux.ParseError, e:
- _debug_('%r is corrupt, removed' %
(config.TV_RECORD_SCHEDULE), DWARNING)
- os.unlink(config.TV_RECORD_SCHEDULE)
+ schedule = self.schedule.loadRecordSchedule()
try:
- file_ver = scheduledRecordings.TYPES_VERSION
+ file_ver = schedule.TYPES_VERSION
except AttributeError:
_debug_('The cache does not have a version and must be
recreated', DWARNING)
if file_ver != TYPES_VERSION:
_debug_(('ScheduledRecordings version number %s is stale (new
is %s), must be reloaded') % \
(file_ver, TYPES_VERSION), DINFO)
- scheduledRecordings = None
+ schedule = None
else:
_debug_('Got ScheduledRecordings (version %s).' % file_ver,
DINFO)
- #FIXME This should be removed when the xml is not used
- scheduledRecordings.initialize()
-
- if not scheduledRecordings:
+ if not schedule:
_debug_('Created a new ScheduledRecordings', DINFO)
- scheduledRecordings = ScheduledRecordings()
- self.saveScheduledRecordings(scheduledRecordings)
+ schedule = ScheduledRecordings()
+ self.saveScheduledRecordings(schedule)
- _debug_('ScheduledRecordings has %s items.' %
len(scheduledRecordings.program_list))
+ _debug_('ScheduledRecordings has %s items.' %
len(schedule.program_list))
try:
mod_time = os.stat(config.TV_RECORD_SCHEDULE)[stat.ST_MTIME]
- self.scheduledRecordings_cache = mod_time, scheduledRecordings
+ self.schedule_cache = mod_time, schedule
except OSError:
pass
- return scheduledRecordings
+ return schedule
- @kaa.rpc.expose('saveScheduledRecordings')
- def saveScheduledRecordings(self, scheduledRecordings=None):
+ [EMAIL PROTECTED]('saveScheduledRecordings')
+ def saveScheduledRecordings(self, schedule=None):
""" Save the schedule to disk """
- _debug_('saveScheduledRecordings(scheduledRecordings=%r)' %
(scheduledRecordings), 1)
+ _debug_('saveScheduledRecordings(schedule=%r)' % (schedule), 1)
- if not scheduledRecordings:
+ if not schedule:
_debug_('making a new ScheduledRecordings', DINFO)
- scheduledRecordings = ScheduledRecordings()
-
- scheduledRecordings.saveRecordSchedule()
+ schedule = ScheduledRecordings()
- self.findOverlaps(scheduledRecordings)
- _debug_('saving cached file %r with %s items' % \
- (config.TV_RECORD_SCHEDULE,
len(scheduledRecordings.program_list)), 2)
- try:
- f = open(config.TV_RECORD_SCHEDULE, 'w')
- except IOError:
- os.unlink(config.TV_RECORD_SCHEDULE)
- f = open(config.TV_RECORD_SCHEDULE, 'w')
+ self.findOverlaps(schedule)
+ _debug_('saving cached file %r with %s items' %
(config.TV_RECORD_SCHEDULE, len(schedule.program_list)), 1)
- #print 'scheduledRecordings=%r' % (scheduledRecordings,)
- jellyToXML(scheduledRecordings, f)
- f.close()
+ schedule.saveRecordSchedule()
try:
mod_time = os.stat(config.TV_RECORD_SCHEDULE)[stat.ST_MTIME]
- self.scheduledRecordings_cache = mod_time, scheduledRecordings
+ self.schedule_cache = mod_time, schedule
except OSError:
pass
- return True
+ return (True, _('scheduled recordings saved'))
+
def loadPreviouslyRecordedShows(self):
""" Load the saved set of recorded shows """
+ _debug_('loadPreviouslyRecordedShows()', 1)
if self.previouslyRecordedShows:
return
@@ -326,16 +312,20 @@
self.previouslyRecordedShows = {}
pass
+
def savePreviouslyRecordedShows(self):
""" Save the set of recorded shows """
+ _debug_('savePreviouslyRecordedShows()', 1)
if not self.previouslyRecordedShows:
return
cacheFile = config.FREEVO_CACHEDIR+"/previouslyRecorded.pickle"
pickle.dump(self.previouslyRecordedShows, open(cacheFile, "w"))
+
def newEpisode(self, prog=None):
""" Return true if this is a new episode of 'prog' """
+ _debug_('newEpisode(prog=%r)' % (prog,), 1)
todayStr = datetime.date.today().strftime('%Y%m%d')
progStr = str(prog.date)
_debug_('Program Date: "%s"' % progStr, DINFO)
@@ -380,9 +370,11 @@
_debug_('No good date format, assuming new Episode to be on the
safe side', DINFO)
return True
+
def shrink(self, text):
""" Shrink a string by removing all spaces and making it
lower case and then returning the MD5 digest of it. """
+ _debug_('shrink(text=%r)' % (text,), 2)
if text:
text = md5.new(text.lower().replace(' ', '')).hexdigest()
else:
@@ -393,6 +385,7 @@
def getPreviousRecordingKey(self, prog):
"""Return the key to be used for a given prog in the
previouslyRecordedShows hashtable."""
+ _debug_('getPreviousRecordingKey(prog=%r)' % (prog,), 2)
shrunkTitle = self.shrink(prog.title)
shrunkSub = self.shrink(prog.sub_title)
shrunkDesc = self.shrink(prog.desc);
@@ -403,6 +396,7 @@
def getPreviousRecording(self, prog):
"""Get a previous recording, or None if none."""
+ _debug_('getPreviousRecording(prog=%r)' % (prog,), 2)
try:
return
self.previouslyRecordedShows[self.getPreviousRecordingKey(prog)]
except KeyError:
@@ -411,6 +405,7 @@
def removeDuplicate(self, prog=None):
"""Remove a duplicate recording"""
+ _debug_('removeDuplicate(prog=%r)' % (prog,), 2)
self.loadPreviouslyRecordedShows()
previous = self.getPreviousRecording(prog)
if previous:
@@ -421,8 +416,7 @@
def addDuplicate(self, prog=None):
"""Add program to duplicates hash"""
- _debug_('No previous recordings for "%s", "%s", "%s", adding to hash
and saving' % \
- (prog.title, prog.sub_title, prog.desc), 2)
+ _debug_('addDuplicate(prog=%r)' % (prog,), 2)
self.loadPreviouslyRecordedShows()
self.previouslyRecordedShows[self.getPreviousRecordingKey(prog)] = prog
for key in self.getPreviousRecordingKey(prog):
@@ -433,6 +427,7 @@
def duplicate(self, prog=None):
"""Identify if the given programme is a duplicate. If not,
record it as previously recorded."""
+ _debug_('duplicate(prog=%r)' % (prog,), 2)
self.loadPreviouslyRecordedShows()
previous = self.getPreviousRecording(prog)
if previous:
@@ -443,31 +438,35 @@
def addRecordingToSchedule(self, prog=None, inputSchedule=None):
+ _debug_('addRecordingToSchedule(%s, inputSchedule=%r)' % (prog,
inputSchedule), 1)
if inputSchedule:
- scheduledRecordings=inputSchedule
+ schedule = inputSchedule
else:
- scheduledRecordings = self.getScheduledRecordings()
- scheduledRecordings.addProgram(prog, tv_util.getKey(prog))
+ schedule = self.getScheduledRecordings()
+ schedule.addProgram(prog, tv_util.getKey(prog))
if not inputSchedule:
if config.TV_RECORD_DUPLICATE_DETECTION:
self.addDuplicate(prog)
- self.saveScheduledRecordings(scheduledRecordings)
+ self.saveScheduledRecordings(schedule)
def removeRecordingFromSchedule(self, prog=None, inputSchedule=None):
+ _debug_('removeRecordingFromSchedule(%s, inputSchedule=%r)' % (prog,
inputSchedule), 1)
if inputSchedule:
- scheduledRecordings = inputSchedule
+ schedule = inputSchedule
else:
- scheduledRecordings = self.getScheduledRecordings()
- scheduledRecordings.removeProgram(prog, tv_util.getKey(prog))
+ schedule = self.getScheduledRecordings()
+ schedule.removeProgram(prog, tv_util.getKey(prog))
if not inputSchedule:
if config.TV_RECORD_DUPLICATE_DETECTION:
self.removeDuplicate(prog)
- self.saveScheduledRecordings(scheduledRecordings)
+ self.saveScheduledRecordings(schedule)
def conflictResolution(self, prog):
+ _debug_('conflictResolution(prog=%r)' % (prog,), 2)
def exactMatch(self, prog):
+ _debug_('exactMatch(prog=%r)' % (prog,), 2)
if prog.desc:
descResult = False
descMatches = None
@@ -485,8 +484,9 @@
return sub_titleMatches
return None
+
def getConflicts(self, prog, myScheduledRecordings):
- _debug_('Before mySched recordings; ignore all addProgram lines',
DINFO)
+ _debug_('getConflicts(prog=%r, myScheduledRecordings=%r)' % (prog,
myScheduledRecordings), 2)
self.addRecordingToSchedule(prog, myScheduledRecordings)
progs = myScheduledRecordings.getProgramList()
proglist = list(progs)
@@ -503,10 +503,11 @@
elif nextprog == prog:
conflicts.append(thisprog)
self.removeRecordingFromSchedule(prog, myScheduledRecordings)
- _debug_('After mySched recordings; stop ignoring all addProgram
lines', DINFO)
return (conflictRating, conflicts)
+
def getRatedConflicts(self, prog, myScheduledRecordings):
+ _debug_('getRatedConflicts(prog=%r, myScheduledRecordings=%r)' %
(prog, myScheduledRecordings), 2)
ratedConflicts = []
occurances = exactMatch(self, prog)
if not occurances:
@@ -639,8 +640,8 @@
def checkOnlyNewDetection(self, prog=None):
+ _debug_('checkOnlyNewDetection(prog=%r)' % (prog,), 2)
if config.TV_RECORD_ONLY_NEW_DETECTION:
- _debug_('Only new episode detection enabled', DINFO)
if not self.doesFavoriteRecordOnlyNewEpisodes(prog):
return (True, 'Favorite records all episodes, record')
if self.newEpisode(prog):
@@ -652,8 +653,8 @@
def checkDuplicateDetection(self, prog=None):
+ _debug_('checkDuplicateDetection(prog=%r)' % (prog,), 2)
if config.TV_RECORD_DUPLICATE_DETECTION:
- _debug_('Duplicate detection enabled', DINFO)
if self.doesFavoriteAllowDuplicates(prog):
return (True, 'Favorite allows duplicates, record')
if not self.duplicate(prog):
@@ -665,6 +666,7 @@
def setTunerid(self, prog):
+ _debug_('setTunerid(prog=%r)' % (prog,), 2)
for chan in guide.chan_list:
if prog.channel_id == chan.id:
prog.tunerid = chan.tunerid
@@ -674,7 +676,7 @@
@kaa.rpc.expose('scheduleRecording')
def scheduleRecording(self, prog=None):
- _debug_('scheduleRecording(prog=%r)' % (prog), 1)
+ _debug_('scheduleRecording(%s)' % (prog,), 1)
global guide
if prog is None:
@@ -728,14 +730,12 @@
@kaa.rpc.expose('removeScheduledRecording')
def removeScheduledRecording(self, prog=None):
- _debug_('removeScheduledRecording(prog=%r)' % (prog), 1)
+ _debug_('removeScheduledRecording(prog=%r)' % (prog,), 1)
if prog is None:
return (False, _('program is not set'))
- # get our version of 'prog'
- # It's a bad hack, but we can use isRecording than
- sr = self.getScheduledRecordings()
- progs = sr.getProgramList()
+ schedule = self.getScheduledRecordings()
+ progs = schedule.getProgramList()
for saved_prog in progs.values():
if String(saved_prog) == String(prog):
@@ -769,12 +769,12 @@
schedule = self.getScheduledRecordings().getProgramList()
if schedule == {}:
- return False
+ return (False, _('program list is empty'))
for me in schedule.values():
if me.start == prog.start and me.channel_id == prog.channel_id:
- return True
- return False
+ return (True, _('program is scheduled'))
+ return (False, _('program is not scheduled'))
@kaa.rpc.expose('findProg')
@@ -844,18 +844,28 @@
def updateGuide(self):
+ _debug_('updateGuide()', 2)
global guide
guide = tv.epg_xmltv.get_guide()
+ def addFavoritesToSchedule(self):
+ _debug_('addFavoritesToSchedule()', 1)
+ pass
+
+
def checkToRecord(self):
- _debug_('checkToRecord %s' % (time.strftime('%H:%M:%S',
time.localtime(time.time()))), 2)
+ _debug_('checkToRecord %s' % (time.strftime('%H:%M:%S',
time.localtime(time.time()))), 1)
rec_cmd = None
rec_prog = None
cleaned = None
- sr = self.getScheduledRecordings()
- progs = sr.getProgramList()
+ schedule = self.getScheduledRecordings()
+ if schedule is None:
+ _debug_('no scheduled recordings')
+ return
+
+ progs = schedule.getProgramList()
currently_recording = None
for prog in progs.values():
@@ -902,7 +912,7 @@
and now < (prog.stop +
config.TV_RECORD_PADDING_POST):
_debug_('Ignoring %s' % prog, DINFO)
continue
- sr.removeProgram(currently_recording,
+ schedule.removeProgram(currently_recording,
tv_util.getKey(currently_recording))
plugin.getbyname('RECORD').Stop()
_debug_('CALLED RECORD STOP 1: %s' %
currently_recording, DINFO)
@@ -913,10 +923,9 @@
# Therefore we have overlapping paddings but not
real stop / start times.
overlap = (currently_recording.stop +
config.TV_RECORD_PADDING_POST) - \
(prog.start -
config.TV_RECORD_PADDING_PRE)
- if overlap <= ((config.TV_RECORD_PADDING_PRE +
- config.TV_RECORD_PADDING_POST)/4):
- sr.removeProgram(currently_recording,
-
tv_util.getKey(currently_recording))
+ if overlap <= ((config.TV_RECORD_PADDING_PRE +
config.TV_RECORD_PADDING_POST)/4):
+ schedule.removeProgram(currently_recording,
+ tv_util.getKey(currently_recording))
plugin.getbyname('RECORD').Stop()
_debug_('CALLED RECORD STOP 2: %s' %
currently_recording, DINFO)
self.delay_recording = prog
@@ -940,8 +949,8 @@
del progs[tv_util.getKey(prog)]
if rec_prog or cleaned:
- sr.setProgramList(progs)
- self.saveScheduledRecordings(sr)
+ schedule.setProgramList(progs)
+ self.saveScheduledRecordings(schedule)
if rec_prog:
_debug_('start recording: %s' % rec_prog, DINFO)
@@ -978,9 +987,10 @@
freespace = util.freespace(path)
i = i + 1
+
@kaa.rpc.expose('addFavorite')
def addFavorite(self, name, prog, exactchan=False, exactdow=False,
exacttod=False):
- _debug_('addFavorite(name=%r)' % (name,), 1)
+ _debug_('addFavorite(name=%r, prog=%r, exactchan=%r, exactdow=%r,
exacttod=%r)' % (name, prog, exactchan, exactdow, exacttod), 1)
if not name:
return (False, _('no favorite name'))
@@ -988,9 +998,9 @@
priority = len(favs) + 1
fav = tv.record_types.Favorite(name, prog, exactchan, exactdow,
exacttod, priority, allowDuplicates, onlyNew)
- scheduledRecordings = self.getScheduledRecordings()
- scheduledRecordings.addFavorite(fav)
- self.saveScheduledRecordings(scheduledRecordings)
+ schedule = self.getScheduledRecordings()
+ schedule.addFavorite(fav)
+ self.saveScheduledRecordings(schedule)
self.addFavoriteToSchedule(fav)
return (True, _('favorite added'))
@@ -998,7 +1008,7 @@
@kaa.rpc.expose('addEditedFavorite')
def addEditedFavorite(self, name, title, chan, dow, mod, priority,
allowDuplicates, onlyNew):
- _debug_('addEditedFavorite(name=%r)' % (name), 1)
+ _debug_('addEditedFavorite(name=%r, title=%r, chan=%r, dow=%r, mod=%r,
priority=%r, allowDuplicates=%r, onlyNew=%r)' % (name, title, chan, dow, mod,
priority, allowDuplicates, onlyNew), 1)
fav = tv.record_types.Favorite()
fav.name = name
@@ -1010,9 +1020,9 @@
fav.allowDuplicates = allowDuplicates
fav.onlyNew = onlyNew
- scheduledRecordings = self.getScheduledRecordings()
- scheduledRecordings.addFavorite(fav)
- self.saveScheduledRecordings(scheduledRecordings)
+ schedule = self.getScheduledRecordings()
+ schedule.addFavorite(fav)
+ self.saveScheduledRecordings(schedule)
self.addFavoriteToSchedule(fav)
return (True, _('favorite added'))
@@ -1026,9 +1036,9 @@
(status, fav) = self.getFavorite(name)
self.removeFavoriteFromSchedule(fav)
- scheduledRecordings = self.getScheduledRecordings()
- scheduledRecordings.removeFavorite(name)
- self.saveScheduledRecordings(scheduledRecordings)
+ schedule = self.getScheduledRecordings()
+ schedule.removeFavorite(name)
+ self.saveScheduledRecordings(schedule)
return (True, _('favorite removed'))
@@ -1036,9 +1046,9 @@
@kaa.rpc.expose('clearFavorites')
def clearFavorites(self):
_debug_('clearFavorites()', 1)
- scheduledRecordings = self.getScheduledRecordings()
- scheduledRecordings.clearFavorites()
- self.saveScheduledRecordings(scheduledRecordings)
+ schedule = self.getScheduledRecordings()
+ schedule.clearFavorites()
+ self.saveScheduledRecordings(schedule)
return (True, _('favorites cleared'))
@@ -1072,10 +1082,10 @@
_debug_('ap: mod=%s' % mod, DINFO)
- sr = self.getScheduledRecordings()
- favs = sr.getFavorites().values()
+ schedule = self.getScheduledRecordings()
+ favs = schedule.getFavorites().values()
- _debug_('adjusting prio of '+favname, DINFO)
+ _debug_('adjusting prio of %r' % (favname,), DINFO)
for fav in favs:
fav.priority = int(fav.priority)
@@ -1099,8 +1109,8 @@
fav.priority = fav.priority - 1
_debug_('moved prio of %s: %s => %s' % (fav.name,
fav.priority+1, fav.priority), DINFO)
- sr.setFavoritesList(favs)
- self.saveScheduledRecordings(sr)
+ schedule.setFavoritesList(favs)
+ self.saveScheduledRecordings(schedule)
return (True, _('priority adjusted'))
@@ -1108,7 +1118,7 @@
@kaa.rpc.expose('getFavoriteObject')
def getFavoriteObject(self, prog, favs=None):
""" more liberal favorite check that returns an object """
- _debug_('getFavoriteObject(prog=%r)' % (prog), 1)
+ _debug_('getFavoriteObject(prog=%r, favs=%r)' % (prog, favs), 1)
if not favs:
favs = self.getFavorites()
# first try the strict test
@@ -1126,7 +1136,8 @@
@kaa.rpc.expose('isProgAFavorite')
def isProgAFavorite(self, prog, favs=None):
- _debug_('isProgAFavorite(prog=%r)' % (prog), 2)
+ #_debug_('isProgAFavorite(prog=%s, favs=%r)' % (prog, favs), 1)
+ _debug_('isProgAFavorite(%s)' % (prog,), 2)
if not favs:
favs = self.getFavorites()
@@ -1151,6 +1162,7 @@
def doesFavoriteRecordOnlyNewEpisodes(self, prog, favs=None):
+ _debug_('doesFavoriteRecordOnlyNewEpisodes(prog=%r, favs=%r)' % (prog,
favs), 1)
if not favs:
favs = self.getFavorites()
for fav in favs.values():
@@ -1163,6 +1175,7 @@
def doesFavoriteAllowDuplicates(self, prog, favs=None):
+ _debug_('doesFavoriteAllowDuplicates(prog=%r, favs=%r)' % (prog,
favs), 1)
if not favs:
favs = self.getFavorites()
for fav in favs.values():
@@ -1183,8 +1196,8 @@
tmp = {}
tmp[fav.name] = fav
- scheduledRecordings = self.getScheduledRecordings()
- progs = scheduledRecordings.getProgramList()
+ schedule = self.getScheduledRecordings()
+ progs = schedule.getProgramList()
for prog in progs.values():
(isFav, favorite) = self.isProgAFavorite(prog, tmp)
if isFav:
@@ -1228,7 +1241,7 @@
for prog in ch.programs:
if prog.start > last: last = prog.start
- scheduledRecordings = self.getScheduledRecordings()
+ schedule = self.getScheduledRecordings()
favs = self.getFavorites()
@@ -1238,7 +1251,7 @@
# Then remove all scheduled favorites in that timeframe to
# make up for schedule changes.
- progs = scheduledRecordings.getProgramList()
+ progs = schedule.getProgramList()
for prog in progs.values():
# try:
@@ -1266,6 +1279,7 @@
def create_fxd(self, rec_prog):
+ _debug_('create_fxd(rec_prog=%r)' % (rec_prog,), 1)
from util.fxdimdb import FxdImdb, makeVideo
fxd = FxdImdb()
@@ -1291,30 +1305,12 @@
fxd.writeFxd()
- def startMinuteCheck(self):
- next_minute = (int(time.time()/60) * 60 + 60) - int(time.time())
- _debug_('top of the minute in %s seconds' % next_minute, DINFO)
- reactor.callLater(next_minute, self.minuteCheck)
-
-
- def minuteCheck(self):
- next_minute = (int(time.time()/60) * 60 + 60) - int(time.time())
- if next_minute != 60:
- # Compensate for timer drift
- _debug_('top of the minute in %s seconds' % next_minute, DINFO)
- reactor.callLater(next_minute, self.minuteCheck)
- else:
- reactor.callLater(60, self.minuteCheck)
-
- self.checkToRecord()
-
-
def handleEvents(self, event):
if event:
if hasattr(event, 'arg'):
- _debug_('event=%s arg=%r' % (event, event.arg))
+ _debug_('handleEvents(event=%s arg=%r)' % (event, event.arg))
else:
- _debug_('event=%s' % (event))
+ _debug_('handleEvents(event=%s)' % (event))
if event == OS_EVENT_KILL:
pass
@@ -1353,8 +1349,8 @@
# This is a really nasty hack but if it fixes the problem then
great
if self.delay_recording:
prog = self.delay_recording
- #sr.setProgramList(progs)
- #self.saveScheduledRecordings(sr)
+ #schedule.setProgramList(progs)
+ #self.saveScheduledRecordings(schedule)
prog.isRecording = True
duration = int(prog.stop) - int(time.time())
prog.rec_duration = duration +
config.TV_RECORD_PADDING_POST - 10
@@ -1376,6 +1372,7 @@
def handleAtTimer(self):
+ _debug_('handleAtTimer()', 2)
self.checkToRecord()
Modified: branches/rel-1/freevo/src/tv/epg_types.py
==============================================================================
--- branches/rel-1/freevo/src/tv/epg_types.py (original)
+++ branches/rel-1/freevo/src/tv/epg_types.py Tue Mar 4 16:57:50 2008
@@ -270,10 +270,6 @@
# Return a cached version?
global cache_last_start, cache_last_stop, cache_last_chanids,
cache_last_time, cache_last_result
- print 'DJW:start:', cache_last_start, start, 'stop:', cache_last_stop,
stop, 'chanids:', cache_last_chanids, chanids, 'time:', time.time(),
cache_last_time, time.time() < cache_last_time
- #import traceback
- #traceback.print_stack()
-
if (cache_last_start == start and cache_last_stop == stop and
cache_last_chanids == chanids and time.time() < cache_last_time):
_debug_('GetPrograms: return cached results, valid for %1.1f
secs.' % cache_last_time - time.time())
Modified: branches/rel-1/freevo/src/tv/favoriteitem.py
==============================================================================
--- branches/rel-1/freevo/src/tv/favoriteitem.py (original)
+++ branches/rel-1/freevo/src/tv/favoriteitem.py Tue Mar 4 16:57:50 2008
@@ -329,10 +329,6 @@
result = True
if result:
- print 'DJW:self.fav.__dict__=%r' % (self.fav.__dict__)
- f = Favorite(self.fav.name, TvProgram(self.fav.title,
self.fav.channel), self.fav.dow, self.fav.mod,
- self.fav.priority, self.fav.allowDuplicates, self.fav.onlyNew)
- print 'DJW:f.__dict__=%r' % (f.__dict__,)
# create a new edited favorite
(result, msg) =
self.recordclient.addEditedFavoriteNow(self.fav.name,
self.fav.title, self.fav.channel, self.fav.dow, self.fav.mod,
Modified: branches/rel-1/freevo/src/tv/programitem.py
==============================================================================
--- branches/rel-1/freevo/src/tv/programitem.py (original)
+++ branches/rel-1/freevo/src/tv/programitem.py Tue Mar 4 16:57:50 2008
@@ -104,9 +104,9 @@
# 'Schedule for recording' OR 'Remove from schedule'
(status, schedule) = self.recordclient.getScheduledRecordingsNow()
if schedule:
- (status, self.scheduled) =
self.recordclient.isProgScheduledNow(self.prog, schedule.getProgramList())
+ (self.scheduled, reason) =
self.recordclient.isProgScheduledNow(self.prog, schedule.getProgramList())
- if self.scheduled:
+ if status:
items.append((self.remove_program, _('Remove from schedule')))
else:
items.append((self.schedule_program, _('Schedule for recording')))
Modified: branches/rel-1/freevo/src/tv/record_client.py
==============================================================================
--- branches/rel-1/freevo/src/tv/record_client.py (original)
+++ branches/rel-1/freevo/src/tv/record_client.py Tue Mar 4 16:57:50 2008
@@ -209,7 +209,7 @@
try:
inprogress = self.recordserver_rpc('getScheduledRecordings')
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('getScheduledRecordingsNow.result=%r' % (result,), 1)
@@ -225,7 +225,7 @@
try:
inprogress = self.recordserver_rpc('updateFavoritesSchedule')
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('updateFavoritesScheduleNow.result=%r' % (result,), 1)
@@ -241,7 +241,7 @@
try:
inprogress = self.recordserver_rpc('findProg', chan, start)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('findProgNow.result=%r' % (result,), 1)
@@ -257,7 +257,7 @@
try:
inprogress = self.recordserver_rpc('findMatches', title)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('findMatchesNow.result=%r' % (result,), 1)
@@ -273,7 +273,7 @@
try:
inprogress = self.recordserver_rpc('isProgScheduled', prog,
schedule)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('isProgScheduledNow.result=%r' % (result,), 1)
@@ -289,7 +289,7 @@
try:
inprogress = self.recordserver_rpc('isProgAFavorite', prog, favs)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('isProgAFavoriteNow.result=%r' % (result,), 1)
@@ -305,7 +305,7 @@
try:
inprogress = self.recordserver_rpc('clearFavorites')
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('clearFavoritesNow.result=%r' % (result,), 1)
@@ -321,7 +321,7 @@
try:
inprogress = self.recordserver_rpc('getFavorites')
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('getFavoritesNow.result=%r' % (result,), 1)
@@ -337,7 +337,7 @@
try:
inprogress = self.recordserver_rpc('getFavorite', name)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('getFavoriteNow.result=%r' % (result,), 1)
@@ -353,7 +353,7 @@
try:
inprogress = self.recordserver_rpc('removeFavorite', name)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('removeFavoriteNow.result=%r' % (result,), 1)
@@ -372,7 +372,7 @@
inprogress = self.recordserver_rpc('addEditedFavorite', \
name, title, chan, dow, mod, priority, allowDuplicates,
onlyNew)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('addEditedFavoriteNow.result=%r' % (result,), 1)
@@ -388,7 +388,7 @@
try:
inprogress = self.recordserver_rpc('adjustPriority', name, mod)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('adjustPriorityNow.result=%r' % (result,), 1)
@@ -404,7 +404,7 @@
try:
inprogress = self.recordserver_rpc('getFavoriteObject', prog)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('getFavoriteObjectNow.result=%r' % (result,), 1)
@@ -420,7 +420,7 @@
try:
inprogress = self.recordserver_rpc('scheduleRecording', prog)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('scheduleRecordingNow.result=%r' % (result,), 1)
@@ -436,7 +436,7 @@
try:
inprogress = self.recordserver_rpc('removeScheduledRecording',
prog)
if inprogress is None:
- return (None, recordserverdown)
+ return (None, self.recordserverdown)
inprogress.wait()
result = inprogress.get_result()
_debug_('removeScheduledRecordingNow.result=%r' % (result,), 1)
@@ -601,7 +601,11 @@
elif function == "getscheduledrecordingsnow":
result = rc.getScheduledRecordingsNow()
- print 'result: %r\n"%s"' % (result, result)
+ status, schedule = result
+ if status:
+ print 'result: %r\n"%s"' % (schedule.__dict__, result)
+ else:
+ print 'result: %r' % (result,)
raise SystemExit
elif function == "getscheduledrecordings":
Modified: branches/rel-1/freevo/src/tv/record_types.py
==============================================================================
--- branches/rel-1/freevo/src/tv/record_types.py (original)
+++ branches/rel-1/freevo/src/tv/record_types.py Tue Mar 4 16:57:50 2008
@@ -40,10 +40,11 @@
# The file format version number. It must be updated when incompatible
# changes are made to the file format.
-TYPES_VERSION = 2
+TYPES_VERSION = 3
critical_section = threading.Lock()
+
class ScheduledRecordings:
"""
"""
@@ -51,48 +52,40 @@
""" """
_debug_('ScheduledRecordings.__init__()', 1)
self.TYPES_VERSION = TYPES_VERSION
- self.favorites_file_name = os.path.join(config.FREEVO_STATICDIR,
'favorites.pickle')
- self.favorites_text_name = os.path.join(config.FREEVO_STATICDIR,
'favorites.txt')
- self.schedule_file_name = os.path.join(config.FREEVO_STATICDIR,
'schedule.pickle')
self.program_list = {}
+ self.manual_recordings = self.loadManualRecordings()
self.favorites = self.loadFavorites()
- def initialize(self):
- if not hasattr(self, 'favorites_file_name'):
- self.favorites_file_name = os.path.join(config.FREEVO_STATICDIR,
'favorites.pickle')
- if not hasattr(self, 'favorites_text_name'):
- self.favorites_text_name = os.path.join(config.FREEVO_STATICDIR,
'favorites.txt')
- if not hasattr(self, 'schedule_file_name'):
- self.schedule_file_name = os.path.join(config.FREEVO_STATICDIR,
'schedule.pickle')
- if not hasattr(self, 'program_list'):
- self.program_list = {}
- if not hasattr(self, 'favorites'):
- self.favorites = self.loadFavorites()
-
-
def loadRecordSchedule(self):
- """ Load the recording schedule from a file """
+ """ Load the tv recording schedule from a pickle file """
_debug_('loadRecordSchedule()', 1)
# may need to use a critical section here
- self.schedules = {}
+ recordSchedule = None
try:
- schedules_fh = open(self.schedule_file_name, 'rb')
- self.program_list = pickle.load(schedules_fh)
- schedules_fh.close()
+ schedule_fh = open(config.TV_RECORD_SCHEDULE, 'rb')
+ recordSchedule = pickle.load(schedule_fh)
+ schedule_fh.close()
except IOError, why:
- return {}
- return self.schedules
+ _debug_('loadRecordSchedule: %s' % why, DWARNING)
+ return None
+ except Exception, why:
+ import traceback
+ traceback.print_stack()
+ print why
+ return recordSchedule
def saveRecordSchedule(self):
- """ Save the recording schedule to a file """
+ """ Save the tv recording schedule to a pickle file """
_debug_('saveRecordSchedule()', 1)
- # save the favourites as a pickle file
try:
- schedules_fh = open(self.schedule_file_name, 'wb')
- pickle.dump(self.program_list, schedules_fh)
- schedules_fh.close()
+ schedule_fh = open(config.TV_RECORD_SCHEDULE, 'wb')
+ pickle.dump(self, schedule_fh)
+ schedule_fh.close()
+ except IOError, why:
+ _debug_('saveRecordSchedule: %s' % why, DWARNING)
+ return None
except Exception, why:
import traceback
traceback.print_stack()
@@ -101,31 +94,32 @@
def addProgram(self, prog, key=None):
""" """
- _debug_('addProgram(prog=%r, key=%r)' % (prog, key), 1)
+ _debug_('addProgram(%s, key=%r)' % (prog, key), 1)
if not key:
# key = rec_interface.getKey(prog)
pass
if not self.program_list.has_key(key):
self.program_list[key] = prog
- _debug_('added \"%s\" %s"' % (String(key), prog), 2)
+ _debug_('%s "%s" added' % (key, prog), 1)
else:
_debug_('We already know about this recording \"%s\"' % (key),
DINFO)
- _debug_('"%s" items' % len(self.program_list), 2)
+ _debug_('"%s" items' % len(self.program_list), 1)
def removeProgram(self, prog, key=None):
""" """
- _debug_('removeProgram(prog=%r, key=%r)' % (prog, key), 1)
+ _debug_('removeProgram(%s, key=%r)' % (prog, key), 1)
if not key:
# key = rec_interface.getKey(prog)
pass
if self.program_list.has_key(key):
del self.program_list[key]
- _debug_('removed %r %s"' % (key, prog), 2)
+ _debug_('%s "%s" removed' % (key, prog), 1)
else:
_debug_('We do not know about this recording \"%s\"' % (prog),
DINFO)
+ _debug_('"%s" items' % len(self.program_list), 1)
def getProgramList(self):
@@ -140,13 +134,25 @@
self.program_list = pl
+ def loadManualRecordings(self):
+ """ Load the manual recordings from a file """
+ _debug_('loadManualRecordings()', 1)
+ return {}
+
+
+ def saveManualRecordings(self):
+ """ Save the manual recordings to a file """
+ _debug_('saveManualRecordings()', 1)
+ pass
+
+
def loadFavorites(self):
""" Load the favourites from a file """
_debug_('loadFavorites()', 1)
# may need to use a critical section here
self.favorites = {}
try:
- favorites_fh = open(self.favorites_file_name, 'rb')
+ favorites_fh = open(config.TV_RECORD_FAVORITES, 'rb')
self.favorites = pickle.load(favorites_fh)
favorites_fh.close()
except IOError, why:
@@ -159,7 +165,7 @@
_debug_('saveFavorites()', 1)
# save the favourites as a pickle file
try:
- favorites_fh = open(self.favorites_file_name, 'wb')
+ favorites_fh = open(config.TV_RECORD_FAVORITES, 'wb')
pickle.dump(self.favorites, favorites_fh)
favorites_fh.close()
except Exception, why:
@@ -168,7 +174,7 @@
print why
# save the favourites as a text file
try:
- favorites_fh = open(self.favorites_text_name, 'w')
+ favorites_fh = open(config.TV_RECORD_FAVORITES_LIST, 'w')
print >>favorites_fh, TYPES_VERSION
for favourite in self.favorites.keys():
f = self.favorites[favourite]
@@ -185,7 +191,6 @@
def addFavorite(self, fav):
""" """
_debug_('addFavorite(fav=%r)' % (fav,), 1)
- print 'DJW:self.favorites=%r' % (self.favorites,)
if self.favorites and self.favorites.has_key(fav.name):
_debug_('We already have a favorite called "%s"' %
String(fav.name), DINFO)
return
Modified: branches/rel-1/freevo/src/tv/tvguide.py
==============================================================================
--- branches/rel-1/freevo/src/tv/tvguide.py (original)
+++ branches/rel-1/freevo/src/tv/tvguide.py Tue Mar 4 16:57:50 2008
@@ -121,13 +121,12 @@
def update_schedules(self, force=False):
- _debug_('update_schedules(force=False)', 2)
"""
update schedule
reload the list of scheduled programs and check for overlapping
"""
- print 'DJW:update_schedules(force=%r)' % (force)
+ _debug_('update_schedules(force=%r)' % (force,), 1)
if not force and self.last_update + 60 > time.time():
return
Modified: branches/rel-1/freevo/src/www/htdocs/config.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/config.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/config.rpy Tue Mar 4 16:57:50 2008
@@ -664,7 +664,6 @@
return htmlctrl
-
def DisplayConfigChanges(current_version):
'''
'''
@@ -712,6 +711,7 @@
return None
+
class ConfigResource(FreevoResource):
def __init__(self):
Modified: branches/rel-1/freevo/src/www/htdocs/favorites.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/favorites.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/favorites.rpy Tue Mar 4 16:57:50 2008
@@ -31,8 +31,8 @@
import sys, time, string
import urllib
-import config
+import config
from tv.record_client import RecordClient
import util.tv_util as tv_util
Modified: branches/rel-1/freevo/src/www/htdocs/genre.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/genre.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/genre.rpy Tue Mar 4 16:57:50 2008
@@ -31,7 +31,8 @@
import sys, time, string
-import util, config
+import config
+import util
from tv.record_client import RecordClient
from www.web_types import HTMLResource, FreevoResource
import tv.epg_xmltv
@@ -83,7 +84,7 @@
category = fv.formValue(form, 'category')
guide = tv.epg_xmltv.get_guide()
- schedule = self.recordclient.getScheduledRecordingsNow()
+ (status, schedule) = self.recordclient.getScheduledRecordingsNow()
if schedule is not None:
schedule = schedule.getProgramList()
@@ -158,7 +159,7 @@
# use counter to see if we have data
gotdata += 1
if got_schedule:
- result = self.recordclient.isProgScheduledNow(prog,
schedule)
+ (result, reason) =
self.recordclient.isProgScheduledNow(prog, schedule)
if result:
status = 'scheduled'
really_now = time.time()
Modified: branches/rel-1/freevo/src/www/htdocs/guide.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/guide.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/guide.rpy Tue Mar 4 16:57:50 2008
@@ -141,7 +141,7 @@
mfrprevguide = 0
guide = tv.epg_xmltv.get_guide()
- schedule = self.recordclient.getScheduledRecordingsNow()
+ (status, schedule) = self.recordclient.getScheduledRecordingsNow()
if schedule:
schedule = schedule.getProgramList()
@@ -211,7 +211,7 @@
status = 'program'
if schedule:
- result = self.recordclient.isProgScheduledNow(prog,
schedule)
+ (result, reason) =
self.recordclient.isProgScheduledNow(prog, schedule)
if result:
status = 'scheduled'
really_now = time.time()
Modified: branches/rel-1/freevo/src/www/htdocs/guidechannel.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/guidechannel.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/guidechannel.rpy Tue Mar 4
16:57:50 2008
@@ -86,7 +86,7 @@
program_tip = 'Scheduled Program : %s' %
Unicode(sch_prog.sub_title)
if self.got_schedule:
- result = self.recordclient.isProgScheduledNow(prog, self.schedule)
+ (result, reason) = self.recordclient.isProgScheduledNow(prog,
self.schedule)
if result:
status = 'programlinerecord'
if self.currenttime > prog.start and self.currenttime <
prog.stop:
@@ -214,7 +214,6 @@
if getprogramlist:
chan = self.GetChannel(getprogramlist,self.guide)
fv.res = self.GetChannelPrograms(chan)
-
return String(fv.res)
dchan = self.GetChannel(display_channel,self.guide)
Modified: branches/rel-1/freevo/src/www/htdocs/index.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/index.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/index.rpy Tue Mar 4 16:57:50 2008
@@ -31,9 +31,10 @@
import sys, time
+import config
+import util
from tv.record_client import RecordClient
from www.web_types import HTMLResource, FreevoResource
-import util, config
import util.tv_util as tv_util
TRUE = 1
@@ -50,9 +51,9 @@
fv.res += '<br/><br/><h2>'+_('Freevo Web Status as of %s') % \
(time.strftime('%B %d '+config.TV_TIME_FORMAT,
time.localtime())) +'</h2>'
- recordings = RecordClient().getScheduledRecordingsNow()
+ (status, schedule) = RecordClient().getScheduledRecordingsNow()
- if recordings is None:
+ if schedule is None:
fv.res += '<p class="alert"><b>'+_('Notice')+'</b>: '+_('Recording
server is not available')+'</p>\n'
else:
fv.res += '<p class="normal">'+_('Recording server is up and
running')+'</p>\n'
@@ -66,8 +67,8 @@
else:
fv.res += '<p class="normal">'+_('Your listings are up to
date')+'</p>\n'
- if recordings:
- progl = recordings.getProgramList().values()
+ if schedule:
+ progl = schedule.getProgramList().values()
f = lambda a, b: cmp(a.start, b.start)
progl.sort(f)
for prog in progl:
Modified: branches/rel-1/freevo/src/www/htdocs/library.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/library.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/library.rpy Tue Mar 4 16:57:50 2008
@@ -333,7 +333,7 @@
favre = ''
favs = []
if action_mediatype == 'movies' or action_mediatype == 'rectv':
- schedule = self.recordclient.getScheduledRecordingsNow()
+ (status, schedule) =
self.recordclient.getScheduledRecordingsNow()
if schedule:
progs = schedule.getProgramList()
f = lambda a, b: cmp(a.start, b.start)
Modified: branches/rel-1/freevo/src/www/htdocs/record.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/record.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/record.rpy Tue Mar 4 16:57:50 2008
@@ -32,12 +32,11 @@
import sys, time
import util.tv_util as tv_util
+import config
from tv.record_client import RecordClient
from www.web_types import HTMLResource, FreevoResource
-import config
-
TRUE = 1
FALSE = 0
@@ -63,8 +62,8 @@
return String( fv.res )
if action == 'remove':
- recordings = self.recordclient.getScheduledRecordingsNow()
- progs = recordings.getProgramList()
+ (status, schedule) = self.recordclient.getScheduledRecordingsNow()
+ progs = schedule.getProgramList()
prog = None
for what in progs.values():
@@ -87,8 +86,8 @@
self.recordclient.scheduleRecordingNow(prog)
- recordings = self.recordclient.getScheduledRecordingsNow()
- progs = recordings.getProgramList()
+ (status, schedule) = self.recordclient.getScheduledRecordingsNow()
+ progs = schedule.getProgramList()
favs = self.recordclient.getFavoritesNow()
fv.printHeader(_('Scheduled Recordings'), 'styles/main.css',
selected=_('Scheduled Recordings'))
Modified: branches/rel-1/freevo/src/www/htdocs/search.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/search.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/search.rpy Tue Mar 4 16:57:50 2008
@@ -68,10 +68,10 @@
(got_matches, progs) = self.recordclient.findMatchesNow(find,
movies_only)
if got_matches:
- (result, favs) = self.recordclient.getFavoritesNow()
- (result, recordings) =
self.recordclient.getScheduledRecordingsNow()
- if result:
- rec_progs = recordings.getProgramList()
+ (status, favs) = self.recordclient.getFavoritesNow()
+ (status, schedule) = self.recordclient.getScheduledRecordingsNow()
+ if status:
+ rec_progs = schedule.getProgramList()
fv.printHeader(_('Search'), 'styles/main.css', selected=_('Search'))
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog