quasarr 1.17.1__tar.gz → 1.17.2__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.1 → quasarr-1.17.2}/PKG-INFO +1 -1
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/api/captcha/__init__.py +43 -25
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/version.py +1 -1
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr.egg-info/PKG-INFO +1 -1
- {quasarr-1.17.1 → quasarr-1.17.2}/LICENSE +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/README.md +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/api/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/api/arr/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/api/config/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/api/sponsors_helper/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/api/statistics/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/linkcrypters/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/linkcrypters/al.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/linkcrypters/filecrypt.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/linkcrypters/hide.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/packages/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/al.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/by.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/dd.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/dt.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/dw.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/mb.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/nx.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/sf.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/sl.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/downloads/sources/wd.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/cloudflare.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/html_images.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/html_templates.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/imdb_metadata.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/log.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/myjd_api.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/notifications.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/obfuscated.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/sessions/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/sessions/al.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/sessions/dd.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/sessions/nx.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/shared_state.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/statistics.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/providers/web_server.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/al.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/by.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/dd.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/dt.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/dw.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/fx.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/mb.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/nx.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/sf.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/sl.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/search/sources/wd.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/storage/__init__.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/storage/config.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/storage/setup.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr/storage/sqlite_database.py +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr.egg-info/SOURCES.txt +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr.egg-info/dependency_links.txt +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr.egg-info/entry_points.txt +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr.egg-info/not-zip-safe +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr.egg-info/requires.txt +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/quasarr.egg-info/top_level.txt +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/setup.cfg +0 -0
- {quasarr-1.17.1 → quasarr-1.17.2}/setup.py +0 -0
|
@@ -105,28 +105,45 @@ def setup_captcha_routes(app):
|
|
|
105
105
|
"""Render the bypass UI section for both cutcaptcha and circle captcha pages"""
|
|
106
106
|
return f'''
|
|
107
107
|
<div style="margin-top: 40px; padding-top: 20px; border-top: 2px solid #ccc;">
|
|
108
|
-
<
|
|
109
|
-
<
|
|
110
|
-
|
|
111
|
-
<
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
<
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
<
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
108
|
+
<details id="bypassDetails">
|
|
109
|
+
<summary id="bypassSummary">Show CAPTCHA Bypass</summary><br>
|
|
110
|
+
<strong><a href="{url}" target="_blank">Obtain download links here!</a></strong><br><br>
|
|
111
|
+
<form id="bypass-form" action="/captcha/bypass-submit" method="post" enctype="multipart/form-data">
|
|
112
|
+
<input type="hidden" name="package_id" value="{package_id}" />
|
|
113
|
+
<input type="hidden" name="title" value="{title}" />
|
|
114
|
+
<input type="hidden" name="password" value="{password}" />
|
|
115
|
+
|
|
116
|
+
<div>
|
|
117
|
+
<strong>Paste the download links (one per line):</strong>
|
|
118
|
+
<textarea id="links-input" name="links" rows="5" style="width: 100%; padding: 8px; font-family: monospace; resize: vertical;"></textarea>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
<div>
|
|
122
|
+
<strong>Or upload DLC file:</strong><br>
|
|
123
|
+
<input type="file" id="dlc-file" name="dlc_file" accept=".dlc" />
|
|
124
|
+
</div>
|
|
125
|
+
|
|
126
|
+
<div>
|
|
127
|
+
{render_button("Submit", "primary", {"type": "submit"})}
|
|
128
|
+
</div>
|
|
129
|
+
</form>
|
|
130
|
+
</details>
|
|
129
131
|
</div>
|
|
132
|
+
<script>
|
|
133
|
+
// Handle bypass toggle
|
|
134
|
+
const bypassDetails = document.getElementById('bypassDetails');
|
|
135
|
+
const bypassSummary = document.getElementById('bypassSummary');
|
|
136
|
+
|
|
137
|
+
if (bypassDetails && bypassSummary) {{
|
|
138
|
+
bypassDetails.addEventListener('toggle', () => {{
|
|
139
|
+
if (bypassDetails.open) {{
|
|
140
|
+
bypassSummary.textContent = 'Hide CAPTCHA Bypass';
|
|
141
|
+
}} else {{
|
|
142
|
+
bypassSummary.textContent = 'Show CAPTCHA Bypass';
|
|
143
|
+
}}
|
|
144
|
+
}});
|
|
145
|
+
}}
|
|
146
|
+
</script>
|
|
130
147
|
'''
|
|
131
148
|
|
|
132
149
|
@app.get('/captcha/delete/<package_id>')
|
|
@@ -285,7 +302,6 @@ def setup_captcha_routes(app):
|
|
|
285
302
|
<div>
|
|
286
303
|
<h1><img src="{images.logo}" type="image/png" alt="Quasarr logo" class="logo"/>Quasarr</h1>
|
|
287
304
|
<p id="package-title" style="max-width: 370px; word-wrap: break-word; overflow-wrap: break-word;"><b>Package:</b> {title}</p>
|
|
288
|
-
<h3>Solve CAPTCHA</h3>
|
|
289
305
|
<div id="captcha-key"></div>
|
|
290
306
|
{link_select}<br><br>
|
|
291
307
|
<input type="hidden" id="link-hidden" value="{prioritized_links[0][0]}" />
|
|
@@ -408,8 +424,11 @@ def setup_captcha_routes(app):
|
|
|
408
424
|
# Process links input
|
|
409
425
|
if links_input:
|
|
410
426
|
info(f"Processing direct links bypass for {title}")
|
|
411
|
-
|
|
412
|
-
|
|
427
|
+
raw_links = [link.strip() for link in links_input.split('\n') if link.strip()]
|
|
428
|
+
links = [l for l in raw_links if l.lower().startswith(("http://", "https://"))]
|
|
429
|
+
|
|
430
|
+
info(f"Received {len(links)} valid direct download links "
|
|
431
|
+
f"(from {len(raw_links)} provided)")
|
|
413
432
|
|
|
414
433
|
# Process DLC file
|
|
415
434
|
elif dlc_upload:
|
|
@@ -590,7 +609,6 @@ def setup_captcha_routes(app):
|
|
|
590
609
|
<body>
|
|
591
610
|
<h1><img src="{images.logo}" type="image/png" alt="Quasarr logo" class="logo"/>Quasarr</h1>
|
|
592
611
|
<p><b>Package:</b> {title}</p>
|
|
593
|
-
<h3>Solve CAPTCHA</h3>
|
|
594
612
|
<form action="/captcha/decrypt-filecrypt-circle?url={url}&session_id={session_id}&package_id={package_id}" method="post">
|
|
595
613
|
<input type="image" src="/captcha/circle.php?url={url}&session_id={session_id}" name="button" alt="Circle CAPTCHA">
|
|
596
614
|
</form>
|
|
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
|