Browse Source

Urlopen try,except fixes

pull/62/head
Ruud 14 years ago
parent
commit
668b95353f
  1. 5
      couchpotato/core/downloaders/nzbget/main.py
  2. 12
      couchpotato/core/notifications/nmj/main.py
  3. 5
      couchpotato/core/notifications/notifo/main.py
  4. 4
      couchpotato/core/notifications/xbmc/main.py
  5. 10
      couchpotato/core/plugins/base.py
  6. 6
      couchpotato/core/plugins/file/main.py
  7. 7
      couchpotato/core/plugins/searcher/main.py
  8. 7
      couchpotato/core/providers/movie/couchpotatoapi/main.py
  9. 59
      couchpotato/core/providers/nzb/moovee/main.py
  10. 8
      couchpotato/core/providers/nzb/newzbin/main.py
  11. 10
      couchpotato/core/providers/nzb/newznab/main.py
  12. 10
      couchpotato/core/providers/nzb/nzbindex/main.py
  13. 10
      couchpotato/core/providers/nzb/nzbmatrix/main.py
  14. 10
      couchpotato/core/providers/nzb/nzbs/main.py
  15. 71
      couchpotato/core/providers/nzb/x264/main.py
  16. 10
      couchpotato/core/providers/trailer/hdtrailers/main.py
  17. 5
      couchpotato/core/providers/userscript/allocine/main.py
  18. 5
      couchpotato/core/providers/userscript/appletrailers/main.py
  19. 5
      couchpotato/core/providers/userscript/base.py

5
couchpotato/core/downloaders/nzbget/main.py

@ -3,6 +3,7 @@ from couchpotato.core.downloaders.base import Downloader
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from inspect import isfunction from inspect import isfunction
import socket import socket
import traceback
import xmlrpclib import xmlrpclib
log = CPLog(__name__) log = CPLog(__name__)
@ -48,8 +49,8 @@ class NZBGet(Downloader):
else: else:
log.info('Downloading: %s' % data.get('url')) log.info('Downloading: %s' % data.get('url'))
file = self.urlopen(data.get('url')) file = self.urlopen(data.get('url'))
except Exception, e: except:
log.error('Unable to get NZB file: %s' % e) log.error('Unable to get NZB file: %s' % traceback.format_exc())
return False return False
if rpc.append(nzb_name, self.conf('category'), False, standard_b64encode(file.strip())): if rpc.append(nzb_name, self.conf('category'), False, standard_b64encode(file.strip())):

12
couchpotato/core/notifications/nmj/main.py

@ -79,9 +79,9 @@ class NMJ(Notification):
if self.mount: if self.mount:
log.debug('Try to mount network drive via url: %s' % (mount)) log.debug('Try to mount network drive via url: %s' % (mount))
data = self.urlopen(mount) try:
if not data: data = self.urlopen(mount)
log.error('Warning: Couldn\'t contact popcorn hour on host %s' % host) except:
return False return False
params = { params = {
@ -94,9 +94,9 @@ class NMJ(Notification):
UPDATE_URL = 'http://%(host)s:8008/metadata_database?%(params)s' UPDATE_URL = 'http://%(host)s:8008/metadata_database?%(params)s'
updateUrl = UPDATE_URL % {'host': host, 'params': params} updateUrl = UPDATE_URL % {'host': host, 'params': params}
response = self.urlopen(updateUrl) try:
if not response: response = self.urlopen(updateUrl)
log.error('Warning: Couldn\'t contact Popcorn Hour on host %s' % host) except:
return False return False
try: try:

5
couchpotato/core/notifications/notifo/main.py

@ -3,6 +3,7 @@ from couchpotato.core.logger import CPLog
from couchpotato.core.notifications.base import Notification from couchpotato.core.notifications.base import Notification
from flask.helpers import json from flask.helpers import json
import base64 import base64
import traceback
log = CPLog(__name__) log = CPLog(__name__)
@ -30,8 +31,8 @@ class Notifo(Notification):
if result['status'] != 'success' or result['response_message'] != 'OK': if result['status'] != 'success' or result['response_message'] != 'OK':
raise Exception raise Exception
except Exception, e: except:
log.error('Notification failed: %s' % e) log.error('Notification failed: %s' % traceback.format_exc())
return False return False
log.info('Notifo notification successful.') log.info('Notifo notification successful.')

4
couchpotato/core/notifications/xbmc/main.py

@ -29,7 +29,9 @@ class XBMC(Notification):
'Authorization': "Basic %s" % base64.encodestring('%s:%s' % (self.conf('username'), self.conf('password')))[:-1] 'Authorization': "Basic %s" % base64.encodestring('%s:%s' % (self.conf('username'), self.conf('password')))[:-1]
} }
if not self.urlopen(url, headers = headers): try:
self.urlopen(url, headers = headers)
except:
log.error("Couldn't sent command to XBMC") log.error("Couldn't sent command to XBMC")
return False return False

