From c4e6d7763e3c9f31316c778a5d9ed86c565a9709 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D1=80=D0=BE=D0=B4=D0=B8=D0=BD=20=D0=A0=D0=BE?= =?UTF-8?q?=D0=BC=D0=B0=D0=BD?= Date: Tue, 28 Apr 2020 22:24:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=BE=D0=B2=D0=B8=D0=BA?= =?UTF-8?q?=20RuTracker.=20SOCKS-=D0=BF=D1=80=D0=BE=D0=BA=D1=81=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA=20=D1=82=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D0=B5=D1=80=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addon.py | 6 +- addon.xml | 7 ++- .../resource.language.en_gb/strings.po | 8 +++ .../resource.language.ru_ru/strings.po | 8 +++ resources/lib/searchers/kinozal.py | 2 +- resources/lib/searchers/rutor.py | 25 ++++---- resources/lib/searchers/rutracker.py | 55 ++++++++++++++++++ resources/lib/utils/__init__.py | 9 ++- resources/media/searcher_rutracker.png | Bin 0 -> 46835 bytes resources/settings.xml | 7 +++ 10 files changed, 109 insertions(+), 18 deletions(-) create mode 100644 resources/lib/searchers/rutracker.py create mode 100644 resources/media/searcher_rutracker.png diff --git a/addon.py b/addon.py index 6552e87..6429f78 100644 --- a/addon.py +++ b/addon.py @@ -4,7 +4,7 @@ from codequick import Route, Script, Listitem, utils, run # @UnresolvedImport from codequick.storage import PersistentList # @UnresolvedImport import os.path import xbmcgui, xbmc -from resources.lib.searchers import rutor, kinozal +from resources.lib.searchers import rutor, kinozal, rutracker from resources.lib.utils import localize, store_torrent_file, get_engine from resources.lib.overrrides.session import torrent_file_fetch from resources.lib.player import VideoLoop @@ -13,7 +13,8 @@ video_extensions = ('.mp4', '.avi', '.3gp', '.ogv', '.mkv', '.ts', '.mpg', '.mpe search_engines = [ rutor.SearchEngine, - kinozal.SearchEngine + kinozal.SearchEngine, + rutracker.SearchEngine ] ROOT = os.path.abspath(os.path.dirname(__file__)) @@ -71,6 +72,7 @@ def search(plugin, search_query, thumb=None): for p, se in zip(range(0, 100, 100 / len(search_in)), search_in): progress.update(p, line1=se.name) found_items.extend(se().search(search_query)) + open('/tmp/t.t', 'w').write(repr(list(map(lambda x: x.url, found_items)))) res_items = [] for i in sorted(found_items, key=lambda x: x.seeders, reverse=True): if '2160p' in i.title: hd = '[2160p/{}] '.format(i.size) diff --git a/addon.xml b/addon.xml index 2a4d0bc..2a48df8 100644 --- a/addon.xml +++ b/addon.xml @@ -1,5 +1,5 @@ - + @@ -22,8 +22,9 @@ roman@ukamnya.ru all en_GB ru_RU - - 3.1.0: add searcher kinozal.tv - - 3.0.1: first rewrited version + - 3.2.0: Add searcher rutracker.org. Add socks-proxy for trackers + - 3.1.0: Add searcher kinozal.tv + - 3.0.1: First rewrited version true diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index 1eaed8e..fe0d4b1 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -31,6 +31,10 @@ msgctxt "#33003" msgid "Kinozal" msgstr "Kinozal" +msgctxt "#33004" +msgid "RuTracker" +msgstr "RuTracker" + msgctxt "#33011" msgid "Storage folder" msgstr "Storage folder" @@ -47,6 +51,10 @@ msgctxt "#33014" msgid "SOCKS port" msgstr "SOCKS port" +msgctxt "#33015" +msgid "Use SOCKS proxy for trackers" +msgstr "Use SOCKS proxy for trackers" + msgctxt "#33051" msgid "Please specify storage folder in Settings!" msgstr "Please specify storage folder in Settings" diff --git a/resources/language/resource.language.ru_ru/strings.po b/resources/language/resource.language.ru_ru/strings.po index 73c702f..eac6566 100644 --- a/resources/language/resource.language.ru_ru/strings.po +++ b/resources/language/resource.language.ru_ru/strings.po @@ -31,6 +31,10 @@ msgctxt "#33003" msgid "Kinozal" msgstr "Kinozal" +msgctxt "#33004" +msgid "RuTracker" +msgstr "RuTracker" + msgctxt "#33011" msgid "Storage folder" msgstr "Папка хранения" @@ -47,6 +51,10 @@ msgctxt "#33014" msgid "SOCKS port" msgstr "Порт SOCKS" +msgctxt "#33015" +msgid "Use SOCKS proxy for trackers" +msgstr "Использовать SOCKS-прокси для подключения к трекерам" + msgctxt "#33051" msgid "Please specify storage folder in Settings!" msgstr "Укажите папку хранения" diff --git a/resources/lib/searchers/kinozal.py b/resources/lib/searchers/kinozal.py index bc0fdf3..655299c 100644 --- a/resources/lib/searchers/kinozal.py +++ b/resources/lib/searchers/kinozal.py @@ -49,7 +49,7 @@ class SearchEngine(Searcher): self.cookies = cookies return True except: - notify('Kinozal.tv', localize(33056), local_image.format('searcher_kinozal.png')) + notify(self.name, localize(33056), local_image.format(self.icon)) return False def normalize_url(self, url): return url.encode('cp1251') diff --git a/resources/lib/searchers/rutor.py b/resources/lib/searchers/rutor.py index 9593104..57f526f 100644 --- a/resources/lib/searchers/rutor.py +++ b/resources/lib/searchers/rutor.py @@ -11,14 +11,17 @@ class SearchEngine(Searcher): url_constructor = urljoin_partial(self.base_url) rows = list(filter(lambda x: len(x.findall('.//a')) == 3, body.findall('.//tr'))) for r in rows: - links = r.findall('.//a') - url = url_constructor(links[0].get('href').strip()) - title = links[2].text - seeders = int(list(r.findall('.//span[@class="green"]')[0].itertext())[0].strip()) - leachers = int(list(r.findall('.//span[@class="red"]')[0].itertext())[0].strip()) - size = list( - list(filter(lambda x: len(list(x.itertext())) == 1 and list(x.itertext())[0].strip().endswith(('GB', 'MB')), - r.findall('.//td')) - )[0].itertext() - )[0].strip() - yield ResultItem(url, title, size, seeders, leachers, self.icon, self.cookies, self.base_url) + try: + links = r.findall('.//a') + url = url_constructor(links[0].get('href').strip()) + title = links[2].text + seeders = int(list(r.findall('.//span[@class="green"]')[0].itertext())[0].strip()) + leachers = int(list(r.findall('.//span[@class="red"]')[0].itertext())[0].strip()) + size = list( + list(filter(lambda x: len(list(x.itertext())) == 1 and list(x.itertext())[0].strip().endswith(('GB', 'MB')), + r.findall('.//td')) + )[0].itertext() + )[0].strip() + yield ResultItem(url, title, size, seeders, leachers, self.icon, self.cookies, self.base_url) + except: + continue diff --git a/resources/lib/searchers/rutracker.py b/resources/lib/searchers/rutracker.py new file mode 100644 index 0000000..dbbe548 --- /dev/null +++ b/resources/lib/searchers/rutracker.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +from . import Searcher, urljoin_partial, ResultItem +from ..settings import option +from ..utils import notify, localize +from codequick.listing import local_image # @UnresolvedImport + +class SearchEngine(Searcher): + base_url = option['rutracker_url'] + search_path = '/forum/tracker.php?nm={}' + name = 'RuTracker.org' + icon = 'searcher_rutracker.png' + enabled = option.get_boolean('rutracker_enable') # @UndefinedVariable + def prepare(self): + if self.cookies: + bb_session = self.cookies.get('bb_session', None) + if bb_session: + return True + return self.login() + def process(self, body): + url_constructor = urljoin_partial(self.base_url) + rows = body.findall('.//div[@id="search-results"]/table/tbody/tr') + for r in rows: + link = list(filter(lambda x: 't-title' in x.attrib['class'], r.findall('.//td')))[0].find('.//a') + url_part = link.get('href').strip().split('=')[1] + url = url_constructor(u'/forum/dl.php?t={}'.format(url_part)) + title = link.text + seeders_el = r.find('.//*[@class="seedmed"]') + seeders = int(seeders_el.text.strip() if seeders_el is not None else 0) + leachers = int(list(filter(lambda x: 'leechmed' in x.attrib['class'], r.findall('.//td')))[0].text.strip()) + size = ' '.join(list(filter(lambda x: 't-title' in x.attrib['class'], r.findall('.//td')))[0].find('.//a').text.strip().split(' ')[:2]) + yield ResultItem(url, title, size, seeders, leachers, self.icon, self.cookies, self.base_url) + def login(self): + user = option['rutracker_login'] + password = option['rutracker_password'] + try: + if not user or not password: + raise Exception + resp = self.session.post('{}/forum/login.php'.format(self.base_url), data={'login_username': user, + 'login_password': password, + 'login': '%C2%F5%EE%E4', + 'redirect': 'index.php'}, + cookies={}, headers=self.headers, allow_redirects=False) + if not resp.ok: + raise Exception + cookies = resp.cookies + bb_session = cookies.get('bb_session', None) + if not bb_session: + raise Exception + self.cookies = cookies + return True + except: + notify(self.name, localize(33056), local_image.format(self.icon)) + return False + def normalize_url(self, url): + return url.encode('cp1251') diff --git a/resources/lib/utils/__init__.py b/resources/lib/utils/__init__.py index 3c71479..348ce0b 100644 --- a/resources/lib/utils/__init__.py +++ b/resources/lib/utils/__init__.py @@ -39,10 +39,17 @@ def file_url(path): return path def get_engine(torrent_uri): + if option.get_boolean('use_socks_for_trackers'): # @UndefinedVariable + proxy = { + 'host': option['socks_ip'], + 'port': int(option['socks_port']) + } + else: + proxy = None return Engine(uri=file_url(torrent_uri), download_path=storage_download_dir, encryption=1, keep_complete=False, keep_incomplete=False, dht_routers=["router.bittorrent.com:6881", "router.utorrent.com:6881"], use_random_port=False, listen_port=6881, - user_agent='', enable_dht=True) + user_agent='', enable_dht=True, proxy=proxy) while not option['storage_dir']: dialog = xbmcgui.Dialog() dialog.ok(localize(33000), localize(33051)) diff --git a/resources/media/searcher_rutracker.png b/resources/media/searcher_rutracker.png new file mode 100644 index 0000000000000000000000000000000000000000..cee4f02f567fae74b6c1b89b0781d997e77135a5 GIT binary patch literal 46835 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 literal 0 HcmV?d00001 diff --git a/resources/settings.xml b/resources/settings.xml index 00220f5..352134f 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -5,6 +5,7 @@ + @@ -16,4 +17,10 @@ + + + + + +