Skip to content

Commit 6bd9fc3

Browse files
committed
init
1 parent 51aeba6 commit 6bd9fc3

File tree

5 files changed

+93
-6
lines changed

5 files changed

+93
-6
lines changed

burst/burst.py

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,34 @@ def got_results(provider, results):
259259
if definition['name'] in provider_names:
260260
provider_names.remove(definition['name'])
261261

262+
def extract_torrents_via_proxy(provider, client, query):
263+
api_url = "http://192.168.2.6:7070/search?query=%s" % query
264+
265+
username = get_setting('%s_username' % provider, unicode)
266+
password = get_setting('%s_password' % provider, unicode)
267+
268+
response = requests.post(api_url, headers={"Accept": "application/json"}, json={
269+
"username": username,
270+
"password": password
271+
})
272+
273+
if response.status_code == 200:
274+
torrents = response.json()
275+
276+
for item in torrents:
277+
name = item.get("name", "")
278+
torrent_id = item.get("torrentId", "")
279+
size = item.get("size", "")
280+
seeds = item.get("seeds", "")
281+
peers = item.get("peers", "")
282+
283+
log.debug(f"{name} | {size} | Seeds: {seeds} | Peers: {peers}")
284+
285+
ret = (name, "", "http://192.168.2.6:7070/fetch?torrentId=%s" % torrent_id, size, seeds, peers)
286+
yield ret
287+
288+
else:
289+
log.debug(f"Error {response.status_code}: {response.text}")
262290

