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