10
couchpotato/core/plugins/base.py

@ -160,12 +160,20 @@ class Plugin(object):
log.error("Something went wrong when finishing the plugin function. Could not find the 'is_running' key") log.error("Something went wrong when finishing the plugin function. Could not find the 'is_running' key")
def getCache(self, cache_key): def getCache(self, cache_key, url = None):
cache = Env.get('cache').get(cache_key) cache = Env.get('cache').get(cache_key)
if cache: if cache:
log.debug('Getting cache %s' % cache_key) log.debug('Getting cache %s' % cache_key)
return cache return cache
if url:
try:
data = self.urlopen(url)
self.setCache(cache_key, data)
return data
except:
pass
def setCache(self, cache_key, value, timeout = 300): def setCache(self, cache_key, value, timeout = 300):
log.debug('Setting cache %s' % cache_key) log.debug('Setting cache %s' % cache_key)
Env.get('cache').set(cache_key, value, timeout) Env.get('cache').set(cache_key, value, timeout)

6
couchpotato/core/plugins/file/main.py

@ -34,9 +34,9 @@ class FileManager(Plugin):
def download(self, url = '', dest = None, overwrite = False): def download(self, url = '', dest = None, overwrite = False):
file = self.urlopen(url) try:
if not file: file = self.urlopen(url)
log.error('File is empty, don\'t download') except:
return False return False
if not dest: # to Cache if not dest: # to Cache

7
couchpotato/core/plugins/searcher/main.py

@ -261,7 +261,10 @@ class Searcher(Plugin):
nfo = self.getCache(cache_key) nfo = self.getCache(cache_key)
if not nfo: if not nfo:
nfo = self.urlopen('http://www.srrdb.com/showfile.php?release=%s' % check_name) try:
self.setCache(cache_key, nfo) nfo = self.urlopen('http://www.srrdb.com/showfile.php?release=%s' % check_name)
self.setCache(cache_key, nfo)
except:
pass
return getImdb(nfo) == imdb_id return getImdb(nfo) == imdb_id

7
couchpotato/core/providers/movie/couchpotatoapi/main.py

@ -20,9 +20,8 @@ class CouchPotatoApi(MovieProvider):
def releaseDate(self, imdb_id): def releaseDate(self, imdb_id):
data = self.urlopen((self.apiUrl % ('eta')) + (id + '/'))
try: try:
data = self.urlopen((self.apiUrl % ('eta')) + (id + '/'))
dates = json.loads(data) dates = json.loads(data)
log.info('Found ETA for %s: %s' % (imdb_id, dates)) log.info('Found ETA for %s: %s' % (imdb_id, dates))
except Exception, e: except Exception, e:
@ -31,10 +30,8 @@ class CouchPotatoApi(MovieProvider):
return dates return dates
def suggest(self, movies = [], ignore = []): def suggest(self, movies = [], ignore = []):
data = self.urlopen((self.apiUrl % ('suggest')) + ','.join(movies) + '/' + ','.join(ignore) + '/')
try: try:
data = self.urlopen((self.apiUrl % ('suggest')) + ','.join(movies) + '/' + ','.join(ignore) + '/')
suggestions = json.loads(data) suggestions = json.loads(data)
log.info('Found Suggestions for %s' % (suggestions)) log.info('Found Suggestions for %s' % (suggestions))
except Exception, e: except Exception, e:

59
couchpotato/core/providers/nzb/moovee/main.py

@ -28,39 +28,32 @@ class Moovee(NZBProvider):
url = self.urls['search'] % quote_plus(q) url = self.urls['search'] % quote_plus(q)
cache_key = 'moovee.%s' % q cache_key = 'moovee.%s' % q
data = self.getCache(cache_key) data = self.getCache(cache_key, url)
if not data: if data:
data = self.urlopen(url) match = re.compile(self.regex, re.DOTALL).finditer(data)
self.setCache(cache_key, data)
for nzb in match:
if not data: new = {
log.error('Failed to get data from %s.' % url) 'id': nzb.group('reqid'),
return results 'name': nzb.group('title'),
'type': 'nzb',
match = re.compile(self.regex, re.DOTALL).finditer(data) 'provider': self.getName(),
'age': self.calculateAge(time.mktime(parse(nzb.group('age')).timetuple())),
for nzb in match: 'size': None,
new = { 'url': self.urls['download'] % (nzb.group('reqid')),
'id': nzb.group('reqid'), 'download': self.download,
'name': nzb.group('title'), 'detail_url': '',
'type': 'nzb', 'description': '',
'provider': self.getName(), 'check_nzb': False,
'age': self.calculateAge(time.mktime(parse(nzb.group('age')).timetuple())), }
'size': None,
'url': self.urls['download'] % (nzb.group('reqid')), new['score'] = fireEvent('score.calculate', new, movie, single = True)
'download': self.download, is_correct_movie = fireEvent('searcher.correct_movie',
'detail_url': '', nzb = new, movie = movie, quality = quality,
'description': '', imdb_results = False, single_category = False, single = True)
'check_nzb': False, if is_correct_movie:
} results.append(new)
self.found(new)
new['score'] = fireEvent('score.calculate', new, movie, single = True)
is_correct_movie = fireEvent('searcher.correct_movie',
nzb = new, movie = movie, quality = quality,
imdb_results = False, single_category = False, single = True)
if is_correct_movie:
results.append(new)
self.found(new)
return results return results

8
couchpotato/core/providers/nzb/newzbin/main.py

@ -66,9 +66,11 @@ class Newzbin(NZBProvider, RSS):
headers = { headers = {
'Authorization': "Basic %s" % base64.encodestring('%s:%s' % (self.conf('username'), self.conf('password')))[:-1] 'Authorization': "Basic %s" % base64.encodestring('%s:%s' % (self.conf('username'), self.conf('password')))[:-1]
} }
try:
data = self.urlopen(url, headers = headers) data = self.urlopen(url, headers = headers)
self.setCache(cache_key, data) self.setCache(cache_key, data)
except:
return results
if data: if data:
try: try:

10
couchpotato/core/providers/nzb/newznab/main.py

@ -100,15 +100,7 @@ class Newznab(NZBProvider, RSS):
def createItems(self, url, cache_key, host, single_cat = False, movie = None, quality = None, for_feed = False): def createItems(self, url, cache_key, host, single_cat = False, movie = None, quality = None, for_feed = False):
results = [] results = []
data = self.getCache(cache_key) data = self.getCache(cache_key, url)
if not data:
data = self.urlopen(url)
self.setCache(cache_key, data)
if not data:
log.error('Failed to get data from %s.' % url)
return results
if data: if data:
try: try:
try: try:

10
couchpotato/core/providers/nzb/nzbindex/main.py

@ -37,15 +37,7 @@ class NzbIndex(NZBProvider, RSS):
cache_key = 'nzbindex.%s.%s' % (movie['library'].get('identifier'), quality.get('identifier')) cache_key = 'nzbindex.%s.%s' % (movie['library'].get('identifier'), quality.get('identifier'))
data = self.getCache(cache_key) data = self.getCache(cache_key, url)
if not data:
data = self.urlopen(url)
self.setCache(cache_key, data)
if not data:
log.error('Failed to get data from %s.' % url)
return results
if data: if data:
try: try:
try: try:

10
couchpotato/core/providers/nzb/nzbmatrix/main.py

@ -50,15 +50,7 @@ class NZBMatrix(NZBProvider, RSS):
cache_key = 'nzbmatrix.%s.%s' % (movie['library'].get('identifier'), cat_ids) cache_key = 'nzbmatrix.%s.%s' % (movie['library'].get('identifier'), cat_ids)
single_cat = True single_cat = True
data = self.getCache(cache_key) data = self.getCache(cache_key, url)
if not data:
data = self.urlopen(url)
self.setCache(cache_key, data)
if not data:
log.error('Failed to get data from %s.' % url)
return results
if data: if data:
try: try:
try: try:

10
couchpotato/core/providers/nzb/nzbs/main.py

@ -47,15 +47,7 @@ class Nzbs(NZBProvider, RSS):
cache_key = 'nzbs.%s.%s' % (movie['library'].get('identifier'), str(cat_id)) cache_key = 'nzbs.%s.%s' % (movie['library'].get('identifier'), str(cat_id))
data = self.getCache(cache_key) data = self.getCache(cache_key, url)
if not data:
data = self.urlopen(url)
self.setCache(cache_key, data)
if not data:
log.error('Failed to get data from %s.' % url)
return results
if data: if data:
try: try:
try: try:

71
couchpotato/core/providers/nzb/x264/main.py

