- def __save_url_into_file (self, url, filename):
- image = self.__get_url (url)
- output_image = open (filename, 'w')
- output_image.write (image)
- output_image.close ()
- print "Saved %s -> %s " % (url, filename)
+ def __msn_images (self, artist, album):
+
+ good_artist = self.__clean_string_for_search (artist)
+ good_album = self.__clean_string_for_search (album)
+
+ print good_artist
+ if (good_album and good_artist):
+ full_try = BASE_MSN + good_album + "+" + good_artist + MSN_MEDIUM + MSN_SQUARE
+ print "Retrieving (album + artist): %s" % (full_try)
+ result = self.__get_url (full_try)
+ if (result):
+ return self.__get_first_url_from_msn_results_page (result)
+
+ if (album):
+ if (album.lower ().find ("greatest hit") != -1):
+ print "Ignoring '%s': too generic" % (album)
+ pass
+ else:
+ album_try = BASE_MSN + good_album + MSN_MEDIUM + MSN_SQUARE
+ print "Retrieving (album): %s" % (album_try)
+ result = self.__get_url (album_try)
+ if (result):
+ return self.__get_first_url_from_msn_results_page (result)
+
+ if (artist):
+ artist_try = BASE_MSN + good_artist + "+CD+music" + MSN_SMALL + MSN_SQUARE + MSN_PHOTO
+ print "Retrieving (artist CD): %s" % (artist_try)
+ result = self.__get_url (artist_try)
+ if (result):
+ return self.__get_first_url_from_msn_results_page (result)
+
+ return None
+
+
+ def __get_first_url_from_msn_results_page (self, page):
+ start = page.find ("furl=")
+ if (start == -1):
+ return None
+ end = page.find ("\"", start + len ("furl="))
+ return page [start + len ("furl="): end].replace ("amp;", "")
+
+ def __clean_string_for_search (self, text):
+ if (not text or len (text) < 1):
+ return None
+
+ bad_stuff = "_:?\\-~"
+ clean = text
+ for c in bad_stuff:
+ clean = clean.replace (c, " ")
+
+ clean.replace ("/", "%2F")
+ clean = clean.replace (" CD1", "").replace(" CD2", "")
+ return urllib.quote(clean)
+
+ def __save_content_into_file (self, content, filename):
+ output = open (filename, 'w')
+ output.write (content)
+ output.close ()