From 7729eb4e580ca0c9240420c536cc9b49123bc729 Mon Sep 17 00:00:00 2001 From: Ivan Frade Date: Fri, 22 Jan 2010 00:26:08 +0200 Subject: [PATCH] Custom text to search album art (ugly UI) --- src/aa_selection_dialog.py | 46 ++++++++++++++++++++++++++++++++++++++++---- src/album_art_thread.py | 14 +++++++++++++- 2 files changed, 55 insertions(+), 5 deletions(-) diff --git a/src/aa_selection_dialog.py b/src/aa_selection_dialog.py index 357d8ee..704b67e 100644 --- a/src/aa_selection_dialog.py +++ b/src/aa_selection_dialog.py @@ -88,13 +88,32 @@ class AlbumArtSelectionDialog (gtk.Dialog): self.images.append (image) hbox.pack_start (image, expand=False, fill=True) - self.vbox.add (hbox) + self.vbox.pack_start (hbox) + + label = gtk.Label ("Search:") + entry = hildon.Entry (gtk.HILDON_SIZE_FINGER_HEIGHT) + entry.set_text (self.artist + " " + self.album) + entry.grab_focus () + button = hildon.Button (gtk.HILDON_SIZE_FINGER_HEIGHT, + hildon.BUTTON_ARRANGEMENT_HORIZONTAL) + button.set_text ("Go", "") + button.connect ("clicked", self.user_text_search_cb, entry) + self.hbox_research = gtk.HBox (homogeneous=False) + self.hbox_research.pack_start (label, expand=False) + self.hbox_research.pack_start (entry) + self.hbox_research.pack_start (button, expand=False) + self.hbox_research.set_sensitive (False) + self.vbox.pack_start (self.hbox_research) def __get_alternatives_async (self): + results = self.downloader.get_alternatives (self.album, + self.artist, + self.size) + self.__show_results (results) + + def __show_results (self, generator): counter = 0 - for (path, thumb) in self.downloader.get_alternatives (self.album, - self.artist, - self.size): + for (path, thumb) in generator: print path, thumb if (self.cancel): return False @@ -112,7 +131,22 @@ class AlbumArtSelectionDialog (gtk.Dialog): counter += 1 hildon.hildon_gtk_window_set_progress_indicator (self, 0) + self.hbox_research.set_sensitive (True) + + def user_text_search_cb (self, w, entry): + user_text = entry.get_text () + if user_text and len (user_text) > 0: + for ev in self.images[:-1]: + ev.set_sensitive (False) + #ev.set_default_image () + while (gtk.events_pending()): + gtk.main_iteration() + hildon.hildon_gtk_window_set_progress_indicator (self, 1) + results = self.downloader.get_alternatives_free_text (user_text, + self.size) + self.__show_results (results) + def click_on_img (self, image, event): if (image.is_remove_option ()): @@ -149,6 +183,10 @@ if __name__ == "__main__": for a in self.alt: time.sleep (1) yield a + def get_alternatives_free_text (self, user_text, amount=4): + for a in [("free%d" % i, "thumb%d" %i) for i in range (0, amount)]: + time.sleep (1) + yield a def save_alternative (self, artist, album, img, thumb): return ("/home/user/.cache/media-art/" + img, "/home/user/.thumbnails/normal/" + thumb) def reset_alternative (self, artist, album): diff --git a/src/album_art_thread.py b/src/album_art_thread.py index 2b2dc25..72dbc7a 100755 --- a/src/album_art_thread.py +++ b/src/album_art_thread.py @@ -113,8 +113,15 @@ class MussorgskyAlbumArt: """ return a list of paths of possible album arts """ - counter = 0 results_page = self.__msn_images (artist, album) + return self.__process_results_page (results_page, max_alternatives) + + def get_alternatives_free_text (self, search_text, max_alternatives=4): + results_page = self.__msn_images_free_text (search_text) + return self.__process_results_page (results_page, max_alternatives) + + def __process_results_page (self, results_page, max_alternatives): + counter = 0 threads = [] for image_url in self.__get_url_from_msn_results_page (results_page): if (not image_url): @@ -189,6 +196,11 @@ class MussorgskyAlbumArt: return None + def __msn_images_free_text (self, search_text): + full_try = BASE_MSN + self.__clean_string_for_search (search_text) + MSN_MEDIUM + MSN_SQUARE + result = self.urllib_wrapper.get_url (full_try) + return result + def __get_url_from_msn_results_page (self, page): -- 1.7.9.5