Browse Source

More login fixes

pull/1844/head
Ruud 12 years ago
parent
commit
9ce0c47cd4
  1. 17
      couchpotato/core/plugins/base.py
  2. 12
      couchpotato/core/providers/base.py
  3. 17
      couchpotato/core/providers/torrent/passthepopcorn/main.py
  4. 5
      couchpotato/core/providers/torrent/sceneaccess/main.py
  5. 4
      couchpotato/core/providers/torrent/scenehd/main.py

17
couchpotato/core/plugins/base.py

@ -114,6 +114,8 @@ class Plugin(object):
headers['Host'] = headers.get('Host', host)
headers['User-Agent'] = headers.get('User-Agent', self.user_agent)
headers['Accept-encoding'] = headers.get('Accept-encoding', 'gzip')
headers['Connection'] = headers.get('Connection', 'keep-alive')
headers['Cache-Control'] = headers.get('Cache-Control', 'max-age=0')
# Don't try for failed requests
if self.http_failed_disabled.get(host, 0) > 0:
@ -130,6 +132,10 @@ class Plugin(object):
self.wait(host)
try:
# Make sure opener has the correct headers
if opener:
opener.add_headers = headers
if multipart:
log.info('Opening multipart url: %s, params: %s', (url, [x for x in params.iterkeys()] if isinstance(params, dict) else 'with data'))
request = urllib2.Request(url, params, headers)
@ -143,7 +149,12 @@ class Plugin(object):
response = opener.open(request, timeout = timeout)
else:
log.info('Opening url: %s, params: %s', (url, [x for x in params.iterkeys()] if isinstance(params, dict) else 'with data'))
data = tryUrlencode(params) if len(params) > 0 else None
if isinstance(params, (str, unicode)) and len(params) > 0:
data = params
else:
data = tryUrlencode(params) if len(params) > 0 else None
request = urllib2.Request(url, data, headers)
if opener:
@ -156,8 +167,10 @@ class Plugin(object):
buf = StringIO(response.read())
f = gzip.GzipFile(fileobj = buf)
data = f.read()
f.close()
else:
data = response.read()
response.close()
self.http_failed_request[host] = 0
except IOError:
@ -230,7 +243,7 @@ class Plugin(object):
def getCache(self, cache_key, url = None, **kwargs):
cache_key = md5(ss(cache_key))
cache = Env.get('cache').get(cache_key)
cache = None #Env.get('cache').get(cache_key)
if cache:
if not Env.get('dev'): log.debug('Getting cache %s', cache_key)
return cache

12
couchpotato/core/providers/base.py

@ -106,7 +106,7 @@ class YarrProvider(Provider):
now = time.time()
if self.login_opener and self.last_login_check < (now - 3600):
try:
output = self.urlopen(self.urls['login_check'])
output = self.urlopen(self.urls['login_check'], opener = self.login_opener)
if self.loginCheckSuccess(output):
self.last_login_check = now
return True
@ -121,14 +121,10 @@ class YarrProvider(Provider):
try:
cookiejar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
opener.addheaders = [('User-Agent', self.user_agent)]
urllib2.install_opener(opener)
log.info2('Logging into %s', self.urls['login'])
f = opener.open(self.urls['login'], self.getLoginParams())
output = f.read()
f.close()
output = self.urlopen(self.urls['login'], params = self.getLoginParams(), opener = opener)
if self.loginSuccess(output):
self.last_login_check = now
self.login_opener = opener
return True
@ -171,7 +167,7 @@ class YarrProvider(Provider):
return []
# Login if needed
if self.urls.get('login') and (not self.login_opener and not self.login()):
if self.urls.get('login') and not self.login():
log.error('Failed to login to: %s', self.getName())
return []

17
couchpotato/core/providers/torrent/passthepopcorn/main.py

@ -3,13 +3,11 @@ from couchpotato.core.helpers.variable import getTitle, tryInt, mergeDicts
from couchpotato.core.logger import CPLog
from couchpotato.core.providers.torrent.base import TorrentProvider
from dateutil.parser import parse
import cookielib
import htmlentitydefs
import json
import re
import time
import traceback
import urllib2
log = CPLog(__name__)
@ -25,6 +23,8 @@ class PassThePopcorn(TorrentProvider):
'search': 'https://tls.passthepopcorn.me/search/%s/0/7/%d'
}
http_time_between_calls = 2
quality_search_params = {
'bd50': {'media': 'Blu-ray', 'format': 'BD50'},
'1080p': {'resolution': '1080p'},
@ -64,17 +64,8 @@ class PassThePopcorn(TorrentProvider):
'searchstr': movie['library']['identifier']
})
# Do login for the cookies
if not self.login():
return
try:
url = '%s?json=noredirect&%s' % (self.urls['torrent'], tryUrlencode(params))
txt = self.urlopen(url, opener = self.login_opener)
res = json.loads(txt)
except:
log.error('Search on PassThePopcorn.me (%s) failed (could not decode JSON)', params)
return
url = '%s?json=noredirect&%s' % (self.urls['torrent'], tryUrlencode(params))
res = self.getJsonData(url, opener = self.login_opener)
try:
if not 'Movies' in res:

5
couchpotato/core/providers/torrent/sceneaccess/main.py

@ -13,7 +13,7 @@ class SceneAccess(TorrentProvider):
urls = {
'test': 'https://www.sceneaccess.eu/',
'login': 'https://www.sceneaccess.eu/login',
'login_check': 'https://sceneaccess.eu/inbox',
'login_check': 'https://www.sceneaccess.eu/inbox',
'detail': 'https://www.sceneaccess.eu/details?id=%s',
'search': 'https://www.sceneaccess.eu/browse?method=2&c%d=%d',
'download': 'https://www.sceneaccess.eu/%s',
@ -40,9 +40,6 @@ class SceneAccess(TorrentProvider):
})
url = "%s&%s" % (url, arguments)
# Do login for the cookies
if not self.login():
return
data = self.getHTMLData(url, opener = self.login_opener)

4
couchpotato/core/providers/torrent/scenehd/main.py

@ -29,10 +29,6 @@ class SceneHD(TorrentProvider):
})
url = "%s&%s" % (self.urls['search'], arguments)
# Cookie login
if not self.login():
return
data = self.getHTMLData(url, opener = self.login_opener)
if data:

Loading…
Cancel
Save