Author: duncan
Date: Sat Feb 16 14:33:37 2008
New Revision: 10373

Log:
Changed programitem to use kaa.rpc calls
Added programitem methods to record_client


Modified:
   branches/rel-1/freevo/src/tv/programitem.py
   branches/rel-1/freevo/src/tv/record_client.py

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 Sat Feb 16 14:33:37 2008
@@ -39,7 +39,7 @@
 from favoriteitem import FavoriteItem
 
 import util.tv_util as tv_util
-import tv.record_client as record_client
+from tv.record_client import RecordClient
 from tv.channels import FreevoChannels
 from tv.record_types import Favorite
 
@@ -91,12 +91,9 @@
         # defaults to not favorite
         self.favorite = False
 
-        # start time
-        self.start = time.strftime(config.TV_DATETIME_FORMAT,
-                                   time.localtime(prog.start))
-        # stop time
-        self.stop = time.strftime(config.TV_DATETIME_FORMAT,
-                                       time.localtime(prog.stop))
+        self.start = time.strftime(config.TV_DATETIME_FORMAT, 
time.localtime(prog.start))
+        self.stop = time.strftime(config.TV_DATETIME_FORMAT, 
time.localtime(prog.stop))
+        self.recordclient = RecordClient()
 
     def actions(self):
         """ List of actions """
@@ -116,10 +113,9 @@
 
         ## 'Schedule for recording' OR 'Remove from schedule'
         # check if this program is scheduled
-        (got_schedule, schedule) = record_client.getScheduledRecordings()
-        if got_schedule:
-            (result, message) = record_client.isProgScheduled(self.prog,
-                                               schedule.getProgramList())
+        schedule = self.recordclient.getScheduledRecordingsNow()
+        if schedule:
+            (result, message) = 
self.recordclient.isProgScheduledNow(self.prog, schedule.getProgramList())
             if result:
                 self.scheduled = True
             else:
@@ -132,7 +128,7 @@
 
         ## 'Add to favorites' OR 'Remove from favorites'
         # check if this program is a favorite
-        (result, message) = record_client.isProgAFavorite(self.prog)
+        (result, message) = self.recordclient.isProgAFavoriteNow(self.prog)
         if result:
             self.favorite = True
 
@@ -200,6 +196,7 @@
         _debug_('show_description(arg=%r, menuw=%r)' % (arg, menuw), 2)
         ShowProgramDetails(menuw, self)
 
+
     def toggle_rec(self, arg=None, menuw=None):
         """
         schedule or unschedule this program, depending on its current status
@@ -214,20 +211,21 @@
             self.schedule_program(menuw=menuw)
             self.scheduled = True
 
+
     def schedule_program(self, arg=None, menuw=None):
         """
         Add a program to schedule
         """
         _debug_('schedule_program(arg=%r, menuw=%r)' % (arg, menuw), 2)
         # schedule the program
-        (result, msg) = record_client.scheduleRecording(self.prog)
+        (result, msg) = self.recordclient.scheduleRecordingNow(self.prog)
         if result:
             menuw.delete_submenu(refresh=False)
             if hasattr(self.parent, 'update'):
                 self.parent.update(force=True)
             else:
                 menuw.refresh(reload=True)
-            msgtext= _('"%s" has been scheduled for recording') %self.name
+            msgtext= _('"%s" has been scheduled for recording') % self.name
             pop = AlertBox(text=msgtext).show()
         else:
             # something went wrong
@@ -241,7 +239,7 @@
         """
         _debug_('remove_program(arg=%r, menuw=%r)' % (arg, menuw), 2)
         # remove the program
-        (result, msg) = record_client.removeScheduledRecording(self.prog)
+        (result, msg) = 
self.recordclient.removeScheduledRecordingNow(self.prog)
         if result:
             menuw.delete_submenu(refresh=False)
             if hasattr(self.parent, 'update'):
@@ -281,7 +279,7 @@
             menuw.delete_submenu(refresh=False)
 
         # get the favorite from the record_client
-        (got_fav, fav) = record_client.getFavoriteObject(self.prog)
+        (got_fav, fav) = self.recordclient.getFavoriteObjectNow(self.prog)
         if got_fav:
             # create a favorite item for the submenu
             fav_item = FavoriteItem(self, fav, fav_action='edit')
