Check login after 1 hour

This commit is contained in:
Ruud
2013-06-14 00:03:48 +02:00
parent b195cebac7
commit 6ef788a8f4
10 changed files with 66 additions and 49 deletions
+22 -1
View File
@@ -86,6 +86,7 @@ class YarrProvider(Provider):
sizeKb = ['kb', 'kib']
login_opener = None
last_login_check = 0
def __init__(self):
addEvent('provider.enabled_types', self.getEnabledProviderType)
@@ -101,6 +102,22 @@ class YarrProvider(Provider):
def login(self):
# Check if we are still logged in every hour
now = time.time()
if self.login_opener and self.last_login_check < (now - 3600):
try:
output = self.urlopen(self.urls['login_check'])
if self.loginCheckSuccess(output):
self.last_login_check = now
return True
else:
self.login_opener = None
except:
self.login_opener = None
if self.login_opener:
return True
try:
cookiejar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
@@ -119,15 +136,19 @@ class YarrProvider(Provider):
except:
error = traceback.format_exc()
self.login_opener = None
log.error('Failed to login %s: %s', (self.getName(), error))
return False
def loginSuccess(self, output):
return True
def loginCheckSuccess(self, output):
return True
def loginDownload(self, url = '', nzb_id = ''):
try:
if not self.login_opener and not self.login():
if not self.login():
log.error('Failed downloading from %s', self.getName())
return self.urlopen(url, opener = self.login_opener)
except: