diff --git a/headphones/searcher.py b/headphones/searcher.py index 98261cb4..5c48b816 100644 --- a/headphones/searcher.py +++ b/headphones/searcher.py @@ -822,39 +822,47 @@ def searchTorrent(albumid=None, new=False, losslessOnly=False): if headphones.RUTRACKER and rulogin: provider = "rutracker.org" - bitrate = False - if headphones.PREFERRED_QUALITY == 3 or losslessOnly: - format = 'lossless' - maxsize = 10000000000 - elif headphones.PREFERRED_QUALITY == 1: - format = 'lossless+mp3' - maxsize = 10000000000 + # Ignore if release date not specified, results too unpredictable + + if not year: + logger.info(u'Release date not specified, ignoring for rutracker.org') else: - format = 'mp3' - maxsize = 300000000 - if headphones.PREFERRED_QUALITY == 2 and headphones.PREFERRED_BITRATE: - bitrate = True + + bitrate = False + + if headphones.PREFERRED_QUALITY == 3 or losslessOnly: + format = 'lossless' + maxsize = 10000000000 + elif headphones.PREFERRED_QUALITY == 1: + format = 'lossless+mp3' + maxsize = 10000000000 + else: + format = 'mp3' + maxsize = 300000000 + if headphones.PREFERRED_QUALITY == 2 and headphones.PREFERRED_BITRATE: + bitrate = True - # build search url based on above + # build search url based on above - searchURL = rutracker.searchurl(artistterm, albumterm, year, format) - logger.info(u'Parsing results from rutracker.org' % searchURL) + searchURL = rutracker.searchurl(artistterm, albumterm, year, format) + logger.info(u'Parsing results from rutracker.org' % searchURL) - # parse results and get best match - rulist = rutracker.search(searchURL, maxsize, minimumseeders, albumid, bitrate) + # parse results and get best match - # add best match to overall results list + rulist = rutracker.search(searchURL, maxsize, minimumseeders, albumid, bitrate) - if rulist: - for ru in rulist: - title = ru[0].decode('utf-8') - size = ru[1] - url = ru[2] - resultlist.append((title, size, url, provider)) - logger.info('Found %s. Size: %s' % (title, helpers.bytes_to_mb(size))) - else: - logger.info(u"No valid results found from %s" % (provider)) + # add best match to overall results list + + if rulist: + for ru in rulist: + title = ru[0].decode('utf-8') + size = ru[1] + url = ru[2] + resultlist.append((title, size, url, provider)) + logger.info('Found %s. Size: %s' % (title, helpers.bytes_to_mb(size))) + else: + logger.info(u"No valid results found from %s" % (provider)) if headphones.ISOHUNT: diff --git a/headphones/searcher_rutracker.py b/headphones/searcher_rutracker.py index b730038e..8bde0d1a 100644 --- a/headphones/searcher_rutracker.py +++ b/headphones/searcher_rutracker.py @@ -161,15 +161,16 @@ class Rutracker(): for torrent in torrentlist: - title = torrent[0].encode('utf-8') + returntitle = torrent[0].encode('utf-8') url = torrent[1] seeders = torrent[2] size = torrent[3] # Attempt to filter out unwanted - if 'Promo' not in title and 'promo' not in title and 'Vinyl' not in title and 'vinyl' not in title \ - and 'ongbook' not in title and 'TVRip' not in title and 'HDTV' not in title and 'DVD' not in title \ + title = returntitle.lower() + + if 'promo' not in title and 'vinyl' not in title and 'songbook' not in title and 'tvrip' not in title and 'hdtv' not in title and 'dvd' not in title \ and int(size) <= maxsize and int(seeders) >= minseeders: # Check torrent info @@ -251,13 +252,13 @@ class Rutracker(): if trackcount == hptrackcount: valid = True elif trackcount > hptrackcount: - if 'eluxe' in title or 'dition' in title or 'apanese' in title or 'elease' in title: + if 'deluxe' in title or 'edition' in title or 'japanese' in title: valid = True # return 1st valid torrent if not checking by bitrate, else add to list and return at end if valid: - rulist.append((title, size, topicurl)) + rulist.append((returntitle, size, topicurl)) if not bitrate: return rulist