diff options
author | jerous <jerous@gmail.com> | 2008-09-17 01:38:04 +0200 |
---|---|---|
committer | jerous <jerous@gmail.com> | 2008-09-17 01:38:04 +0200 |
commit | 72dde1aedfdc5d863843a209926a5f67d44e39da (patch) | |
tree | 0967f007960c1749c5b3f87b2afbe0fe685f9ec1 /plugins | |
parent | 5bc59c518834fcb99d582a439d4f15824708eaa6 (diff) |
AlbumCover: tabbing ...
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/AlbumCover.py | 103 |
1 files changed, 46 insertions, 57 deletions
diff --git a/plugins/AlbumCover.py b/plugins/AlbumCover.py index fa689a0..b85c8e7 100644 --- a/plugins/AlbumCover.py +++ b/plugins/AlbumCover.py @@ -219,64 +219,53 @@ import urllib AMAZON_AWS_ID = "0K4RZZKHSB5N2XYJWF02" class AmazonAlbumImage(object): - awsurl = "http://ecs.amazonaws.com/onca/xml" - def __init__(self, artist, album): - self.artist = artist - self.album = album - - def fetch(self): - url = self._GetResultURL(self._SearchAmazon()) - if not url: - return None - img_re = re.compile(r'''registerImage\("original_image", "([^"]+)"''') - try: - prod_data = urllib.urlopen(url).read() - except: - log.important("AlbumCover: timeout opening %s"%(url)) - return None - m = img_re.search(prod_data) - if not m: - return None - img_url = m.group(1) - return img_url - - def _SearchAmazon(self): - data = { - "Service": "AWSECommerceService", - "Version": "2005-03-23", - "Operation": "ItemSearch", - "ContentType": "text/xml", - "SubscriptionId": AMAZON_AWS_ID, - "SearchIndex": "Music", - "ResponseGroup": "Small", - } - - data["Artist"] = self.artist - data["Keywords"] = self.album - - try: - fd = urllib.urlopen("%s?%s" % (self.awsurl, urllib.urlencode(data))) - return fd.read() - except: - # this is very probable a timeout exception - log.important("AlbumCover: timeout openening %s"%(self.awsurl)) - return None - + awsurl = "http://ecs.amazonaws.com/onca/xml" + def __init__(self, artist, album): + self.artist = artist + self.album = album + + def fetch(self): + url = self._GetResultURL(self._SearchAmazon()) + if not url: + return None + img_re = re.compile(r'''registerImage\("original_image", "([^"]+)"''') + try: + prod_data = urllib.urlopen(url).read() + except: + log.important("AlbumCover: timeout opening %s"%(url)) + return None + m = img_re.search(prod_data) + if not m: + return None + img_url = m.group(1) + return img_url - def _GetResultURL(self, xmldata): - if not xmldata: + def _SearchAmazon(self): + data = { + "Service": "AWSECommerceService", + "Version": "2005-03-23", + "Operation": "ItemSearch", + "ContentType": "text/xml", + "SubscriptionId": AMAZON_AWS_ID, + "SearchIndex": "Music", + "ResponseGroup": "Small", + } + + data["Artist"] = self.artist + data["Keywords"] = self.album + + try: + fd = urllib.urlopen("%s?%s" % (self.awsurl, urllib.urlencode(data))) + return fd.read() + except: + # this is very probable a timeout exception + log.important("AlbumCover: timeout openening %s"%(self.awsurl)) return None - url_re = re.compile(r"<DetailPageURL>([^<]+)</DetailPageURL>") - m = url_re.search(xmldata) - return m and m.group(1) - -if __name__ == "__main__": - import sys - if len(sys.argv) < 3: - print "usage: %s <artist> <album>" % argv[0] - sys.exit(1) - artist = sys.argv[1] - album = sys.argv[2] - print AmazonAlbumImage(artist, album).fetch() + def _GetResultURL(self, xmldata): + if not xmldata: + return None + url_re = re.compile(r"<DetailPageURL>([^<]+)</DetailPageURL>") + m = url_re.search(xmldata) + return m and m.group(1) |