Author: duncan
Date: Tue Aug 21 13:49:55 2007
New Revision: 9833

Log:
[ 1776072 ] favorite matching can lead to unexpected results
Patch from Tanja Kotthaus applied


Modified:
   branches/rel-1/freevo/ChangeLog
   branches/rel-1/freevo/src/helpers/recordserver.py
   branches/rel-1/freevo/src/tv/record_client.py

Modified: branches/rel-1/freevo/ChangeLog
==============================================================================
--- branches/rel-1/freevo/ChangeLog     (original)
+++ branches/rel-1/freevo/ChangeLog     Tue Aug 21 13:49:55 2007
@@ -25,6 +25,7 @@
  * Updated tv favourite handling and programme item to provide a consistant 
interface (F#1776909)
  * Updated video item to include the full description (F#1777187)
  * Fixed cd-rom drives eject causing a crash (B#1775892)
+ * Fixed matching favourites, by initially restricting the search (B#1776072)
  * Fixed tvmenu crashing because of the search plug-in (B#1774544)
 
 == Release 1.7.3 (2007-08-01) ==

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 Aug 21 13:49:55 2007
@@ -1101,9 +1101,15 @@
         return (TRUE, 'priorities adjusted')
 
     def getFavoriteObject(self, prog, favs=None):
-        #more liberal favorite check that returns an object
+        """more liberal favorite check that returns an object"""
         if not favs:
             (status, favs) = self.getFavorites()
+        # first try the strict test
+        name = tv_util.progname2favname(prog.title)
+        if favs.has_key(name):
+            fav = favs[name]
+            return (TRUE, fav)
+        # try harder to find this favorite in a more liberal search
         for fav in favs.values():
             if Unicode(prog.title).lower().find(Unicode(fav.title).lower()) >= 
0:
                 return (TRUE, fav)
@@ -1435,6 +1441,20 @@
         return (status, message)
 
 
+    def xmlrpc_getFavoriteObject(self, prog, favs=None):
+        (status, message) = (FALSE, 'RecordServer::getFavoriteObject: cannot 
acquire lock')
+        self.lock.acquire()
+        try:
+            prog = unjellyFromXML(prog)
+            if favs:
+                favs = unjellyFromXML(favs)
+            (status, response) = self.getFavoriteObject(prog, favs)
+            message = status and jellyToXML(response) or 
'RecordServer::getFavoriteObject: %s' % response
+        finally:
+            self.lock.release()
+        return (status, message)
+
+
     def xmlrpc_adjustPriority(self, favname, mod=0):
         (status, message) = (FALSE, 'RecordServer::adjustPriority: cannot 
acquire lock')
         self.lock.acquire()
@@ -1447,14 +1467,14 @@
 
 
     def xmlrpc_isProgAFavorite(self, prog, favs=None):
-        (status, message) = (FALSE, 'RecordServer::adjustPriority: cannot 
acquire lock')
+        (status, message) = (FALSE, 'RecordServer::isProgAFavorite: cannot 
acquire lock')
         self.lock.acquire()
         try:
             prog = unjellyFromXML(prog)
             if favs:
                 favs = unjellyFromXML(favs)
             (status, response) = self.isProgAFavorite(prog, favs)
-            message = 'RecordServer::adjustPriority: %s' % response
+            message = 'RecordServer::isProgAFavorite: %s' % response
         finally:
             self.lock.release()
         return (status, message)

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 Aug 21 13:49:55 2007
@@ -204,7 +204,6 @@
     except:
         return (FALSE, 'record_client: '+_('connection error'))
 
-
     return returnFromJelly(status, response)
 
 
@@ -214,6 +213,14 @@
     except:
         return (FALSE, 'record_client: '+_('connection error'))
 
+    return returnFromJelly(status, response)
+
+
+def getFavoriteObject(prog, favs=None):
+    try:
+        (status, response) = server.getFavoriteObject(jellyToXML(prog), 
jellyToXML(favs))
+    except:
+        return (FALSE, 'record_client: '+_('connection error'))
 
     return returnFromJelly(status, response)
 
@@ -227,7 +234,7 @@
     return (status, message)
 
 
-def isProgAFavorite(prog, favs):
+def isProgAFavorite(prog, favs=None):
     try:
         (status, message) = server.isProgAFavorite(jellyToXML(prog), 
jellyToXML(favs))
     except:

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to