def searchNZB(albumid=None, new=False): myDB = db.DBConnection() if albumid: results = myDB.select('SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE Status="Wanted" AND AlbumID=?', [albumid]) else: results = myDB.select('SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE Status="Wanted"') new = True for albums in results: albumid = albums[2] reldate = albums[3] try: year = reldate[:4] except TypeError: year = '' dic = {'...':'', ' & ':' ', ' = ': ' ', '?':'', '$':'s', ' + ':' ', '"':'', ',':''} cleanartistalbum = helpers.latinToAscii(helpers.replace_all(albums[0]+' '+albums[1], dic)) # FLAC usually doesn't have a year for some reason so I'll leave it out: term = re.sub('[\.\-\/]', ' ', '%s' % (cleanartistalbum)).encode('utf-8') altterm = re.sub('[\.\-\/]', ' ', '%s %s' % (cleanartistalbum, year)).encode('utf-8') # Only use the year if the term could return a bunch of different albums, i.e. self-titled albums if albums[0] in albums[1] or len(albums[0]) < 4 or len(albums[1]) < 4: term = altterm logger.info("Searching for %s since it was marked as wanted" % term) resultlist = [] if headphones.NZBMATRIX: provider = "nzbmatrix" if headphones.PREFERRED_QUALITY == 3: categories = "23" maxsize = 10000000000 elif headphones.PREFERRED_QUALITY: categories = "23,22" maxsize = 2000000000 else: categories = "22" maxsize = 300000000 params = { "page": "download", "username": headphones.NZBMATRIX_USERNAME, "apikey": headphones.NZBMATRIX_APIKEY, "subcat": categories, "age": headphones.USENET_RETENTION, "english": 1, "ssl": 1, "scenename": 1, "term": term } searchURL = "http://rss.nzbmatrix.com/rss.php?" + urllib.urlencode(params) logger.info(u"Parsing results from "+searchURL) try: data = urllib2.urlopen(searchURL, timeout=20).read() except urllib2.URLError, e: logger.warn('Error fetching data from NZBMatrix: %s' % e) data = False if data: d = feedparser.parse(data) 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 AttributeError, e: logger.info(u"No results found from NZBMatrix for %s" % term)
def searchNZB(albumid=None, new=False, losslessOnly=False): myDB = db.DBConnection() if albumid: results = myDB.select('SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE AlbumID=?', [albumid]) else: results = myDB.select('SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE Status="Wanted" OR Status="Wanted Lossless"') new = True for albums in results: albumid = albums[2] reldate = albums[3] try: year = reldate[:4] except TypeError: year = '' dic = {'...':'', ' & ':' ', ' = ': ' ', '?':'', '$':'s', ' + ':' ', '"':'', ',':'', '*':'', '.':'', ':':''} cleanalbum = helpers.latinToAscii(helpers.replace_all(albums[1], dic)) cleanartist = helpers.latinToAscii(helpers.replace_all(albums[0], dic)) # FLAC usually doesn't have a year for some reason so I'll leave it out # Various Artist albums might be listed as VA, so I'll leave that out too # Only use the year if the term could return a bunch of different albums, i.e. self-titled albums if albums[0] in albums[1] or len(albums[0]) < 4 or len(albums[1]) < 4: term = cleanartist + ' ' + cleanalbum + ' ' + year elif albums[0] == 'Various Artists': term = cleanalbum + ' ' + year else: term = cleanartist + ' ' + cleanalbum # Replace bad characters in the term and unicode it term = re.sub('[\.\-\/]', ' ', term).encode('utf-8') artistterm = re.sub('[\.\-\/]', ' ', cleanartist).encode('utf-8') logger.info("Searching for %s since it was marked as wanted" % term) resultlist = [] if headphones.NZBMATRIX: provider = "nzbmatrix" if headphones.PREFERRED_QUALITY == 3 or losslessOnly: categories = "23" maxsize = 10000000000 elif headphones.PREFERRED_QUALITY: categories = "23,22" maxsize = 2000000000 else: categories = "22" maxsize = 300000000 # For some reason NZBMatrix is erroring out/timing out when the term starts with a "The" right now # so we'll strip it out for the time being. This may get fixed on their end, it may not, but # hopefully this will fix it for now. If you notice anything else it gets stuck on, please post it # on Github so it can be added if term.lower().startswith("the "): term = term[4:] params = { "page": "download", "username": headphones.NZBMATRIX_USERNAME, "apikey": headphones.NZBMATRIX_APIKEY, "subcat": categories, "maxage": headphones.USENET_RETENTION, "english": 1, "ssl": 1, "scenename": 1, "term": term } searchURL = "http://rss.nzbmatrix.com/rss.php?" + urllib.urlencode(params) logger.info(u'Parsing results from <a href="%s">NZBMatrix</a>' % searchURL) try: data = urllib2.urlopen(searchURL, timeout=20).read() except urllib2.URLError, e: logger.warn('Error fetching data from NZBMatrix: %s' % e) data = False if data: d = feedparser.parse(data) 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 AttributeError, e: logger.info(u"No results found from NZBMatrix for %s" % term)
d = feedparser.parse(data) if not len(d.entries): logger.info(u"No results found from %s for %s" % (headphones.NEWZNAB_HOST, 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.NZBSORG: provider = "nzbsorg" if headphones.PREFERRED_QUALITY == 3: categories = "5" maxsize = 10000000000 term = term + ' flac' elif headphones.PREFERRED_QUALITY: categories = "5" maxsize = 2000000000
d = feedparser.parse(data) if not len(d.entries): logger.info(u"No results found from %s for %s" % (headphones.NEWZNAB_HOST, 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.NZBSORG: provider = "nzbsorg" if headphones.PREFERRED_QUALITY == 3 or losslessOnly: categories = "3040" maxsize = 10000000000 elif headphones.PREFERRED_QUALITY: categories = "3040,3010" maxsize = 2000000000 else:
def searchTorrent(albumid=None, new=False, losslessOnly=False): myDB = db.DBConnection() if albumid: results = myDB.select('SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE AlbumID=?', [albumid]) else: results = myDB.select('SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE Status="Wanted" OR Status="Wanted Lossless"') new = True for albums in results: albumid = albums[2] reldate = albums[3] try: year = reldate[:4] except TypeError: year = '' dic = {'...':'', ' & ':' ', ' = ': ' ', '?':'', '$':'s', ' + ':' ', '"':'', ',':'', '*':''} cleanalbum = helpers.latinToAscii(helpers.replace_all(albums[1], dic)) cleanartist = helpers.latinToAscii(helpers.replace_all(albums[0], dic)) # FLAC usually doesn't have a year for some reason so I'll leave it out # Various Artist albums might be listed as VA, so I'll leave that out too # Only use the year if the term could return a bunch of different albums, i.e. self-titled albums if albums[0] in albums[1] or len(albums[0]) < 4 or len(albums[1]) < 4: term = cleanartist + ' ' + cleanalbum + ' ' + year elif albums[0] == 'Various Artists': term = cleanalbum + ' ' + year else: term = cleanartist + ' ' + cleanalbum # Replace bad characters in the term and unicode it term = re.sub('[\.\-\/]', ' ', term).encode('utf-8') artistterm = re.sub('[\.\-\/]', ' ', cleanartist).encode('utf-8') logger.info("Searching torrents for %s since it was marked as wanted" % term) resultlist = [] minimumseeders = int(headphones.NUMBEROFSEEDERS) - 1 if headphones.KAT: provider = "Kick Ass Torrent" providerurl = url_fix("http://www.kat.ph/search/" + term) if headphones.PREFERRED_QUALITY == 3 or losslessOnly: categories = "7" #music format = "2" #flac maxsize = 10000000000 elif headphones.PREFERRED_QUALITY: categories = "7" #music format = "10" #mp3+flac maxsize = 10000000000 else: categories = "7" #music format = "8" #mp3 maxsize = 300000000 params = { "categories[0]": "music", "field": "seeders", "sorder": "desc", "rss": "1" } searchURL = providerurl + "/?%s" % urllib.urlencode(params) try: data = urllib2.urlopen(searchURL, timeout=20).read() except urllib2.URLError, e: logger.warn('Error fetching data from %s: %s' % (provider, e)) data = False if data: d = feedparser.parse(data) if not len(d.entries): logger.info(u"No results found from %s for %s" % (provider, term)) pass else: for item in d.entries: try: rightformat = True title = item.title seeders = item.seeds url = item.links[1]['url'] size = int(item.links[1]['length']) try: if format == "2": request = urllib2.Request(url) request.add_header('Accept-encoding', 'gzip') response = urllib2.urlopen(request) if response.info().get('Content-Encoding') == 'gzip': buf = StringIO( response.read()) f = gzip.GzipFile(fileobj=buf) torrent = f.read() else: torrent = response.read() if int(torrent.find(".mp3")) > 0 and int(torrent.find(".flac")) < 1: rightformat = False except Exception, e: rightformat = False if rightformat == True and size < maxsize and minimumseeders < int(seeders): 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, the wrong format or has to little seeders for this category, skipping. (Size: %i bytes, Seeders: %i, Format: %s)' % (title, size, int(seeders), rightformat)) except Exception, e: logger.error(u"An unknown error occured in the KAT parser: %s" % e)
def searchNZB(albumid=None, new=False, losslessOnly=False): myDB = db.DBConnection() if albumid: results = myDB.select('SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate, Type from albums WHERE AlbumID=?', [albumid]) else: results = myDB.select('SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate, Type from albums WHERE Status="Wanted" OR Status="Wanted Lossless"') new = True for albums in results: albumid = albums[2] reldate = albums[3] try: year = reldate[:4] except TypeError: year = '' dic = {'...':'', ' & ':' ', ' = ': ' ', '?':'', '$':'s', ' + ':' ', '"':'', ',':'', '*':'', '.':'', ':':''} cleanalbum = helpers.latinToAscii(helpers.replace_all(albums[1], dic)) cleanartist = helpers.latinToAscii(helpers.replace_all(albums[0], dic)) # FLAC usually doesn't have a year for some reason so I'll leave it out # Various Artist albums might be listed as VA, so I'll leave that out too # Only use the year if the term could return a bunch of different albums, i.e. self-titled albums if albums[0] in albums[1] or len(albums[0]) < 4 or len(albums[1]) < 4: term = cleanartist + ' ' + cleanalbum + ' ' + year elif albums[0] == 'Various Artists': term = cleanalbum + ' ' + year else: term = cleanartist + ' ' + cleanalbum # Replace bad characters in the term and unicode it term = re.sub('[\.\-\/]', ' ', term).encode('utf-8') artistterm = re.sub('[\.\-\/]', ' ', cleanartist).encode('utf-8') logger.info("Searching for %s since it was marked as wanted" % term) resultlist = [] if headphones.NZBMATRIX: provider = "nzbmatrix" if headphones.PREFERRED_QUALITY == 3 or losslessOnly: categories = "23" elif headphones.PREFERRED_QUALITY: categories = "23,22" else: categories = "22" # Search Audiobooks/Singles/etc if albums['Type'] == "Other": categories = "49" logger.info("Album type is audiobook/spokenword. Using audiobook category") if albums['Type'] == "Single": categories = "47" logger.info("Album type is 'Single'. Using singles category") # For some reason NZBMatrix is erroring out/timing out when the term starts with a "The" right now # so we'll strip it out for the time being. This may get fixed on their end, it may not, but # hopefully this will fix it for now. If you notice anything else it gets stuck on, please post it # on Github so it can be added if term.lower().startswith("the "): term = term[4:] params = { "page": "download", "username": headphones.NZBMATRIX_USERNAME, "apikey": headphones.NZBMATRIX_APIKEY, "subcat": categories, "maxage": headphones.USENET_RETENTION, "english": 1, "ssl": 1, "scenename": 1, "term": term } searchURL = "http://rss.nzbmatrix.com/rss.php?" + urllib.urlencode(params) logger.info(u'Parsing results from <a href="%s">NZBMatrix</a>' % searchURL) try: data = urllib2.urlopen(searchURL, timeout=20).read() except urllib2.URLError, e: logger.warn('Error fetching data from NZBMatrix: %s' % e) data = False if data: d = feedparser.parse(data) for item in d.entries: try: url = item.link title = item.title size = int(item.links[1]['length']) resultlist.append((title, size, url, provider)) logger.info('Found %s. Size: %s' % (title, helpers.bytes_to_mb(size))) except AttributeError, e: logger.info(u"No results found from NZBMatrix for %s" % term)
def searchTorrent(albumid=None, new=False, losslessOnly=False): myDB = db.DBConnection() if albumid: results = myDB.select('SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE AlbumID=?', [albumid]) else: results = myDB.select('SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE Status="Wanted" OR Status="Wanted Lossless"') new = True for albums in results: albumid = albums[2] reldate = albums[3] try: year = reldate[:4] except TypeError: year = '' dic = {'...':'', ' & ':' ', ' = ': ' ', '?':'', '$':'s', ' + ':' ', '"':'', ',':'', '*':''} cleanalbum = helpers.latinToAscii(helpers.replace_all(albums[1], dic)) cleanartist = helpers.latinToAscii(helpers.replace_all(albums[0], dic)) # FLAC usually doesn't have a year for some reason so I'll leave it out # Various Artist albums might be listed as VA, so I'll leave that out too # Only use the year if the term could return a bunch of different albums, i.e. self-titled albums if albums[0] in albums[1] or len(albums[0]) < 4 or len(albums[1]) < 4: term = cleanartist + ' ' + cleanalbum + ' ' + year elif albums[0] == 'Various Artists': term = cleanalbum + ' ' + year else: term = cleanartist + ' ' + cleanalbum # Replace bad characters in the term and unicode it term = re.sub('[\.\-\/]', ' ', term).encode('utf-8') artistterm = re.sub('[\.\-\/]', ' ', cleanartist).encode('utf-8') albumterm = re.sub('[\.\-\/]', ' ', cleanalbum).encode('utf-8') logger.info("Searching torrents for %s since it was marked as wanted" % term) resultlist = [] minimumseeders = int(headphones.NUMBEROFSEEDERS) - 1 if headphones.KAT: provider = "Kick Ass Torrent" providerurl = url_fix("http://www.kat.ph/search/" + term) if headphones.PREFERRED_QUALITY == 3 or losslessOnly: categories = "7" #music format = "2" #flac maxsize = 10000000000 elif headphones.PREFERRED_QUALITY: categories = "7" #music format = "10" #mp3+flac maxsize = 10000000000 else: categories = "7" #music format = "8" #mp3 maxsize = 300000000 params = { "categories[0]": "music", "field": "seeders", "sorder": "desc", "rss": "1" } searchURL = providerurl + "/?%s" % urllib.urlencode(params) try: data = urllib2.urlopen(searchURL, timeout=20).read() except urllib2.URLError, e: logger.warn('Error fetching data from %s: %s' % (provider, e)) data = False if data: logger.info(u'Parsing results from <a href="%s">KAT</a>' % searchURL) d = feedparser.parse(data) if not len(d.entries): logger.info(u"No results found from %s for %s" % (provider, term)) pass else: for item in d.entries: try: rightformat = True title = item.title seeders = item.seeds url = item.links[1]['url'] size = int(item.links[1]['length']) try: if format == "2": request = urllib2.Request(url) request.add_header('Accept-encoding', 'gzip') request.add_header('Referer', 'http://kat.ph/') response = urllib2.urlopen(request) if response.info().get('Content-Encoding') == 'gzip': buf = StringIO( response.read()) f = gzip.GzipFile(fileobj=buf) torrent = f.read() else: torrent = response.read() if int(torrent.find(".mp3")) > 0 and int(torrent.find(".flac")) < 1: rightformat = False except Exception, e: rightformat = False if rightformat == True and size < maxsize and minimumseeders < int(seeders): 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, the wrong format or has too little seeders for this category, skipping. (Size: %i bytes, Seeders: %i, Format: %s)' % (title, size, int(seeders), rightformat)) except Exception, e: logger.error(u"An unknown error occurred in the KAT parser: %s" % e)
d = feedparser.parse(data) if not len(d.entries): logger.info(u"No results found from %s for %s" % (newznab_host[0], term)) pass else: for item in d.entries: try: url = item.link title = item.title size = int(item.links[1]['length']) resultlist.append((title, size, url, provider)) logger.info('Found %s. Size: %s' % (title, helpers.bytes_to_mb(size))) except Exception, e: logger.error(u"An unknown error occurred trying to parse the feed: %s" % e) if headphones.NZBSORG: provider = "nzbsorg" if headphones.PREFERRED_QUALITY == 3 or losslessOnly: categories = "3040" elif headphones.PREFERRED_QUALITY: categories = "3040,3010" else: categories = "3010" if albums['Type'] == 'Other': categories = "3030"
def searchNZB(albumid=None, new=False): myDB = db.DBConnection() if albumid: results = myDB.select( 'SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE Status="Wanted" AND AlbumID=?', [albumid]) else: results = myDB.select( 'SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE Status="Wanted"' ) new = True for albums in results: albumid = albums[2] reldate = albums[3] try: year = reldate[:4] except TypeError: year = '' dic = { '...': '', ' & ': ' ', ' = ': ' ', '?': '', '$': 's', ' + ': ' ', '"': '', ',': '', '*': '' } cleanalbum = helpers.latinToAscii(helpers.replace_all(albums[1], dic)) cleanartist = helpers.latinToAscii(helpers.replace_all(albums[0], dic)) # FLAC usually doesn't have a year for some reason so I'll leave it out # Various Artist albums might be listed as VA, so I'll leave that out too # Only use the year if the term could return a bunch of different albums, i.e. self-titled albums if albums[0] in albums[1] or len(albums[0]) < 4 or len(albums[1]) < 4: term = cleanartist + ' ' + cleanalbum + ' ' + year elif albums[0] == 'Various Artists': term = cleanalbum + ' ' + year else: term = cleanartist + ' ' + cleanalbum # Replace bad characters in the term and unicode it term = re.sub('[\.\-\/]', ' ', term).encode('utf-8') artistterm = re.sub('[\.\-\/]', ' ', cleanartist).encode('utf-8') logger.info("Searching for %s since it was marked as wanted" % term) resultlist = [] if headphones.NZBMATRIX: provider = "nzbmatrix" if headphones.PREFERRED_QUALITY == 3: categories = "23" maxsize = 10000000000 elif headphones.PREFERRED_QUALITY: categories = "23,22" maxsize = 2000000000 else: categories = "22" maxsize = 300000000 params = { "page": "download", "username": headphones.NZBMATRIX_USERNAME, "apikey": headphones.NZBMATRIX_APIKEY, "subcat": categories, "age": headphones.USENET_RETENTION, "english": 1, "ssl": 1, "scenename": 1, "term": term } searchURL = "http://rss.nzbmatrix.com/rss.php?" + urllib.urlencode( params) logger.info(u'Parsing results from <a href="%s">NZBMatrix</a>' % searchURL) try: data = urllib2.urlopen(searchURL, timeout=20).read() except urllib2.URLError, e: logger.warn('Error fetching data from NZBMatrix: %s' % e) data = False if data: d = feedparser.parse(data) 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 AttributeError, e: logger.info(u"No results found from NZBMatrix for %s" % term)
if not len(d.entries): logger.info(u"No results found from %s for %s" % (headphones.NEWZNAB_HOST, 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.NZBSORG: provider = "nzbsorg" if headphones.PREFERRED_QUALITY == 3: categories = "5" maxsize = 10000000000
def searchNZB(albumid=None, new=False, losslessOnly=False): myDB = db.DBConnection() if albumid: results = myDB.select( "SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE AlbumID=?", [albumid] ) else: results = myDB.select( 'SELECT ArtistName, AlbumTitle, AlbumID, ReleaseDate from albums WHERE Status="Wanted" OR Status="Wanted Lossless"' ) new = True for albums in results: albumid = albums[2] reldate = albums[3] try: year = reldate[:4] except TypeError: year = "" dic = { "...": "", " & ": " ", " = ": " ", "?": "", "$": "s", " + ": " ", '"': "", ",": "", "*": "", ".": "", ":": "", } cleanalbum = helpers.latinToAscii(helpers.replace_all(albums[1], dic)) cleanartist = helpers.latinToAscii(helpers.replace_all(albums[0], dic)) # FLAC usually doesn't have a year for some reason so I'll leave it out # Various Artist albums might be listed as VA, so I'll leave that out too # Only use the year if the term could return a bunch of different albums, i.e. self-titled albums if albums[0] in albums[1] or len(albums[0]) < 4 or len(albums[1]) < 4: term = cleanartist + " " + cleanalbum + " " + year elif albums[0] == "Various Artists": term = cleanalbum + " " + year else: term = cleanartist + " " + cleanalbum # Replace bad characters in the term and unicode it term = re.sub("[\.\-\/]", " ", term).encode("utf-8") artistterm = re.sub("[\.\-\/]", " ", cleanartist).encode("utf-8") logger.info("Searching for %s since it was marked as wanted" % term) resultlist = [] if headphones.NZBMATRIX: provider = "nzbmatrix" if headphones.PREFERRED_QUALITY == 3 or losslessOnly: categories = "23" maxsize = 10000000000 elif headphones.PREFERRED_QUALITY: categories = "23,22" maxsize = 2000000000 else: categories = "22" maxsize = 300000000 params = { "page": "download", "username": headphones.NZBMATRIX_USERNAME, "apikey": headphones.NZBMATRIX_APIKEY, "subcat": categories, "maxage": headphones.USENET_RETENTION, "english": 1, "ssl": 1, "scenename": 1, "term": term, } searchURL = "http://rss.nzbmatrix.com/rss.php?" + urllib.urlencode(params) logger.info(u'Parsing results from <a href="%s">NZBMatrix</a>' % searchURL) try: data = urllib2.urlopen(searchURL, timeout=20).read() except urllib2.URLError, e: logger.warn("Error fetching data from NZBMatrix: %s" % e) data = False if data: d = feedparser.parse(data) 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 AttributeError, e: logger.info(u"No results found from NZBMatrix for %s" % term)
d = feedparser.parse(data) if not len(d.entries): logger.info(u"No results found from %s for %s" % (headphones.NEWZNAB_HOST, 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.NZBSORG: provider = "nzbsorg" if headphones.PREFERRED_QUALITY == 3 or losslessOnly: categories = "31" maxsize = 10000000000 elif headphones.PREFERRED_QUALITY: