Private GIT

Skip to content
Snippets Groups Projects
Commit 64bd4049 authored by miigotu's avatar miigotu
Browse files

Merge pull request #2469 from SiCKRAGETV/use-params-parameter-in-providers

Fix header problem with torrent providers. Many need a real browser a…
parents f40962c3 89d328bf
No related branches found
No related tags found
No related merge requests found
......@@ -24,11 +24,13 @@ import os
import re
import itertools
import urllib
import random
from random import shuffle
from base64 import b16encode, b32decode
import sickbeard
import requests
from hachoir_parser import createParser
import sickbeard
from sickbeard import helpers, classes, logger, db
from sickbeard.common import MULTI_EP_RESULT, SEASON_RESULT, USER_AGENT
from sickbeard import tvcache
......@@ -36,15 +38,16 @@ from sickbeard import encodingKludge as ek
from sickbeard.exceptions import ex
from sickbeard.name_parser.parser import NameParser, InvalidNameException, InvalidShowException
from sickbeard.common import Quality
from sickbeard.common import user_agents
from hachoir_parser import createParser
from base64 import b16encode, b32decode
class GenericProvider:
NZB = "nzb"
TORRENT = "torrent"
def __init__(self, name):
# these need to be set in the subclass
self.providerType = None
self.name = name
......@@ -71,7 +74,8 @@ class GenericProvider:
self.session = requests.Session()
self.headers = {'User-Agent': USER_AGENT}
shuffle(user_agents)
self.headers = {'User-Agent': user_agents[0]}
self.btCacheURLS = [
'http://torcache.net/torrent/{torrent_hash}.torrent',
......@@ -81,7 +85,7 @@ class GenericProvider:
#'http://itorrents.org/torrent/{torrent_hash}.torrent',
]
random.shuffle(self.btCacheURLS)
shuffle(self.btCacheURLS)
def getID(self):
return GenericProvider.makeID(self.name)
......
......
......@@ -124,8 +124,6 @@ class LibertaliaProvider(generic.TorrentProvider):
if any(requests.utils.dict_from_cookiejar(self.session.cookies).values()):
return True
self.headers.update({'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/17.0.940.0 Safari/535.8'})
login_params = {'username': self.username,
'password': self.password
}
......
......
......@@ -65,8 +65,6 @@ class NextGenProvider(generic.TorrentProvider):
self.last_login_check = None
self.login_opener = None
self.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20130519 Firefox/24.0)'}
def isEnabled(self):
return self.enabled
......@@ -96,7 +94,7 @@ class NextGenProvider(generic.TorrentProvider):
now = time.time()
if self.login_opener and self.last_login_check < (now - 3600):
try:
output = self.getURL(self.urls['test'], headers=self.headers)
output = self.getURL(self.urls['test'])
if self.loginSuccess(output):
self.last_login_check = now
return True
......@@ -110,10 +108,10 @@ class NextGenProvider(generic.TorrentProvider):
try:
login_params = self.getLoginParams()
data = self.getURL(self.urls['login_page'], headers=self.headers)
data = self.getURL(self.urls['login_page'])
with BS4Parser(data) as bs:
csrfraw = bs.find('form', attrs={'id': 'login'})['action']
output = self.getURL(self.urls['base_url'] + csrfraw, headers=self.headers, post_data=login_params)
output = self.getURL(self.urls['base_url'] + csrfraw, post_data=login_params)
if self.loginSuccess(output):
self.last_login_check = now
......@@ -192,7 +190,7 @@ class NextGenProvider(generic.TorrentProvider):
searchURL = self.urls['search'] % (urllib.quote(search_string.encode('utf-8')), self.categories)
logger.log(u"" + self.name + " search page URL: " + searchURL, logger.DEBUG)
data = self.getURL(searchURL, headers=self.headers)
data = self.getURL(searchURL)
if not data:
continue
......
......
......@@ -85,8 +85,6 @@ class RarbgProvider(generic.TorrentProvider):
self.cache = RarbgCache(self)
self.headers = {'User-Agent': USER_AGENT}
def isEnabled(self):
return self.enabled
......@@ -99,7 +97,7 @@ class RarbgProvider(generic.TorrentProvider):
resp_json = None
response = self.getURL(self.urls['token'], timeout=30, headers=self.headers, json=True)
response = self.getURL(self.urls['token'], timeout=30, json=True)
if not response:
logger.log(u'Unable to connect to %s provider.' % self.name, logger.WARNING)
return False
......
......
......@@ -75,7 +75,7 @@ class TitansOfTVProvider(generic.TorrentProvider):
search_url = self.url + '?' + urllib.urlencode(params)
logger.log(u'Search url: %s' % search_url)
parsedJSON = self.getURL(search_url, headers=self.headers, json=True) # do search
parsedJSON = self.getURL(search_url, json=True) # do search
if not parsedJSON:
logger.log(u'No data returned from ' + self.name, logger.ERROR)
......
......
......@@ -130,8 +130,6 @@ class XthorProvider(generic.TorrentProvider):
if any(requests.utils.dict_from_cookiejar(self.session.cookies).values()):
return True
self.headers.update({'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/17.0.940.0 Safari/535.8'})
login_params = {'username': self.username,
'password': self.password,
'submitme': 'X'
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment