diff --git a/headphones/searcher.py b/headphones/searcher.py index 5cc3a8d8..aa5e39a8 100644 --- a/headphones/searcher.py +++ b/headphones/searcher.py @@ -243,67 +243,54 @@ def searchNZB(albumid=None, new=False, losslessOnly=False): if headphones.NZBSORG: provider = "nzbsorg" if headphones.PREFERRED_QUALITY == 3 or losslessOnly: - categories = "31" + categories = "3040" maxsize = 10000000000 elif headphones.PREFERRED_QUALITY: - categories = "5" + categories = "3040,3010" maxsize = 2000000000 else: - categories = "5" + categories = "3010" maxsize = 300000000 - params = { "action": "search", - "dl": 1, - "catid": categories, - "i": headphones.NZBSORG_UID, - "h": headphones.NZBSORG_HASH, - "age": headphones.USENET_RETENTION, + params = { "t": "search", + "apikey": headphones.NZBSORG_APIKEY, + "cat": categories, + "maxage": headphones.USENET_RETENTION, "q": term } - searchURL = 'https://secure.nzbs.org/rss.php?' + urllib.urlencode(params) - logger.info(u'Parsing results from %s' % (searchURL, provider)) + searchURL = 'http://beta.nzbs.org/api?' + urllib.urlencode(params) + + logger.info(u'Parsing results from nzbs.org' % searchURL) try: data = urllib2.urlopen(searchURL, timeout=20).read() except urllib2.URLError, e: - logger.warn('Error fetching data from NZBs.org: %s' % e) + logger.warn('Error fetching data from nzbs.org: %s' % e) data = False - items = False if data: - try: - d = minidom.parseString(data) - node = d.documentElement - items = d.getElementsByTagName("item") - except ExpatError: - logger.error('Unable to get the NZBs.org feed. Check that your settings are correct - post a bug if they are') - items = None - - if items: - - for item in items: - - sizenode = item.getElementsByTagName("report:size")[0].childNodes - titlenode = item.getElementsByTagName("title")[0].childNodes - linknode = item.getElementsByTagName("link")[0].childNodes - - for node in sizenode: - size = int(node.data) - for node in titlenode: - title = node.data - for node in linknode: - url = node.data - - if size < maxsize: - resultlist.append((title, size, url, provider)) - logger.info('Found %s. Size: %s' % (title, helpers.bytes_to_mb(size))) - else: - logger.info('%s is larger than the maxsize for this category, skipping. (Size: %i bytes)' % (title, size)) - - else: - - logger.info('No results found from NZBs.org for %s' % term) + + d = feedparser.parse(data) + + if not len(d.entries): + logger.info(u"No results found from nzbs.org for %s" % term) + pass + + else: + for item in d.entries: + try: + url = item.link + title = item.title + size = int(item.links[1]['length']) + if size < maxsize: + resultlist.append((title, size, url, provider)) + logger.info('Found %s. Size: %s' % (title, helpers.bytes_to_mb(size))) + else: + logger.info('%s is larger than the maxsize for this category, skipping. (Size: %i bytes)' % (title, size)) + + except Exception, e: + logger.error(u"An unknown error occured trying to parse the feed: %s" % e) if headphones.NEWZBIN: provider = "newzbin"