@@ -303,7 +301,7 @@
         pop = PopupBox(text=_('Searching, please wait...'))
         pop.show()
         # do the search
-        (result, matches) = record_client.findMatches(self.title)
+        (result, matches) = self.recordclient.findMatchesNow(self.title)
         # we are ready -> kill the popup message
         pop.destroy()
         if result:

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       Sat Feb 16 14:33:37 2008
@@ -37,7 +37,7 @@
 import kaa.rpc
 import time, sys, socket, traceback, string
 import xmlrpclib
-import epg_types
+import tv.epg_types
 
 from util.marmalade import jellyToXML, unjellyFromXML
 
@@ -99,14 +99,73 @@
             return None
 
 
+    @kaa.coroutine()
+    def pingCo(self):
+        now = time.time()
+        print self.timeit(now)+': pingCo started'
+        inprogress = self.recordserver_rpc('ping')
+        print self.timeit(now)+': pingCo.inprogress=%r' % inprogress
+        yield inprogress
+        print self.timeit(now)+': pingCo.inprogress=%r' % inprogress
+        yield inprogress.get_result()
+        print self.timeit(now)+': pingCo finished' # we never get here
+
+
+    @kaa.coroutine()
+    def findNextProgramCo(self, isrecording=False):
+        """ """
+        now = time.time()
+        print self.timeit(now)+': findNextProgramCo(isrecording=%r) started' % 
(isrecording,)
+        inprogress = self.recordserver_rpc('findNextProgram', isrecording)
+        print self.timeit(now)+': findNextProgramCo.inprogress=%r' % inprogress
+        yield inprogress
+        print self.timeit(now)+': findNextProgramCo.inprogress=%r' % inprogress
+        yield inprogress.get_result()
+        print self.timeit(now)+': findNextProgramCo finished'
+
+
+    @kaa.coroutine()
+    def updateFavoritesScheduleCo(self):
+        """ """
+        now = time.time()
+        print self.timeit(now)+': updateFavoritesScheduleCo started'
+        inprogress = self.recordserver_rpc('updateFavoritesSchedule')
+        print self.timeit(now)+': updateFavoritesScheduleCo.inprogress=%r' % 
inprogress
+        yield inprogress
+        print self.timeit(now)+': updateFavoritesScheduleCo.inprogress=%r' % 
inprogress
+        yield inprogress.get_result()
+        print self.timeit(now)+': updateFavoritesScheduleCo finished'
+
+
+    @kaa.coroutine()
+    def getNextProgramStart(self):
+        """ """
+        now = time.time()
+        print self.timeit(now)+': getNextProgramStart begin'
+        inprogress = self.recordserver_rpc('updateFavoritesSchedule')
+        print self.timeit(now)+': getNextProgramStart.inprogress=%r' % 
inprogress
+        yield inprogress
+        print self.timeit(now)+': getNextProgramStart.inprogress=%r' % 
inprogress
+        #yield kaa.NotFinished
+        print self.timeit(now)+': getNextProgramStart.NotFinished'
+        yield inprogress.get_result()
+        print self.timeit(now)+': getNextProgramStart.findNextProgram'
+        inprogress = self.recordserver_rpc('findNextProgram')
+        print self.timeit(now)+': getNextProgramStart.inprogress=%r' % 
inprogress
+        yield inprogress
+        print self.timeit(now)+': getNextProgramStart.inprogress=%r' % 
inprogress
+        nextstart = inprogress.get_result()
+        print self.timeit(now)+': getNextProgramStart.nextstart=%r' % nextstart
+
+
     def findNextProgramNow(self, isrecording=False):
         """ Find the next programme to record """
         _debug_('findNextProgramNow(isrecording=%r)' % (isrecording,), 2)
-        progress = self.recordserver_rpc('findNextProgram', isrecording)
-        if progress is None:
+        inprogress = self.recordserver_rpc('findNextProgram', isrecording)
+        if inprogress is None:
             return None
-        progress.wait()
-        result = progress.get_result()
+        inprogress.wait()
+        result = inprogress.get_result()
         _debug_('findNextProgramNow.result=%r' % (result,), 2)
         return result
 
@@ -114,11 +173,11 @@
     def getScheduledRecordingsNow(self):
         """ get the scheduled recordings, returning the scheduled recordings 
object """
         _debug_('getScheduledRecordingsNow()', 2)