263291
def extract_torrents(provider, client):
264292
""" Main torrent extraction generator for non-API based providers
@@ -703,9 +731,17 @@ def run_provider(provider, payload, method, start_time, timeout):
703731
filterInstance.use_general(provider, payload)
704732

705733
if 'is_api' in definitions[provider]:
706-
results = process(provider=provider, generator=extract_from_api, filtering=filterInstance, has_special=payload['has_special'], skip_auth=payload['skip_auth'], start_time=start_time, timeout=timeout, is_silent=payload['silent'])
734+
results = process(provider=provider, generator=extract_from_api, filtering=filterInstance,
735+
has_special=payload['has_special'], skip_auth=payload['skip_auth'], start_time=start_time,
736+
timeout=timeout, is_silent=payload['silent'])
737+
elif 'is_proxy' in definitions[provider]:
738+
results = process(provider=provider, generator=extract_torrents_via_proxy, filtering=filterInstance,
739+
has_special=payload['has_special'], skip_auth=payload['skip_auth'], start_time=start_time,
740+
timeout=timeout, is_silent=payload['silent'])
707741
else:
708-
results = process(provider=provider, generator=extract_torrents, filtering=filterInstance, has_special=payload['has_special'], skip_auth=payload['skip_auth'], start_time=start_time, timeout=timeout, is_silent=payload['silent'])
742+
results = process(provider=provider, generator=extract_torrents, filtering=filterInstance,
743+
has_special=payload['has_special'], skip_auth=payload['skip_auth'], start_time=start_time,
744+
timeout=timeout, is_silent=payload['silent'])
709745

710746
# Cleanup results from duplcates before limiting each provider's results.
711747
results = cleanup_results(results)

burst/provider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ def process(provider, generator, filtering, has_special, verify_name=True, verif
344344
try:
345345
filtering.results.extend(
346346
generate_payload(provider,
347-
generator(provider, client),
347+
generator(provider, client, query),
348348
filtering,
349349
verify_name,
350350
verify_size))

burst/providers/providers.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,46 @@
9696
"tv_keywords_fallback2": "{title:original:en} season {season}",
9797
"tv_keywords_fallback3": "{title:original:en} {season:2}x01"
9898
},
99+
"sktorrent": {
100+
"enabled": true,
101+
"predefined": false,
102+
"private": true,
103+
"is_proxy": true,
104+
"name": "SKTorrent",
105+
"languages": "en",
106+
"anime_extra": "",
107+
"anime_keywords": "{title:original} {episode}",
108+
"anime_query": "",
109+
"base_url": "https://www.sktorrent.eu/torrent/torrents.php?search=QUERYEXTRA&category=0&jazyk=&active=0",
110+
"color": "FFFFFFFF",
111+
"general_extra": "",
112+
"general_keywords": "{title:original}",
113+
"general_query": "0",
114+
"language": null,
115+
"login_failed": "",
116+
"login_object": "",
117+
"login_path": "",
118+
"movie_extra": "",
119+
"movie_keywords": "{title:original} {year}",
120+
"movie_query": "",
121+
"parser": {
122+
"row": "find_once(tag='table', select=('class', 'lista')).find('tbody').find_all('td', select=('class', 'lista'))",
123+
"name": "item('a', order=1)",
124+
"torrent": "'https://sktorrent.eu/torrent/%s' % item(tag='a', attribute='href', order=1)"
125+
},
126+
"season_extra": "",
127+
"season_extra2": "",
128+
"season_keywords": "{title:original} Season_{season}",
129+
"season_keywords2": "{title:original} Season{season}",
130+
"season_query": "",
131+
"separator": "%20",
132+
"show_query": "",
133+
"subpage": false,
134+
"tv_extra": "",
135+
"tv_extra2": "",
136+
"tv_keywords": "{title:original} s{season:2}e{episode:2}",
137+
"tv_keywords2": "{title:original} s{season:2}"
138+
},
99139
"3dtrackerru": {
100140
"anime_extra": "",
101141
"anime_keywords": "",

resources/settings.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,12 @@
306306
<setting id="rutracker_alias" label="32077" type="text" default="" subsetting="true" visible="eq(-3,true)" />
307307
<setting id="rutracker_contains" type="enum" label="32080" subsetting="true" lvalues="32081|32082|32083" visible="eq(-4,true)" />
308308

309+
<setting label="[B]SKTorrent[/B] [COLOR gray][$ADDON[script.elementum.burst 32111]][/COLOR]" id="use_sktorrent" type="bool" default="false" />
310+
<setting id="sktorrent_username" label="32015" type="text" default="" subsetting="true" visible="eq(-1,true)" />
311+
<setting id="sktorrent_password" label="32016" type="text" default="" option="hidden" subsetting="true" visible="eq(-2,true)" />
312+
<setting id="sktorrent_alias" label="32077" type="text" default="" subsetting="true" visible="eq(-3,true)" />
313+
<setting id="sktorrent_contains" type="enum" label="32080" subsetting="true" lvalues="32081|32082|32083" visible="eq(-4,true)" />
314+
309315
<setting label="[B]Torrent.lt[/B] [COLOR gray][$ADDON[script.elementum.burst 32127]][/COLOR]" id="use_torrentlt" type="bool" default="false" />
310316
<setting id="torrentlt_username" label="32015" type="text" default="" subsetting="true" visible="eq(-1,true)" />
311317
<setting id="torrentlt_password" label="32016" type="text" default="" option="hidden" subsetting="true" visible="eq(-2,true)" />

scripts/generate_settings.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,11 @@ def get_languages(langs):
200200
return res
201201

202202

203-
cleanup_settings(os.path.join('resources', 'settings.xml'))
204-
load_providers(os.path.join('burst', 'providers', 'providers.json'))
205-
store_providers(os.path.join('resources', 'settings.xml'))
203+
base_dir = os.path.dirname(os.path.abspath(__file__))
204+
205+
# Traverse up to the root directory
206+
root_dir = os.path.abspath(os.path.join(base_dir, '..'))
207+
208+
cleanup_settings(os.path.join(root_dir, 'resources', 'settings.xml'))
209+
load_providers(os.path.join(root_dir, 'burst', 'providers', 'providers.json'))
210+
store_providers(os.path.join(root_dir, 'resources', 'settings.xml'))

0 commit comments

Comments
 (0)