From 650177803b86d379f8878867241ee48b9b0b9d8f Mon Sep 17 00:00:00 2001 From: Ruud Date: Sun, 16 Dec 2012 17:34:50 +0100 Subject: [PATCH] Movie login to yarrprovider class --- couchpotato/core/providers/base.py | 32 ++++++++++++++++++++++ couchpotato/core/providers/torrent/base.py | 31 --------------------- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/couchpotato/core/providers/base.py b/couchpotato/core/providers/base.py index 50a659b0..c2187246 100644 --- a/couchpotato/core/providers/base.py +++ b/couchpotato/core/providers/base.py @@ -4,9 +4,11 @@ from couchpotato.core.logger import CPLog from couchpotato.core.plugins.base import Plugin from couchpotato.environment import Env from urlparse import urlparse +import cookielib import re import time import traceback +import urllib2 log = CPLog(__name__) @@ -48,6 +50,8 @@ class YarrProvider(Provider): sizeMb = ['mb', 'mib'] sizeKb = ['kb', 'kib'] + login_opener = None + def __init__(self): addEvent('provider.belongs_to', self.belongsTo) @@ -56,6 +60,34 @@ class YarrProvider(Provider): addEvent('nzb.feed', self.feed) + def login(self): + + try: + cookiejar = cookielib.CookieJar() + opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar)) + urllib2.install_opener(opener) + log.info2('Logging into %s', self.urls['login']) + f = opener.open(self.urls['login'], self.getLoginParams()) + f.read() + f.close() + self.login_opener = opener + return True + except: + log.error('Failed to login %s: %s', (self.getName(), traceback.format_exc())) + + return False + + def loginDownload(self, url = '', nzb_id = ''): + try: + if not self.login_opener and not self.login(): + log.error('Failed downloading from %s', self.getName()) + return self.urlopen(url, opener = self.login_opener) + except: + log.error('Failed downloading from %s: %s', (self.getName(), traceback.format_exc())) + + def getLoginParams(self): + return '' + def download(self, url = '', nzb_id = ''): try: return self.urlopen(url, headers = {'User-Agent': Env.getIdentifier()}, show_error = False) diff --git a/couchpotato/core/providers/torrent/base.py b/couchpotato/core/providers/torrent/base.py index fc2d35e2..79d5b1e6 100644 --- a/couchpotato/core/providers/torrent/base.py +++ b/couchpotato/core/providers/torrent/base.py @@ -1,9 +1,6 @@ from couchpotato.core.helpers.variable import getImdb, md5 from couchpotato.core.logger import CPLog from couchpotato.core.providers.base import YarrProvider -import cookielib -import traceback -import urllib2 log = CPLog(__name__) @@ -11,7 +8,6 @@ log = CPLog(__name__) class TorrentProvider(YarrProvider): type = 'torrent' - login_opener = None def imdbMatch(self, url, imdbId): if getImdb(url) == imdbId: @@ -28,30 +24,3 @@ class TorrentProvider(YarrProvider): return getImdb(data) == imdbId return False - - def login(self): - - try: - cookiejar = cookielib.CookieJar() - opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar)) - urllib2.install_opener(opener) - f = opener.open(self.urls['login'], self.getLoginParams()) - f.read() - f.close() - self.login_opener = opener - return True - except: - log.error('Failed to login %s: %s', (self.getName(), traceback.format_exc())) - - return False - - def loginDownload(self, url = '', nzb_id = ''): - try: - if not self.login_opener and not self.login(): - log.error('Failed downloading from %s', self.getName()) - return self.urlopen(url, opener = self.login_opener) - except: - log.error('Failed downloading from %s: %s', (self.getName(), traceback.format_exc())) - - def getLoginParams(self): - return ''