-        progress = self.recordserver_rpc('getScheduledRecordings')
-        if progress is None:
+        inprogress = self.recordserver_rpc('getScheduledRecordings')
+        if inprogress is None:
             return None
-        progress.wait()
-        result = progress.get_result()
+        inprogress.wait()
+        result = inprogress.get_result()
         _debug_('getScheduledRecordingsNow.result=%r' % (result,), 2)
         return result
 
@@ -126,34 +185,86 @@
     def updateFavoritesScheduleNow(self):
         """ Update the favorites scbedule, returning the object """
         _debug_('updateFavoritesScheduleNow()', 2)
-        progress = self.recordserver_rpc('updateFavoritesSchedule')
-        if progress is None:
+        inprogress = self.recordserver_rpc('updateFavoritesSchedule')
+        if inprogress is None:
             return None
-        progress.wait()
-        result = progress.get_result()
+        inprogress.wait()
+        result = inprogress.get_result()
         _debug_('getScheduledRecordingsNow.result=%r' % (result,), 2)
         return result
 
 
-    #yield kaa.NotFinished
-    @kaa.coroutine()
-    def getNextProgramStart(self):
-        """ """
-        global nextstart
-        now = time.time()
-        print self.timeit(now)+': getNextProgramStart begin'
-        progress = self.recordserver_rpc('updateFavoritesSchedule')
-        print self.timeit(now)+': getNextProgramStart.progress=%r' % progress
-        yield progress
-        print self.timeit(now)+': getNextProgramStart.progress=%r' % progress
-        result = progress.get_result()
-        print self.timeit(now)+': getNextProgramme.result=%r' % result
-        progress = self.recordserver_rpc('findNextProgram')
-        print self.timeit(now)+': getNextProgramStart.progress=%r' % progress
-        yield progress
-        print self.timeit(now)+': getNextProgramStart.progress=%r' % progress
-        nextstart = progress.get_result()
-        print self.timeit(now)+': getNextProgramme.nextstart=%r' % nextstart
+    def findMatchesNow(self, title):
+        """ See if a programme is a favourite """
+        _debug_('findMatchesNow(title=%r)' % (title), 1)
+        inprogress = self.recordserver_rpc('findMatches', title)
+        if inprogress is None:
+            return None
+        inprogress.wait()
+        result = inprogress.get_result()
+        _debug_('findMatchesNow.result=%r' % (result,), 1)
+        return result
+
+
+    def isProgScheduledNow(self, prog, schedule=None):
+        """ See if a programme is a schedule """
+        _debug_('isProgScheduledNow(prog=%r, schedule=%r)' % (prog, schedule), 
1)
+        inprogress = self.recordserver_rpc('isProgScheduled', prog, schedule)
+        if inprogress is None:
+            return None
+        inprogress.wait()
+        result = inprogress.get_result()
+        _debug_('isProgScheduledNow.result=%r' % (result,), 1)
+        return result
+
+
+    def isProgAFavoriteNow(self, prog, favs=None):
+        """ See if a programme is a favourite """
+        _debug_('isProgAFavoriteNow(prog=%r, favs=%r)' % (prog, favs), 1)
+        inprogress = self.recordserver_rpc('isProgAFavorite', prog, favs)
+        if inprogress is None:
+            return None
+        inprogress.wait()
+        result = inprogress.get_result()
+        _debug_('isProgAFavoriteNow.result=%r' % (result,), 1)
+        return result
+
+
+    def getFavoriteObjectNow(self, prog):
+        """ See if a programme is a favourite """
+        _debug_('getFavoriteObjectNow(prog=%r)' % (prog), 1)
+        inprogress = self.recordserver_rpc('getFavoriteObject', prog)
+        if inprogress is None:
+            return None
+        inprogress.wait()
+        result = inprogress.get_result()
+        _debug_('getFavoriteObjectNow.result=%r' % (result,), 1)
+        return result
+
+
+    def scheduleRecordingNow(self, prog):
+        """ See if a programme is a favourite """
+        _debug_('scheduleRecordingNow(prog=%r)' % (prog,), 1)
+        inprogress = self.recordserver_rpc('scheduleRecording', prog)
+        if inprogress is None:
+            return None
+        inprogress.wait()
+        result = inprogress.get_result()
+        _debug_('scheduleRecordingNow.result=%r' % (result,), 1)
+        return result
+
+
+    def removeScheduledRecordingNow(self, prog):
+        """ See if a programme is a favourite """
+        _debug_('removeScheduledRecordingNow(prog=%r)' % (prog,), 1)
+        inprogress = self.recordserver_rpc('removeScheduledRecording', prog)
+        if inprogress is None:
+            return None
+        inprogress.wait()
+        result = inprogress.get_result()
+        _debug_('removeScheduledRecordingNow.result=%r' % (result,), 1)
+        return result
+
 
 
     def server_rpc(self, cmd, callback, *args, **kwargs):
