Ok, first the diff against trunk === modified file 'entertainerlib/backend/components/mediacache/video_metadata_search.py' --- entertainerlib/backend/components/mediacache/video_metadata_search.py 2008-12-07 20:41:05 +0000 +++ entertainerlib/backend/components/mediacache/video_metadata_search.py 2009-02-07 20:06:05 +0000 @@ -23,14 +23,12 @@ """ # Title split keywords - __TITLE_SPLIT_KEYWORDS = [ - "[", "]", "~", "(", ")", "dvdscr", "dvdrip", "dvd-rip", "dvdr", "vcd", - "divx", "xvid", "ac3", "r5", "pal", "readnfo", "uncut", "cd1", "cd2", - "dvdiso" - ] + _TITLE_SPLIT_KEYWORDS = ["[", "]", "~", "(", ")", "dvdscr", "dvdrip", + "dvd-rip", "dvdr", "vcd", "divx", "xvid", "readnfo", "cd1", "cd2", + "dvdiso"] # Title strip items - __TITLE_STRIP_SEARCH = [".", "-", "_"] + _TITLE_STRIP_SEARCH = [".", "-", "_"] def __init__(self, filename): """ @@ -75,11 +73,11 @@ filename = os.path.splitext(filename)[0] # strip ., - and _ from filename - for item in self.__TITLE_STRIP_SEARCH: + for item in self._TITLE_STRIP_SEARCH: filename = filename.replace(item, ' ') # split title at keywords - for item in self.__TITLE_SPLIT_KEYWORDS: + for item in self._TITLE_SPLIT_KEYWORDS: filename = filename.split('%s' % item)[0] filename = filename.strip() @@ -107,7 +105,6 @@ except: self.logger.error("IMDB search failed") return # Network error or too many results to handle - if len(search_results) == 0: return # No matches for this search @@ -122,11 +119,16 @@ return video_type = "MOVIE" + try: title = movie['title'] year = movie['year'] - # convert to 5-stars rating - rating = round(float(movie['rating']) / 2) + + # convert to 5-star ratings if available + try: + rating = round(float(movie['rating']) / 2) + except KeyError: + rating = 0 genres = ','.join(movie['genres']) try: @@ -199,7 +201,7 @@ try: title = series['episodes'][self.season][self.episode]['title'] except: - title = _("%(episode)d. Episode") % {'episode': self.episode} + title = _(" Episode %(episode)d") % {'episode': self.episode} try: plot = series['episodes'][self.season][self.episode]['plot'] except: === modified file 'entertainerlib/frontend/gui/screens/movie.py' --- entertainerlib/frontend/gui/screens/movie.py 2009-02-03 23:37:57 +0000 +++ entertainerlib/frontend/gui/screens/movie.py 2009-02-07 15:18:47 +0000 @@ -212,7 +212,7 @@ if self.menu.is_active(): item = self.menu.get_current_menuitem().get_userdata() if item == "watch": - self.mediaplayer.set_media(self.movie) - self.mediaplayer.play() + self.media_player.set_media(self.movie) + self.media_player.play() self.callback("video_osd") === modified file 'entertainerlib/frontend/gui/screens/tv_episodes.py' --- entertainerlib/frontend/gui/screens/tv_episodes.py 2009-02-03 23:37:57 +0000 +++ entertainerlib/frontend/gui/screens/tv_episodes.py 2009-02-07 15:15:25 +0000 @@ -199,7 +199,7 @@ self.scroll_area.scroll_page_down() elif event_type == UserEvent.NAVIGATE_SELECT: episode = self.episode_menu.get_current_menuitem().get_userdata() - self.mediaplayer.set_media(episode) - self.mediaplayer.play() + self.media_player.set_media(episode) + self.media_player.play() self.callback("video_osd") This branch fixes three small things:- metadata searching for movies failed because ratings aren't being downloaded from imdb anymore. - When a tv-show episode didn't have a title the title was '1. 1. Episode', now it's '1. Episode 1' - Videos weren't playing because of a typing error: mediaplayer instead of media_player I fixed the double underscore, the trailing whitespace, 5 star ratings and the exception catching. There is already a test for all of this: test_videometadatasearch.py