Make SceneAccess multiprovider
This commit is contained in:
@@ -2,13 +2,21 @@ from bs4 import BeautifulSoup
|
|||||||
from couchpotato.core.helpers.encoding import tryUrlencode, toUnicode
|
from couchpotato.core.helpers.encoding import tryUrlencode, toUnicode
|
||||||
from couchpotato.core.helpers.variable import tryInt
|
from couchpotato.core.helpers.variable import tryInt
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
|
from couchpotato.core.providers.base import MultiProvider
|
||||||
|
from couchpotato.core.providers.movie.base import MovieProvider
|
||||||
from couchpotato.core.providers.torrent.base import TorrentProvider
|
from couchpotato.core.providers.torrent.base import TorrentProvider
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
log = CPLog(__name__)
|
log = CPLog(__name__)
|
||||||
|
|
||||||
|
|
||||||
class SceneAccess(TorrentProvider):
|
class SceneAccess(MultiProvider):
|
||||||
|
|
||||||
|
def getTypes(self):
|
||||||
|
return [Movie]
|
||||||
|
|
||||||
|
|
||||||
|
class Base(TorrentProvider):
|
||||||
|
|
||||||
urls = {
|
urls = {
|
||||||
'test': 'https://www.sceneaccess.eu/',
|
'test': 'https://www.sceneaccess.eu/',
|
||||||
@@ -19,28 +27,26 @@ class SceneAccess(TorrentProvider):
|
|||||||
'download': 'https://www.sceneaccess.eu/%s',
|
'download': 'https://www.sceneaccess.eu/%s',
|
||||||
}
|
}
|
||||||
|
|
||||||
cat_ids = [
|
|
||||||
([22], ['720p', '1080p']),
|
|
||||||
([7], ['cam', 'ts', 'dvdrip', 'tc', 'r5', 'scr', 'brrip']),
|
|
||||||
([8], ['dvdr']),
|
|
||||||
]
|
|
||||||
|
|
||||||
http_time_between_calls = 1 #seconds
|
http_time_between_calls = 1 #seconds
|
||||||
|
|
||||||
def _search(self, movie, quality, results):
|
def _buildUrl(self, search, quality_identifier):
|
||||||
|
|
||||||
url = self.urls['search'] % (
|
url = self.urls['search'] % (
|
||||||
self.getCatId(quality['identifier'])[0],
|
self.getCatId(quality_identifier)[0],
|
||||||
self.getCatId(quality['identifier'])[0]
|
self.getCatId(quality_identifier)[0]
|
||||||
)
|
)
|
||||||
|
|
||||||
arguments = tryUrlencode({
|
arguments = tryUrlencode({
|
||||||
'search': movie['library']['identifier'],
|
'search': search,
|
||||||
'method': 1,
|
'method': 1,
|
||||||
})
|
})
|
||||||
url = "%s&%s" % (url, arguments)
|
url = "%s&%s" % (url, arguments)
|
||||||
|
|
||||||
|
return url
|
||||||
|
|
||||||
|
def _search(self, media, quality, results):
|
||||||
|
|
||||||
|
url = self.buildUrl(media, quality)
|
||||||
data = self.getHTMLData(url, opener = self.login_opener)
|
data = self.getHTMLData(url, opener = self.login_opener)
|
||||||
|
|
||||||
if data:
|
if data:
|
||||||
@@ -73,13 +79,6 @@ class SceneAccess(TorrentProvider):
|
|||||||
except:
|
except:
|
||||||
log.error('Failed getting results from %s: %s', (self.getName(), traceback.format_exc()))
|
log.error('Failed getting results from %s: %s', (self.getName(), traceback.format_exc()))
|
||||||
|
|
||||||
def getLoginParams(self):
|
|
||||||
return tryUrlencode({
|
|
||||||
'username': self.conf('username'),
|
|
||||||
'password': self.conf('password'),
|
|
||||||
'submit': 'come on in',
|
|
||||||
})
|
|
||||||
|
|
||||||
def getMoreInfo(self, item):
|
def getMoreInfo(self, item):
|
||||||
full_description = self.getCache('sceneaccess.%s' % item['id'], item['detail_url'], cache_timeout = 25920000)
|
full_description = self.getCache('sceneaccess.%s' % item['id'], item['detail_url'], cache_timeout = 25920000)
|
||||||
html = BeautifulSoup(full_description)
|
html = BeautifulSoup(full_description)
|
||||||
@@ -89,7 +88,28 @@ class SceneAccess(TorrentProvider):
|
|||||||
item['description'] = description
|
item['description'] = description
|
||||||
return item
|
return item
|
||||||
|
|
||||||
|
# Login
|
||||||
|
def getLoginParams(self):
|
||||||
|
return tryUrlencode({
|
||||||
|
'username': self.conf('username'),
|
||||||
|
'password': self.conf('password'),
|
||||||
|
'submit': 'come on in',
|
||||||
|
})
|
||||||
|
|
||||||
def loginSuccess(self, output):
|
def loginSuccess(self, output):
|
||||||
return '/inbox' in output.lower()
|
return '/inbox' in output.lower()
|
||||||
|
|
||||||
loginCheckSuccess = loginSuccess
|
loginCheckSuccess = loginSuccess
|
||||||
|
|
||||||
|
|
||||||
|
class Movie(Base, MovieProvider):
|
||||||
|
|
||||||
|
cat_ids = [
|
||||||
|
([22], ['720p', '1080p']),
|
||||||
|
([7], ['cam', 'ts', 'dvdrip', 'tc', 'r5', 'scr', 'brrip']),
|
||||||
|
([8], ['dvdr']),
|
||||||
|
]
|
||||||
|
|
||||||
|
def buildUrl(self, media, quality):
|
||||||
|
return self._buildUrl(media['library']['identifier'], quality['identifier'])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user