@@ -224,10 +335,16 @@
         return self.server_rpc('getFavorites', callback)
 
 
+    def isProgAFavorite(self, callback, prog, favs=None):
+        """ See if a programme is a favourite """
+        _debug_('isProgAFavorite(callback=%r, prog=%r, favs=%r)' % (callback, 
prog, favs), 2)
+        return self.server_rpc('isProgAFavorite', callback, prog, favs)
 
-#
+
+#================================================================================
 # Deprecated Twisted calls
-#
+#================================================================================
+
 def returnFromJelly(status, response):
     """ Unjelly the xml from the response """
     _debug_('returnFromJelly(status=%r, response=%r)' % (status, response), 2)
@@ -482,11 +599,11 @@
 if __name__ == '__main__':
     config.DEBUG = 2
 
-    def shutdown(result,):
-        print "shutdown.result=%r" % (result,)
+    def shutdown(message, now):
+        print "shutdown.message=%r after %.3f secs" % (message, 
time.time()-now)
         raise SystemExit
 
-    def handler(result,):
+    def handler(result):
         """ A callback handler for test functions """
         _debug_('handler(result=%r)' % (result,), 2)
         print 'handler.result=%r' % (result,)
@@ -497,17 +614,33 @@
 
     if len(sys.argv) >= 2:
         function = sys.argv[1].lower()
+        args = sys.argv[2:]
     else:
         function = 'none'
 
+    start = time.time()
     print 'xml_rpc_server at %r' % (xml_rpc_server)
+    print 'function=%r args=%r' % (function, args)
 
     
#--------------------------------------------------------------------------------
     # kaa.rpc coroutine tests
     
#--------------------------------------------------------------------------------
 
+    if function == "pingco":
+        r = rc.pingCo().wait()
+        print 'pingCo=%r' % (r,)
+
+    if function == "findnextprogramco":
+        r = rc.findNextProgramCo().wait()
+        print 'findNextProgramCo=%r' % (r,)
+
+    if function == "updatefavoritesscheduleco":
+        r = rc.updateFavoritesScheduleCo().wait()
+        print 'updateFavoritesScheduleCo=%r' % (r,)
+
     if function == "getnextprogramstart":
-        rc.getNextProgramStart()
+        r = rc.getNextProgramStart().wait()
+        print 'getNextProgramStart=%r' % (r,)
 
     
#--------------------------------------------------------------------------------
     # kaa.rpc callback tests
@@ -533,13 +666,22 @@
         rc.getScheduledRecordings(handler)
 
     if function == "updatefavoritesschedulenow":
-        start = time.time()
         result = rc.updateFavoritesScheduleNow()
         print '%s: result: %r' % (rc.timeit(start), result)
 
     if function == "updatefavoritesschedule":
         rc.updateFavoritesSchedule(handler)
 
+    if function == "findmatchesnow":
+        result = rc.findMatchesNow('King of Queens')
+        print '%s: result: %r' % (rc.timeit(start), result)
+
+    if function == "isprogschedulednow":
+        schedule = rc.getScheduledRecordingsNow()
+        if schedule:
+            pass
+            #message = rc.isProgScheduledNow(prog, schedule.getProgramList())
+
     
#--------------------------------------------------------------------------------
     # Twisted xmlrpc tests
     
#--------------------------------------------------------------------------------
@@ -590,5 +732,5 @@
         else:
             print 'no data'
 
-    kaa.notifier.OneShotTimer(shutdown, 'bye').start(20)
+    kaa.notifier.OneShotTimer(shutdown, 'bye', time.time()).start(20)
     kaa.main.run()

-------------------------------------------------------------------------
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

Reply via email to