@ -27,45 +27,38 @@ class X264(NZBProvider):
url = self.urls['search'] % quote_plus(q) url = self.urls['search'] % quote_plus(q)
cache_key = 'x264.%s' % q cache_key = 'x264.%s' % q
data = self.getCache(cache_key) data = self.getCache(cache_key, url)
if not data: if data:
data = self.urlopen(url) match = re.compile(self.regex, re.DOTALL).finditer(data)
self.setCache(cache_key, data)
for nzb in match:
if not data: try:
log.error('Failed to get data from %s.' % url) age_match = re.match('((?P<day>\d+)d)', nzb.group('age'))
return results age = age_match.group('day')
except:
match = re.compile(self.regex, re.DOTALL).finditer(data) age = 1
for nzb in match: new = {
try: 'id': nzb.group('id'),
age_match = re.match('((?P<day>\d+)d)', nzb.group('age')) 'name': nzb.group('title'),
age = age_match.group('day') 'type': 'nzb',
except: 'provider': self.getName(),
age = 1 'age': tryInt(age),
'size': None,
new = { 'url': self.urls['download'] % (nzb.group('id')),
'id': nzb.group('id'), 'download': self.download,
'name': nzb.group('title'), 'detail_url': '',
'type': 'nzb', 'description': '',
'provider': self.getName(), 'check_nzb': False,
'age': tryInt(age), }
'size': None,
'url': self.urls['download'] % (nzb.group('id')), new['score'] = fireEvent('score.calculate', new, movie, single = True)
'download': self.download, is_correct_movie = fireEvent('searcher.correct_movie',
'detail_url': '', nzb = new, movie = movie, quality = quality,
'description': '', imdb_results = False, single_category = False, single = True)
'check_nzb': False, if is_correct_movie:
} results.append(new)
self.found(new)
new['score'] = fireEvent('score.calculate', new, movie, single = True)
is_correct_movie = fireEvent('searcher.correct_movie',
nzb = new, movie = movie, quality = quality,
imdb_results = False, single_category = False, single = True)
if is_correct_movie:
results.append(new)
self.found(new)
return results return results

10
couchpotato/core/providers/trailer/hdtrailers/main.py

@ -21,7 +21,10 @@ class HDTrailers(TrailerProvider):
movie_name = movie['library']['titles'][0]['title'] movie_name = movie['library']['titles'][0]['title']
url = self.url['api'] % self.movieUrlName(movie_name) url = self.url['api'] % self.movieUrlName(movie_name)
data = self.urlopen(url) try:
data = self.urlopen(url)
except:
return {}
p480 = [] p480 = []
p720 = [] p720 = []
@ -45,7 +48,10 @@ class HDTrailers(TrailerProvider):
results = {'480p':[], '720p':[], '1080p':[]} results = {'480p':[], '720p':[], '1080p':[]}
url = "%s?%s" % (self.url['backup'], urlencode({'s':movie})) url = "%s?%s" % (self.url['backup'], urlencode({'s':movie}))
data = self.urlopen(url) try:
data = self.urlopen(url)
except:
return results
try: try:
tables = SoupStrainer('div') tables = SoupStrainer('div')

5
couchpotato/core/providers/userscript/allocine/main.py

@ -10,7 +10,10 @@ class AlloCine(UserscriptBase):
if not 'fichefilm_gen_cfilm' in url: if not 'fichefilm_gen_cfilm' in url:
return 'Url isn\'t from a movie' return 'Url isn\'t from a movie'
data = self.urlopen(url) try:
data = self.urlopen(url)
except:
return
html = BeautifulSoup(data) html = BeautifulSoup(data)
title = html.find('title').contents[0].strip() title = html.find('title').contents[0].strip()

5
couchpotato/core/providers/userscript/appletrailers/main.py

@ -8,7 +8,10 @@ class AppleTrailers(UserscriptBase):
def getMovie(self, url): def getMovie(self, url):
data = self.urlopen(url) try:
data = self.urlopen(url)
except:
return
name = re.search("trailerTitle.*=.*\'(?P<name>.*)\';", data) name = re.search("trailerTitle.*=.*\'(?P<name>.*)\';", data)
name = name.group('name').decode('string_escape') name = name.group('name').decode('string_escape')

5
couchpotato/core/providers/userscript/base.py

@ -42,7 +42,10 @@ class UserscriptBase(Plugin):
return return
def getMovie(self, url): def getMovie(self, url):
data = self.urlopen(url) try:
data = self.urlopen(url)
except:
data = ''
return self.getInfo(getImdb(data)) return self.getInfo(getImdb(data))
def getInfo(self, identifier): def getInfo(self, identifier):

Loading…
Cancel
Save