Log errors via API

This commit is contained in:
Ruud
2012-01-14 12:04:53 +01:00
parent 8e18c1e1cd
commit 66dfe75f73
4 changed files with 43 additions and 2 deletions
+6
View File
@@ -93,6 +93,12 @@ class Plugin(object):
socket.setdefaulttimeout(timeout)
# Fill in some headers
if not headers.get('Referer'):
headers['Referer'] = urlparse(url).hostname
if not headers.get('User-Agent'):
headers['User-Agent'] = ''
host = urlparse(url).hostname
self.wait(host)
+20 -1
View File
@@ -1,5 +1,5 @@
from couchpotato.api import addApiView
from couchpotato.core.helpers.request import jsonified, getParam
from couchpotato.core.helpers.request import jsonified, getParam, getParams
from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin
from couchpotato.environment import Env
@@ -14,6 +14,7 @@ class Logging(Plugin):
def __init__(self):
addApiView('logging.get', self.get)
addApiView('logging.clear', self.clear)
addApiView('logging.log', self.log)
def get(self):
@@ -67,3 +68,21 @@ class Logging(Plugin):
return jsonified({
'success': True
})
def log(self):
params = getParams()
try:
log_message = 'API log: %s' % params
try:
getattr(log, params.get('type', 'error'))(log_message)
except:
log.error(log_message)
except:
log.error('Couldn\'t log via API: %s' % params)
return jsonified({
'success': True
})
+1 -1
View File
@@ -23,7 +23,7 @@ class X264(NZBProvider):
if self.isDisabled() or not self.isAvailable(self.urls['search']) or not quality.get('hd', False):
return results
q = '%s %s' % (movie['library']['titles'][0]['title'], quality.get('identifier'))
q = '%s %s %s' % (movie['library']['titles'][0]['title'], movie['library']['year'], quality.get('identifier'))
url = self.urls['search'] % quote_plus(q)
cache_key = 'x264.%s' % q
+16
View File
@@ -52,6 +52,22 @@
'is_remote': false
});
// Catch errors
window.onerror = function(message, file, line){
Api.request('logging.log', {
'data': {
'type': 'error',
'message': Browser.name + ' ' + Browser.version + ': \n' + message,
'page': window.location.href,
'file': file,
'line': line
}
});
return true;
}
Quality.setup({
'profiles': {{ fireEvent('profile.all', single = True)|tojson|safe }},
'qualities': {{ fireEvent('quality.all', single = True)|tojson|safe }}