From d125563e2b05bfa1618ddd4746bb5053d201f592 Mon Sep 17 00:00:00 2001 From: JackDandy Date: Wed, 11 Oct 2017 02:05:58 +0100 Subject: [PATCH] Change improve PA torrent access. --- CHANGES.md | 7 ++++- sickbeard/providers/limetorrents.py | 17 ++++++++++- sickbeard/providers/thepiratebay.py | 47 ++++++++++++++++++++++++++++- sickbeard/providers/torlock.py | 11 ++++++- sickbeard/providers/torrentbytes.py | 2 +- sickbeard/providers/torrentday.py | 15 ++++++++- sickbeard/providers/torrentz2.py | 31 ++++++++++++++++++- 7 files changed, 123 insertions(+), 7 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 2a826064..9339120e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,9 @@ -### 0.12.31 (2017-10-06 22:30:00 UTC) +### 0.12.32 (2017-10-11 02:05:00 UTC) + +* Change improve PA torrent access + + +### 0.12.31 (2017-10-06 22:30:00 UTC) * Change improve handling of connection failures for metadata during media processing diff --git a/sickbeard/providers/limetorrents.py b/sickbeard/providers/limetorrents.py index 49e0db2f..7d55dad7 100644 --- a/sickbeard/providers/limetorrents.py +++ b/sickbeard/providers/limetorrents.py @@ -15,6 +15,7 @@ # You should have received a copy of the GNU General Public License # along with SickGear. If not, see . +import base64 import re import traceback import urllib @@ -31,7 +32,21 @@ class LimeTorrentsProvider(generic.TorrentProvider): def __init__(self): generic.TorrentProvider.__init__(self, 'LimeTorrents') - self.url_home = ['https://www.limetorrents.cc/', 'https://limetorrents.usbypass.xyz/'] + self.url_home = ['https://www.limetorrents.cc/'] + \ + ['https://%s/' % base64.b64decode(x) for x in [''.join(x) for x in [ + [re.sub('[f\sX]+', '', x[::-1]) for x in [ + 'tlXGfb', '1X5SfZ', 'sfJfmb', 'rN 2Xb', 'u QfWZ', 's9G b']], + [re.sub('[ \ss]+', '', x[::-1]) for x in [ + 'Ztl Gsb', 'nc svRX', 'Rs nblJ', '5 JmLz', 'czsFsGc', 'nLskVs2', '0s N']], + [re.sub('[1\sF]+', '', x[::-1]) for x in [ + 'X Zt1lGb', 'l1Jn1cvR', 'mL11zRnb', 'uVXbtFFl', 'Hdp NWFa', '=1FQ3cuk']], + [re.sub('[y\sW]+', '', x[::-1]) for x in [ + 'XWZtlyGb', 'lJnyWcvR', 'nyLzRn b', 'vxmYWuWV', 'CWZlt2yY', '== Adyz5']], + [re.sub('[j\sy]+', '', x[::-1]) for x in [ + 'XyZtlG b', 'lJjnjcvR', 'njLz Rnb', 'vjxmYyuV', 'Gbyhjt2Y', 'n jJ3buw']], + [re.sub('[o\sg]+', '', x[::-1]) for x in [ + 'XZt lgGb', 'loJn cvR', 'ngLz Rnb', 'v xgmYuV', 'Gbh t2gY', '6l Heu w']], + ]]] self.url_vars = {'search': 'search/tv/%s/', 'browse': 'browse-torrents/TV-shows/'} self.url_tmpl = {'config_provider_home_uri': '%(home)s', 'search': '%(home)s%(vars)s', diff --git a/sickbeard/providers/thepiratebay.py b/sickbeard/providers/thepiratebay.py index 179dd353..e84b2d25 100644 --- a/sickbeard/providers/thepiratebay.py +++ b/sickbeard/providers/thepiratebay.py @@ -17,6 +17,7 @@ from __future__ import with_statement +import base64 import os import re import traceback @@ -37,7 +38,51 @@ class ThePirateBayProvider(generic.TorrentProvider): generic.TorrentProvider.__init__(self, 'The Pirate Bay', cache_update_freq=20) self.url_home = ['https://thepiratebay.%s/' % u for u in 'se', 'org'] + \ - ['https://piratebay.usbypass.club/', 'https://tpb.run/'] + ['https://%s/' % base64.b64decode(x) for x in [''.join(x) for x in [ + [re.sub('[t\sG]+', '', x[::-1]) for x in [ + 'mGGY', '5tGF', 'HGtc', 'vGGJ', 'Htte', 'uG k', '2GGd', 'uGtl']], + [re.sub('[t\sR]+', '', x[::-1]) for x in [ + 'uF2R a', 'it VWe', 'uk XRY', 'uR82RY', 'vt sWd', 'vR x2P', '9QWtRY']], + [re.sub('[n\sJ]+', '', x[::-1]) for x in [ + 'lGJnc', 'XJY y', 'YJlJR', '5 Fm', '5 niM', 'm cJv', '= Jc']], + [re.sub('[S\sp]+', '', x[::-1]) for x in [ + 'XYySSlGc', '5FmSYl R', 'CdzF SmZ', '15ypbSj5', 'Gb/8pSya', '=0DppZh9']], + [re.sub('[1\sz]+', '', x[::-1]) for x in [ + 'XYzy lGc', '5zFm1YlR', '2Yp1VzXc', 'u812 Yus', '2PvszW1d', '91zQWYvx']], + [re.sub('[P\sT]+', '', x[::-1]) for x in [ + 'lGPPc', 'XYP y', 'c l R', 'vTJTH', 'kT He', 'GdTPu', 'wPP9']], + [re.sub('[Y\sr]+', '', x[::-1]) for x in [ + 'J rHc', 'Hrrev', 'awYYl', 'hJYYX', 'U YGd', 'Gdr u', 'wr 9']], + [re.sub('[R\sk]+', '', x[::-1]) for x in [ + 'vJRkHc', '0 lHRe', 'uR IGc', 'iV2RRd', '0kl2Rc', '==kQ Z']], + [re.sub('[p\sz]+', '', x[::-1]) for x in [ + 'Hppc', '4pzJ', 'Sppe', 'wzz5', 'XppY', '0 zJ', 'Q pe', '=pz=']], + [re.sub('[p\si]+', '', x[::-1]) for x in [ + 'hGpid', 'Gai l', 'Z kpl', 'u ViG', 'FpmiY', 'mLii5', 'j N']], + [re.sub('[g\ss]+', '', x[::-1]) for x in [ + 'lhGgsd', 'ngFW b', '0s Vmb', '5sFmgY', 'uglsmL', '=8 m Z']], + [re.sub('[I\ss]+', '', x[::-1]) for x in [ + 'clIhsGd', 'X IYylG', 'Fm Yl R', '5IJmsL5', 'cszFGIc', 'nsLkIV2', '0I N']], + [re.sub('[ \sq]+', '', x[::-1]) for x in [ + 'GqclhG d', 'lR XqYyl', 'mL5Fm qY', 'uVXbt l', 'HdqpNqWa', '=Q3cuq k']], + [re.sub('[k\sK]+', '', x[::-1]) for x in [ + 'GKclh Gd', 'lRXKYyKl', 'nL5F mKY', 'vxmYkKuV', 'CZlKKt2Y', '=kw2bsk5']], + [re.sub('[f\si]+', '', x[::-1]) for x in [ + 'Gicl hGd', 'lRXiYfyl', 'nL5F imY', 'vximYfuV', 'CZlft 2Y', '==Adffz5']], + [re.sub('[j\sz]+', '', x[::-1]) for x in [ + 'G c lhGd', 'lRXYjy l', 'nL5FmjjY', 'v xmzYuV', 'Gbh t2 Y', 'nJ 3zbuw']], + [re.sub('[p\sH]+', '', x[::-1]) for x in [ + 'lHRXYylpGc', 'uVnL5FmY', 'yB3aj9HGpb', '1x2HYuo2b', 'spNmYwRnY', 'ulmLuFHWZ', '=8mZ']], + [re.sub('[1\sf]+', '', x[::-1]) for x in [ + 'H d', 'w1 B', 'm fc', '4 19', 'S e', 'z115', 'Xffa', 'l 1R']], + [re.sub('[r\sn]+', '', x[::-1]) for x in [ + 'Hr d', 'irnB', 'Hnrc', 'vn J', 'Hrne', 'u rk', '2rnd', 'unrl']], + [re.sub('[s\sZ]+', '', x[::-1]) for x in [ + 'H sd', 'iZ B', 'nssc', 'u V', 'nZZL', 'pZsd', 'g sb', '= s=']], + ]]] + ['http://%s' % base64.b64decode(x) for x in [''.join(x) for x in [ + [re.sub('[q\sk]+', '', x[::-1]) for x in [ + 'mkYh5k2a', 'rR n LuV', '2avM3 L', 'vdGcqklV', 'nLnq5qWa', '19kDqcoB', '9kwm c']], + ]]] self.url_vars = {'search': 'search/%s/0/7/200', 'browse': 'tv/latest/'} self.url_tmpl = {'config_provider_home_uri': '%(home)s', 'search': '%(home)s%(vars)s', diff --git a/sickbeard/providers/torlock.py b/sickbeard/providers/torlock.py index b5b561b8..9d8c2e75 100644 --- a/sickbeard/providers/torlock.py +++ b/sickbeard/providers/torlock.py @@ -15,6 +15,7 @@ # You should have received a copy of the GNU General Public License # along with SickGear. If not, see . +import base64 import re import traceback import urllib @@ -31,7 +32,15 @@ class TorLockProvider(generic.TorrentProvider): def __init__(self): generic.TorrentProvider.__init__(self, 'TorLock') - self.url_home = ['https://www.torlock.com/'] + self.url_home = ['https://www.torlock.com/'] + \ + ['https://%s/' % base64.b64decode(x) for x in [''.join(x) for x in [ + [re.sub('[X\sI]+', '', x[::-1]) for x in [ + 'yX9G d', 'j9 IGb', '1 I5ya', 'sJmX b', 'rN2I b', 'uQXXWZ', '0IVmIY']], + [re.sub('[w\sP]+', '', x[::-1]) for x in [ + 'y9PPGd', 'jPw9Gb', '1wP5ya', 's JmPb', 'rPN2wb', 'uQPPWZ', 'klm wY']], + [re.sub('[g\sv]+', '', x[::-1]) for x in [ + 'yB Dgd', 'jgg9Gb', '1vv5ya', 'svvJmb', 'rN2vgb', 'uQ vWZ', 'sg9 Gb']], + ]]] self.url_vars = {'search': 'television/torrents/%s.html?sort=added&order=desc', 'browse': 'television/1/added/desc.html', 'get': 'tor/%s.torrent'} diff --git a/sickbeard/providers/torrentbytes.py b/sickbeard/providers/torrentbytes.py index bb072acb..0a699fa0 100644 --- a/sickbeard/providers/torrentbytes.py +++ b/sickbeard/providers/torrentbytes.py @@ -30,7 +30,7 @@ class TorrentBytesProvider(generic.TorrentProvider): def __init__(self): generic.TorrentProvider.__init__(self, 'TorrentBytes', cache_update_freq=20) - self.url_home = ['https://www.torrentbytes.net/'] + self.url_home = ['https://www.torrentbytes.%s/' % u for u in 'net', 'me'] self.url_vars = {'login_action': 'login.php', 'search': 'browse.php?search=%s&%s', 'get': '%s'} self.url_tmpl = {'config_provider_home_uri': '%(home)s', 'login_action': '%(home)s%(vars)s', diff --git a/sickbeard/providers/torrentday.py b/sickbeard/providers/torrentday.py index a28c1e84..1ea31637 100644 --- a/sickbeard/providers/torrentday.py +++ b/sickbeard/providers/torrentday.py @@ -15,6 +15,7 @@ # You should have received a copy of the GNU General Public License # along with SickGear. If not, see . +import base64 import re import time @@ -29,7 +30,19 @@ class TorrentDayProvider(generic.TorrentProvider): generic.TorrentProvider.__init__(self, 'TorrentDay') self.url_home = ['https://%s/' % u for u in 'torrentday.eu', 'secure.torrentday.com', 'tdonline.org', - 'torrentday.it', 'www.td.af', 'www.torrentday.com'] + 'torrentday.it', 'www.td.af', 'www.torrentday.com'] + \ + ['http://td.%s/' % base64.b64decode(x) for x in [''.join(x) for x in [ + [re.sub('(?i)[I\s1]+', '', x[::-1]) for x in [ + 'y92d', 'zl12a', 'y9mY', 'n5 Wa', 'vNmIL', '=i1=Qb']], + [re.sub('(?i)[T\sq]+', '', x[::-1]) for x in [ + '15TWd', 'hV 3c', 'lBHb', 'vNncq', 'j5ib', '=qQ02b']], + [re.sub('(?i)[0\so]+', '', x[::-1]) for x in [ + 'Vmco', 'CZh', 'boi10', 'r92', '5yc', 'mcv', '=oc']], + [re.sub('(?i)[1\slq]+', '', x[::-1]) for x in [ + '2cql', 'yV1', 'mdlq', 'wQV', 'n11M', 'uA', '12Y', 't9']], + [re.sub('(?i)[\s1q]+', '', x[::-1]) for x in [ + 'Vmbq', 'WL10', 'ZyZ', 'rFW', '5yc', '12bj', 'q=0']] + ]]] self.url_vars = {'login': 'rss.php', 'search': 'browse.php?cata=yes&%s%s&search=%s%s', 'get': '%s'} self.url_tmpl = {'config_provider_home_uri': '%(home)s', 'login': '%(home)s%(vars)s', diff --git a/sickbeard/providers/torrentz2.py b/sickbeard/providers/torrentz2.py index 5b140d29..55d22cc6 100644 --- a/sickbeard/providers/torrentz2.py +++ b/sickbeard/providers/torrentz2.py @@ -15,6 +15,7 @@ # You should have received a copy of the GNU General Public License # along with SickGear. If not, see . +import base64 import re import time import traceback @@ -32,7 +33,35 @@ class Torrentz2Provider(generic.TorrentProvider): def __init__(self): generic.TorrentProvider.__init__(self, 'Torrentz2') - self.url_home = ['https://torrentz2.eu/'] + self.url_home = ['https://torrentz2.eu/'] + \ + ['https://%s/' % base64.b64decode(x) for x in [''.join(x) for x in [ + [re.sub('[ \sQ]+', '', x[::-1]) for x in [ + 'GQQd', 'yQQ9', 'mQ c', 'uQ V', 'HQd', 'yQ o', 'm L', 'z Ql']], + [re.sub('[S\sl]+', '', x[::-1]) for x in [ + 'Glld', 'yll9', 'ml c', 'uSlV', 'HS d', 'yl o', 'mSSL', 'jS N']], + [re.sub('[1\sq]+', '', x[::-1]) for x in [ + 'G qd', 'y 9', 'm1qc', 'u1 V', 'H 1d', 'yqqo', 'n1qL', '21 R']], + [re.sub('[F\sf]+', '', x[::-1]) for x in [ + 'G fd', 'y 9', 'm c', 'u FV', 'H Fd', 'uf o', 'nffY', '=fFo']], + [re.sub('[j\sF]+', '', x[::-1]) for x in [ + 'cy9F Gd', 'HFdFuVm', 'lnFYu o', 'zNXFY w', 'Yu jQWZ', 'AbFv9F2', '=FF=']], + [re.sub('[K\sP]+', '', x[::-1]) for x in [ + 'yK9 Gd', 'uVm Pc', 'uoH Pd', 'w lnY', 'zP NXY', 'uQ PWZ', '=QK3Pc']], + [re.sub('[R\sh]+', '', x[::-1]) for x in [ + 'cyhR9Gd', 'HRdhuVm', '1hWaRuo', 'p5RWdRt', 'e0l2h Y', 'Adz h5S', '= R=']], + [re.sub('[K\s ]+', '', x[::-1]) for x in [ + 'cKy9G d', 'Hdu KVm', 'tWdu o', 'sJKKmb1', 'Lr N 2b', 'g bKl1m', '= K=']], + [re.sub('[s\sx]+', '', x[::-1]) for x in [ + 'cy 9G d', 'HdxxuVm', '5xWsduo', 'j9Gb si', 'L skV2a', 'AZp Jsm', '=s =']], + [re.sub('[P\s ]+', '', x[::-1]) for x in [ + 'cy9 PGd', 'H duPVm', '5WdPu o', 'jP 9Gbi', 'LPkV 2a', 'APbvx m', '=PP=']], + [re.sub('[X\sP]+', '', x[::-1]) for x in [ + 'yP9XGd', 'uVm Pc', 'uX oHd', 'i X5Wd', 'j 9GXb', 'k VX2a', '0PXNnL']], + [re.sub('[w\sf]+', '', x[::-1]) for x in [ + 'cwy9Gfd', 'H duV m', '5Wfwduo', 'j9G bfi', 'bsFw2 a', 'mwcfv5C', '=ffc']], + [re.sub('[Z\sj]+', '', x[::-1]) for x in [ + 'm cjy9Gd', 'uZoHduZV', '2bs5jWZd', 'vJZHcZrN', 'XYw 5 ia', '==Qejj0J']], + ]]] self.url_vars = {'search': 'searchA?f=%s&safe=1', 'searchv': 'verifiedA?f=%s&safe=1'} self.url_tmpl = {'config_provider_home_uri': '%(home)s',