@@ -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
263291def 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 )
0 commit comments