mirror of
https://github.com/rembo10/headphones.git
synced 2026-05-09 21:29:27 +01:00
Added timeouts when polling search providers
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import urllib
|
||||
import urllib, urllib2
|
||||
import lib.feedparser as feedparser
|
||||
from xml.dom import minidom
|
||||
from xml.parsers.expat import ExpatError
|
||||
@@ -114,21 +114,29 @@ def searchNZB(albumid=None, new=False):
|
||||
|
||||
searchURL = "http://rss.nzbmatrix.com/rss.php?" + urllib.urlencode(params)
|
||||
logger.info(u"Parsing results from "+searchURL)
|
||||
d = feedparser.parse(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:
|
||||
|
||||
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)
|
||||
|
||||
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 headphones.NEWZNAB:
|
||||
provider = "newznab"
|
||||
@@ -150,28 +158,37 @@ def searchNZB(albumid=None, new=False):
|
||||
}
|
||||
|
||||
searchURL = headphones.NEWZNAB_HOST + '/api?' + urllib.urlencode(params)
|
||||
logger.info(u"Parsing results from "+searchURL)
|
||||
|
||||
d = feedparser.parse(searchURL)
|
||||
logger.info(u"Parsing results from "+searchURL)
|
||||
|
||||
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)
|
||||
try:
|
||||
data = urllib2.urlopen(searchURL, timeout=20).read()
|
||||
except urllib2.URLError, e:
|
||||
logger.warn('Error fetching data from %s: %s' % (headphones.NEWZNAB_HOST, e))
|
||||
data = False
|
||||
|
||||
if data:
|
||||
|
||||
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"
|
||||
@@ -196,19 +213,23 @@ def searchNZB(albumid=None, new=False):
|
||||
}
|
||||
|
||||
searchURL = 'https://secure.nzbs.org/rss.php?' + urllib.urlencode(params)
|
||||
|
||||
#data = urllib.urlopen(searchURL).read()
|
||||
data = urllib.urlopen(searchURL).read()
|
||||
|
||||
logger.info(u"Parsing results from "+searchURL)
|
||||
|
||||
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
|
||||
try:
|
||||
data = urllib2.urlopen(searchURL, timeout=20).read()
|
||||
except urllib2.URLError, 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:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user