quasarr 1.17.0__tar.gz → 1.17.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of quasarr might be problematic. Click here for more details.
- {quasarr-1.17.0 → quasarr-1.17.1}/PKG-INFO +1 -1
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/by.py +17 -12
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/version.py +1 -1
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr.egg-info/PKG-INFO +1 -1
- {quasarr-1.17.0 → quasarr-1.17.1}/LICENSE +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/README.md +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/api/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/api/arr/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/api/captcha/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/api/config/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/api/sponsors_helper/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/api/statistics/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/linkcrypters/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/linkcrypters/al.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/linkcrypters/filecrypt.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/linkcrypters/hide.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/packages/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/al.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/dd.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/dt.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/dw.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/mb.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/nx.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/sf.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/sl.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/downloads/sources/wd.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/cloudflare.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/html_images.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/html_templates.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/imdb_metadata.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/log.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/myjd_api.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/notifications.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/obfuscated.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/sessions/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/sessions/al.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/sessions/dd.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/sessions/nx.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/shared_state.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/statistics.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/providers/web_server.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/al.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/by.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/dd.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/dt.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/dw.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/fx.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/mb.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/nx.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/sf.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/sl.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/search/sources/wd.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/storage/__init__.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/storage/config.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/storage/setup.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr/storage/sqlite_database.py +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr.egg-info/SOURCES.txt +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr.egg-info/dependency_links.txt +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr.egg-info/entry_points.txt +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr.egg-info/not-zip-safe +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr.egg-info/requires.txt +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/quasarr.egg-info/top_level.txt +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/setup.cfg +0 -0
- {quasarr-1.17.0 → quasarr-1.17.1}/setup.py +0 -0
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import concurrent.futures
|
|
6
6
|
import re
|
|
7
|
+
import time
|
|
7
8
|
from urllib.parse import urlparse
|
|
8
9
|
|
|
9
10
|
import requests
|
|
@@ -39,6 +40,7 @@ def get_by_download_links(shared_state, url, mirror, title): # signature must a
|
|
|
39
40
|
r = requests.get(url, headers=headers, timeout=10)
|
|
40
41
|
return r.text, url
|
|
41
42
|
except Exception:
|
|
43
|
+
info(f"Error fetching iframe URL: {url}")
|
|
42
44
|
return None, url
|
|
43
45
|
|
|
44
46
|
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
|
|
@@ -76,23 +78,26 @@ def get_by_download_links(shared_state, url, mirror, title): # signature must a
|
|
|
76
78
|
try:
|
|
77
79
|
r = requests.get(href, headers=headers, timeout=10, allow_redirects=True)
|
|
78
80
|
if "/404.html" in r.url:
|
|
79
|
-
|
|
81
|
+
info(f"Link leads to 404 page for {hostname}: {r.url}")
|
|
80
82
|
return None
|
|
83
|
+
time.sleep(1)
|
|
81
84
|
return r.url
|
|
82
85
|
except Exception as e:
|
|
83
|
-
|
|
86
|
+
info(f"Error resolving link for {hostname}: {e}")
|
|
84
87
|
return None
|
|
85
88
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
for pair in url_hosters:
|
|
90
|
+
resolved_url = resolve_redirect(pair)
|
|
91
|
+
hostname = pair[1]
|
|
92
|
+
|
|
93
|
+
if not hostname:
|
|
94
|
+
hostname = urlparse(resolved_url).hostname
|
|
95
|
+
|
|
96
|
+
if resolved_url and hostname and hostname.startswith(("ddownload", "rapidgator", "turbobit", "filecrypt")):
|
|
97
|
+
if "rapidgator" in hostname:
|
|
98
|
+
links.insert(0, [resolved_url, hostname])
|
|
99
|
+
else:
|
|
100
|
+
links.append([resolved_url, hostname])
|
|
96
101
|
|
|
97
102
|
|
|
98
103
|
except Exception as e:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|