def fetch_bigger_poster(self): match = 0 self.debug.show("fetching poster from amazon") movie = self.db.Movie.get_by(movie_id=self._movie_id) if movie is None: gutils.error(self,_("You have no movies in your database"), self.widgets['window']) return False current_poster = movie.image amazon.setLicense("04GDDMMXX8X9CJ1B22G2") locale = self.config.get('amazon_locale', 0, section='add') keyword = self.widgets['movie']['o_title'].get_text().decode('utf-8') if locale == '1': locale = 'uk' elif locale == '2': locale = 'de' keyword = self.widgets['movie']['title'].get_text().decode('utf-8') elif locale == '3': locale = 'ca' elif locale == '4': locale = 'fr' elif locale == '5': locale = 'jp' else: locale = None try: result = amazon.searchByKeyword(keyword, type="Large", product_line="DVD", locale=locale) self.debug.show("Posters found on amazon: %s posters" % result.TotalResults) except: gutils.warning(self, _("No posters found for this movie.")) return from widgets import connect_poster_signals, reconnect_add_signals connect_poster_signals(self, get_poster_select_dc, result, current_poster) if not len(result.Item): gutils.warning(self, _("No posters found for this movie.")) reconnect_add_signals(self) return for f in range(len(result.Item)): if self.widgets['movie']['o_title'].get_text().decode('utf-8') == result.Item[f].ItemAttributes.Title: get_poster(self, f, result, current_poster) return self.treemodel_results.clear() self.widgets['add']['b_get_from_web'].set_sensitive(False) # disable movie plugins (result window is shared) for f in range(len(result.Item)): if hasattr(result.Item[f], "LargeImage") and len(result.Item[f].LargeImage.URL): title = result.Item[f].ItemAttributes.Title myiter = self.treemodel_results.insert_before(None, None) self.treemodel_results.set_value(myiter, 0, str(f)) self.treemodel_results.set_value(myiter, 1, title) self.widgets['results']['window'].show() self.widgets['results']['window'].set_keep_above(True)
def fetch_bigger_poster(self): match = 0 self.debug.show("fetching poster from amazon") movie = self.db.Movie.get_by(movie_id=self._movie_id) if movie is None: gutils.error(self, _("You have no movies in your database"), self.widgets["window"]) return False current_poster = movie.image amazon.setLicense("04GDDMMXX8X9CJ1B22G2") locale = self.config.get("amazon_locale", 0) if locale == 1: locale = "uk" elif locale == 2: locale = "de" elif locale == 3: locale = "uk" else: locale = None try: result = amazon.searchByKeyword( self.widgets["movie"]["o_title"].get_text(), type="lite", product_line="dvd", locale=locale ) self.debug.show("Posters found on amazon: %s posters" % len(result)) except: gutils.warning(self, _("No posters found for this movie.")) return from widgets import connect_poster_signals, reconnect_add_signals connect_poster_signals(self, get_poster_select_dc, result, current_poster) if not len(result): gutils.warning(self, _("No posters found for this movie.")) reconnect_add_signals(self) return for f in range(len(result)): if self.widgets["movie"]["o_title"].get_text() == result[f].ProductName: get_poster(self, f, result, current_poster) return self.treemodel_results.clear() self.widgets["add"]["b_get_from_web"].set_sensitive(False) # disable movie plugins (result window is shared) for f in range(len(result)): if len(result[f].ImageUrlLarge): title = result[f].ProductName myiter = self.treemodel_results.insert_before(None, None) self.treemodel_results.set_value(myiter, 0, str(f)) self.treemodel_results.set_value(myiter, 1, title) self.widgets["results"]["window"].show() self.widgets["results"]["window"].set_keep_above(True)
def fetch_bigger_poster(self): match = 0 self.debug.show("fetching poster from amazon") this_movie = self.db.select_movie_by_num(self.e_number.get_text()) current_poster = this_movie[0]['image'] amazon.setLicense("04GDDMMXX8X9CJ1B22G2") try: result = amazon.searchByKeyword(self.e_original_title.get_text(), \ type="lite", product_line="dvd") self.debug.show("Posters found on amazon: %s posters" % len(result)) except: gutils.warning(self, _("No posters found for this movie.")) return widgets.connect_poster_signals(self, get_poster_select_dc, result, current_poster) if not len(result): gutils.warning(self, _("No posters found for this movie.")) return for f in range(len(result)): if self.e_original_title.get_text() == result[f].ProductName: get_poster(self, f, result, current_poster) return self.treemodel_results.clear() for f in range(len(result)): if (len(result[f].ImageUrlLarge)): title = result[f].ProductName self.debug.show(title) myiter = self.treemodel_results.insert_before(None, None) self.treemodel_results.set_value(myiter, 0, str(f)) self.treemodel_results.set_value(myiter, 1, title) self.w_results.show() self.w_results.set_keep_above(True)
def fetch_bigger_poster(self): match = 0 log.info("fetching poster from amazon...") movie = self.db.session.query(db.Movie).filter_by(movie_id=self._movie_id).first() if movie is None: gutils.error(self,_("You have no movies in your database"), self.widgets['window']) return False current_poster_md5 = movie.poster_md5 if current_poster_md5: current_poster = gutils.get_image_fname(current_poster_md5, self.db) else: current_poster = None amazon.setLicense("04GDDMMXX8X9CJ1B22G2") locale = self.config.get('amazon_locale', 0, section='add') keyword = self.widgets['movie']['o_title'].get_text() if locale == '1': locale = 'uk' elif locale == '2': locale = 'de' keyword = self.widgets['movie']['title'].get_text() elif locale == '3': locale = 'ca' elif locale == '4': locale = 'fr' elif locale == '5': locale = 'jp' else: locale = None try: result = amazon.searchByTitle(keyword, type="Large", product_line="DVD", locale=locale) if hasattr(result, 'TotalPages'): # get next result pages pages = int(result.TotalPages) page = 2 while page <= pages and page < 11: tmp = amazon.searchByTitle(keyword, type='Large', product_line='DVD', locale=locale, page=page) result.Item.extend(tmp.Item) page = page + 1 if not hasattr(result, 'Item') or not len(result.Item): # fallback if nothing is found by title result = amazon.searchByKeyword(keyword, type="Large", product_line="DVD", locale=locale) if hasattr(result, 'TotalPages'): # get next result pages pages = int(result.TotalPages) page = 2 while page <= pages and page < 11: tmp = amazon.searchByKeyword(keyword, type='Large', product_line='DVD', locale=locale, page=page) result.Item.extend(tmp.Item) page = page + 1 log.info("... %s posters found" % result.TotalResults) except: gutils.warning(_("No posters found for this movie.")) return from widgets import connect_poster_signals, reconnect_add_signals connect_poster_signals(self, get_poster_select_dc, result, current_poster) if not hasattr(result, 'Item') or not len(result.Item): gutils.warning(_("No posters found for this movie.")) reconnect_add_signals(self) return if len(result.Item) == 1: o_title = self.widgets['movie']['o_title'].get_text().decode('utf-8') if o_title == result.Item[0].ItemAttributes.Title or keyword == result.Item[0].ItemAttributes.Title: get_poster(self, 0, result) return self.treemodel_results.clear() self.widgets['add']['b_get_from_web'].set_sensitive(False) # disable movie plugins (result window is shared) for f in range(len(result.Item)): if hasattr(result.Item[f], "LargeImage") and len(result.Item[f].LargeImage.URL): title = result.Item[f].ItemAttributes.Title if hasattr(result.Item[f].ItemAttributes, 'ProductGroup'): title = title + u' - ' + result.Item[f].ItemAttributes.ProductGroup elif hasattr(result.Item[f].ItemAttributes, 'Binding'): title = title + u' - ' + result.Item[f].ItemAttributes.Binding if hasattr(result.Item[f].ItemAttributes, 'ReleaseDate'): title = title + u' - ' + result.Item[f].ItemAttributes.ReleaseDate[:4] elif hasattr(result.Item[f].ItemAttributes, 'TheatricalReleaseDate'): result.Item[f].ItemAttributes.TheatricalReleaseDate[:4] if hasattr(result.Item[f].ItemAttributes, 'Studio'): title = title + u' - ' + result.Item[f].ItemAttributes.Studio myiter = self.treemodel_results.insert_before(None, None) self.treemodel_results.set_value(myiter, 0, str(f)) self.treemodel_results.set_value(myiter, 1, title) self.widgets['results']['window'].show() self.widgets['results']['window'].set_keep_above(True)
def fetch_bigger_poster(self): match = 0 log.info("fetching poster from amazon...") movie = self.db.session.query(db.Movie).filter_by(movie_id=self._movie_id).first() if movie is None: gutils.error(self, _("You have no movies in your database"), self.widgets["window"]) return False current_poster_md5 = movie.poster_md5 if current_poster_md5: current_poster = gutils.get_image_fname(current_poster_md5, self.db) else: current_poster = None amazon.setLicense("04GDDMMXX8X9CJ1B22G2") locale = self.config.get("amazon_locale", 0, section="add") keyword = self.widgets["movie"]["o_title"].get_text() if locale == "1": locale = "uk" elif locale == "2": locale = "de" keyword = self.widgets["movie"]["title"].get_text() elif locale == "3": locale = "ca" elif locale == "4": locale = "fr" elif locale == "5": locale = "jp" else: locale = None try: result = amazon.searchByTitle(keyword, type="Large", product_line="DVD", locale=locale) if hasattr(result, "TotalPages"): # get next result pages pages = int(result.TotalPages) page = 2 while page <= pages and page < 11: tmp = amazon.searchByTitle(keyword, type="Large", product_line="DVD", locale=locale, page=page) result.Item.extend(tmp.Item) page = page + 1 if not hasattr(result, "Item") or not len(result.Item): # fallback if nothing is found by title result = amazon.searchByKeyword(keyword, type="Large", product_line="DVD", locale=locale) if hasattr(result, "TotalPages"): # get next result pages pages = int(result.TotalPages) page = 2 while page <= pages and page < 11: tmp = amazon.searchByKeyword(keyword, type="Large", product_line="DVD", locale=locale, page=page) result.Item.extend(tmp.Item) page = page + 1 log.info("... %s posters found" % result.TotalResults) except: gutils.warning(_("No posters found for this movie.")) return from widgets import connect_poster_signals, reconnect_add_signals connect_poster_signals(self, get_poster_select_dc, result, current_poster) if not hasattr(result, "Item") or not len(result.Item): gutils.warning(_("No posters found for this movie.")) reconnect_add_signals(self) return if len(result.Item) == 1: o_title = self.widgets["movie"]["o_title"].get_text().decode("utf-8") if o_title == result.Item[0].ItemAttributes.Title or keyword == result.Item[0].ItemAttributes.Title: get_poster(self, 0, result) return self.treemodel_results.clear() self.widgets["add"]["b_get_from_web"].set_sensitive(False) # disable movie plugins (result window is shared) for f in range(len(result.Item)): if hasattr(result.Item[f], "LargeImage") and len(result.Item[f].LargeImage.URL): title = result.Item[f].ItemAttributes.Title if hasattr(result.Item[f].ItemAttributes, "ProductGroup"): title = title + u" - " + result.Item[f].ItemAttributes.ProductGroup elif hasattr(result.Item[f].ItemAttributes, "Binding"): title = title + u" - " + result.Item[f].ItemAttributes.Binding if hasattr(result.Item[f].ItemAttributes, "ReleaseDate"): title = title + u" - " + result.Item[f].ItemAttributes.ReleaseDate[:4] elif hasattr(result.Item[f].ItemAttributes, "TheatricalReleaseDate"): result.Item[f].ItemAttributes.TheatricalReleaseDate[:4] if hasattr(result.Item[f].ItemAttributes, "Studio"): title = title + u" - " + result.Item[f].ItemAttributes.Studio myiter = self.treemodel_results.insert_before(None, None) self.treemodel_results.set_value(myiter, 0, str(f)) self.treemodel_results.set_value(myiter, 1, title) self.widgets["results"]["window"].show() self.widgets["results"]["window"].set_keep_above(True)