quasarr 2.4.9__py3-none-any.whl → 2.4.11__py3-none-any.whl
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/__init__.py +3 -3
- quasarr/api/__init__.py +1 -1
- quasarr/api/captcha/__init__.py +1 -1
- quasarr/api/config/__init__.py +1 -1
- quasarr/api/sponsors_helper/__init__.py +2 -2
- quasarr/downloads/linkcrypters/hide.py +1 -1
- quasarr/downloads/packages/__init__.py +5 -5
- quasarr/downloads/sources/al.py +1 -1
- quasarr/downloads/sources/dw.py +1 -1
- quasarr/downloads/sources/sf.py +1 -1
- quasarr/providers/notifications.py +1 -1
- quasarr/providers/shared_state.py +0 -6
- quasarr/providers/version.py +1 -1
- quasarr/search/sources/al.py +0 -5
- quasarr/search/sources/he.py +1 -2
- quasarr/storage/sqlite_database.py +1 -1
- {quasarr-2.4.9.dist-info → quasarr-2.4.11.dist-info}/METADATA +3 -2
- {quasarr-2.4.9.dist-info → quasarr-2.4.11.dist-info}/RECORD +21 -21
- {quasarr-2.4.9.dist-info → quasarr-2.4.11.dist-info}/WHEEL +0 -0
- {quasarr-2.4.9.dist-info → quasarr-2.4.11.dist-info}/entry_points.txt +0 -0
- {quasarr-2.4.9.dist-info → quasarr-2.4.11.dist-info}/licenses/LICENSE +0 -0
quasarr/__init__.py
CHANGED
|
@@ -15,7 +15,7 @@ import requests
|
|
|
15
15
|
import quasarr.providers.web_server
|
|
16
16
|
from quasarr.api import get_api
|
|
17
17
|
from quasarr.providers import shared_state, version
|
|
18
|
-
from quasarr.providers.log import
|
|
18
|
+
from quasarr.providers.log import info
|
|
19
19
|
from quasarr.providers.notifications import send_discord_message
|
|
20
20
|
from quasarr.providers.utils import (
|
|
21
21
|
FALLBACK_USER_AGENT,
|
|
@@ -194,7 +194,7 @@ def run():
|
|
|
194
194
|
print(
|
|
195
195
|
f"You have [{len(hostnames)} of {len(Config._DEFAULT_CONFIG['Hostnames'])}] supported hostnames set up"
|
|
196
196
|
)
|
|
197
|
-
print(
|
|
197
|
+
print("For efficiency it is recommended to set up as few hostnames as needed.")
|
|
198
198
|
|
|
199
199
|
# Check credentials for login-required hostnames
|
|
200
200
|
skip_login_db = DataBase("skip_login")
|
|
@@ -243,7 +243,7 @@ def run():
|
|
|
243
243
|
discord_webhook_pattern = r"^https://discord\.com/api/webhooks/\d+/[\w-]+$"
|
|
244
244
|
if re.match(discord_webhook_pattern, arguments.discord):
|
|
245
245
|
shared_state.update("webhook", arguments.discord)
|
|
246
|
-
print(
|
|
246
|
+
print("Using Discord Webhook URL for notifications.")
|
|
247
247
|
discord_url = arguments.discord
|
|
248
248
|
else:
|
|
249
249
|
print(f"Invalid Discord Webhook URL provided: {arguments.discord}")
|
quasarr/api/__init__.py
CHANGED
|
@@ -486,6 +486,6 @@ def get_api(shared_state_dict, shared_state_lock):
|
|
|
486
486
|
@app.get("/regenerate-api-key")
|
|
487
487
|
def regenerate_api_key():
|
|
488
488
|
shared_state.generate_api_key()
|
|
489
|
-
return render_success(
|
|
489
|
+
return render_success("API Key replaced!", 5)
|
|
490
490
|
|
|
491
491
|
Server(app, listen="0.0.0.0", port=shared_state.values["port"]).serve_forever()
|
quasarr/api/captcha/__init__.py
CHANGED
|
@@ -165,7 +165,7 @@ def setup_captcha_routes(app):
|
|
|
165
165
|
debug("Redirecting to ToLink CAPTCHA")
|
|
166
166
|
redirect(f"/captcha/tolink?data={quote(encoded_payload)}")
|
|
167
167
|
else:
|
|
168
|
-
debug(
|
|
168
|
+
debug("Redirecting to cutcaptcha")
|
|
169
169
|
redirect(f"/captcha/cutcaptcha?data={quote(encoded_payload)}")
|
|
170
170
|
|
|
171
171
|
return render_centered_html(f'''<h1><img src="{images.logo}" type="image/png" alt="Quasarr logo" class="logo"/>Quasarr</h1>
|
quasarr/api/config/__init__.py
CHANGED
|
@@ -321,7 +321,7 @@ def setup_config(app, shared_state):
|
|
|
321
321
|
f"FlareSolverr returned unexpected status: {json_data.get('status')}"
|
|
322
322
|
)
|
|
323
323
|
except requests.RequestException:
|
|
324
|
-
return render_fail(
|
|
324
|
+
return render_fail("Could not reach FlareSolverr!")
|
|
325
325
|
|
|
326
326
|
return render_fail(
|
|
327
327
|
"Could not reach FlareSolverr at that URL (expected HTTP 200)."
|
|
@@ -27,7 +27,7 @@ def setup_sponsors_helper_routes(app):
|
|
|
27
27
|
try:
|
|
28
28
|
if not shared_state.values["helper_active"]:
|
|
29
29
|
shared_state.update("helper_active", True)
|
|
30
|
-
info(
|
|
30
|
+
info("Sponsor status activated successfully")
|
|
31
31
|
|
|
32
32
|
protected = shared_state.get_db("protected").retrieve_all_titles()
|
|
33
33
|
if not protected:
|
|
@@ -174,7 +174,7 @@ def setup_sponsors_helper_routes(app):
|
|
|
174
174
|
payload = json.loads(data)
|
|
175
175
|
if payload["activate"]:
|
|
176
176
|
shared_state.update("helper_active", True)
|
|
177
|
-
info(
|
|
177
|
+
info("Sponsor status activated successfully")
|
|
178
178
|
return "Sponsor status activated successfully!"
|
|
179
179
|
except:
|
|
180
180
|
pass
|
|
@@ -169,7 +169,7 @@ def decrypt_links_if_hide(shared_state: Any, items: List[List[str]]) -> Dict[str
|
|
|
169
169
|
continue
|
|
170
170
|
|
|
171
171
|
if not decrypted_links:
|
|
172
|
-
info(
|
|
172
|
+
info("Could not decrypt any links from hide.cx URLs.")
|
|
173
173
|
return {"status": "error", "results": []}
|
|
174
174
|
|
|
175
175
|
return {"status": "success", "results": decrypted_links}
|
|
@@ -197,7 +197,7 @@ def get_links_status(package, all_links, is_archive=False):
|
|
|
197
197
|
break
|
|
198
198
|
|
|
199
199
|
if has_extraction_activity:
|
|
200
|
-
debug(
|
|
200
|
+
debug("get_links_status: Package has extraction activity detected")
|
|
201
201
|
|
|
202
202
|
# Second pass: check each link's status
|
|
203
203
|
for link in links_in_package:
|
|
@@ -856,7 +856,7 @@ def delete_package(shared_state, package_id):
|
|
|
856
856
|
)
|
|
857
857
|
else:
|
|
858
858
|
debug(
|
|
859
|
-
|
|
859
|
+
"delete_package: No link IDs found for linkgrabber package"
|
|
860
860
|
)
|
|
861
861
|
|
|
862
862
|
elif package_type == "downloader":
|
|
@@ -879,7 +879,7 @@ def delete_package(shared_state, package_id):
|
|
|
879
879
|
debug(f"delete_package: Downloads cleanup failed: {e}")
|
|
880
880
|
else:
|
|
881
881
|
debug(
|
|
882
|
-
|
|
882
|
+
"delete_package: No link IDs found for downloader package"
|
|
883
883
|
)
|
|
884
884
|
|
|
885
885
|
# Always clean up database entries (no state check - just clean whatever exists)
|
|
@@ -889,7 +889,7 @@ def delete_package(shared_state, package_id):
|
|
|
889
889
|
try:
|
|
890
890
|
shared_state.get_db("failed").delete(package_id)
|
|
891
891
|
debug(
|
|
892
|
-
|
|
892
|
+
"delete_package: Deleted from failed DB (or was not present)"
|
|
893
893
|
)
|
|
894
894
|
except Exception as e:
|
|
895
895
|
debug(
|
|
@@ -898,7 +898,7 @@ def delete_package(shared_state, package_id):
|
|
|
898
898
|
try:
|
|
899
899
|
shared_state.get_db("protected").delete(package_id)
|
|
900
900
|
debug(
|
|
901
|
-
|
|
901
|
+
"delete_package: Deleted from protected DB (or was not present)"
|
|
902
902
|
)
|
|
903
903
|
except Exception as e:
|
|
904
904
|
debug(
|
quasarr/downloads/sources/al.py
CHANGED
|
@@ -754,7 +754,7 @@ def get_al_download_links(shared_state, url, mirror, title, password):
|
|
|
754
754
|
break
|
|
755
755
|
else:
|
|
756
756
|
info(
|
|
757
|
-
|
|
757
|
+
"CAPTCHA was solved, but no links are available for the selection!"
|
|
758
758
|
)
|
|
759
759
|
StatsHelper(
|
|
760
760
|
shared_state
|
quasarr/downloads/sources/dw.py
CHANGED
|
@@ -70,7 +70,7 @@ def get_dw_download_links(shared_state, url, mirror, title, password):
|
|
|
70
70
|
button.nextSibling.img["src"].split("/")[-1].replace(".png", "")
|
|
71
71
|
)
|
|
72
72
|
hoster = (
|
|
73
|
-
|
|
73
|
+
"1fichier" if hoster.startswith("fichier") else hoster
|
|
74
74
|
) # align with expected mirror name
|
|
75
75
|
if mirror and mirror.lower() not in hoster.lower():
|
|
76
76
|
debug(
|
quasarr/downloads/sources/sf.py
CHANGED
|
@@ -130,7 +130,7 @@ def get_sf_download_links(shared_state, url, mirror, title, password):
|
|
|
130
130
|
+ sf
|
|
131
131
|
+ "/api/v1/"
|
|
132
132
|
+ season_id
|
|
133
|
-
+
|
|
133
|
+
+ "/season/ALL?lang=ALL&_="
|
|
134
134
|
+ epoch
|
|
135
135
|
)
|
|
136
136
|
r = requests.get(api_url, headers=headers, timeout=10)
|
|
@@ -71,7 +71,7 @@ def send_discord_message(
|
|
|
71
71
|
fields.append(
|
|
72
72
|
{
|
|
73
73
|
"name": "SponsorsHelper",
|
|
74
|
-
"value":
|
|
74
|
+
"value": "[Sponsors get automated CAPTCHA solutions!](https://github.com/rix1337/Quasarr?tab=readme-ov-file#sponsorshelper)",
|
|
75
75
|
}
|
|
76
76
|
)
|
|
77
77
|
elif case == "quasarr_update":
|
|
@@ -212,8 +212,6 @@ def connect_device():
|
|
|
212
212
|
|
|
213
213
|
def get_device():
|
|
214
214
|
attempts = 0
|
|
215
|
-
last_backoff_change = 0 # Track when we last changed backoff strategy
|
|
216
|
-
|
|
217
215
|
while True:
|
|
218
216
|
try:
|
|
219
217
|
if check_device(values["device"]):
|
|
@@ -951,14 +949,10 @@ def _month_num(name: str) -> int:
|
|
|
951
949
|
"january": 1,
|
|
952
950
|
"february": 2,
|
|
953
951
|
"march": 3,
|
|
954
|
-
"april": 4,
|
|
955
952
|
"may": 5,
|
|
956
953
|
"june": 6,
|
|
957
954
|
"july": 7,
|
|
958
|
-
"august": 8,
|
|
959
|
-
"september": 9,
|
|
960
955
|
"october": 10,
|
|
961
|
-
"november": 11,
|
|
962
956
|
"december": 12,
|
|
963
957
|
}
|
|
964
958
|
return mmap.get(name)
|
quasarr/providers/version.py
CHANGED
quasarr/search/sources/al.py
CHANGED
|
@@ -23,11 +23,6 @@ hostname = "al"
|
|
|
23
23
|
supported_mirrors = ["rapidgator", "ddownload"]
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
def convert_to_rss_date(date_str: str) -> str:
|
|
27
|
-
parsed = datetime.strptime(date_str, "%d.%m.%Y - %H:%M")
|
|
28
|
-
return parsed.strftime("%a, %d %b %Y %H:%M:%S +0000")
|
|
29
|
-
|
|
30
|
-
|
|
31
26
|
import re
|
|
32
27
|
from datetime import datetime, timedelta
|
|
33
28
|
|
quasarr/search/sources/he.py
CHANGED
|
@@ -28,7 +28,6 @@ def parse_posted_ago(txt):
|
|
|
28
28
|
return ""
|
|
29
29
|
value = int(m.group(1))
|
|
30
30
|
unit = m.group(2).lower()
|
|
31
|
-
now = datetime.utcnow()
|
|
32
31
|
if unit.startswith("sec"):
|
|
33
32
|
delta = timedelta(seconds=value)
|
|
34
33
|
elif unit.startswith("min"):
|
|
@@ -210,7 +209,7 @@ def he_search(
|
|
|
210
209
|
continue
|
|
211
210
|
else:
|
|
212
211
|
debug(f"{hostname}: imdb link not found for title {title}")
|
|
213
|
-
except Exception
|
|
212
|
+
except Exception:
|
|
214
213
|
debug(f"{hostname}: failed to determine imdb_id for title {title}")
|
|
215
214
|
continue
|
|
216
215
|
|
|
@@ -21,7 +21,7 @@ class DataBase(object):
|
|
|
21
21
|
).fetchall():
|
|
22
22
|
self._conn.execute(f"CREATE TABLE {self._table} (key, value)")
|
|
23
23
|
self._conn.commit()
|
|
24
|
-
except sqlite3.OperationalError
|
|
24
|
+
except sqlite3.OperationalError:
|
|
25
25
|
try:
|
|
26
26
|
time.sleep(5)
|
|
27
27
|
self._conn = sqlite3.connect(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: quasarr
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.11
|
|
4
4
|
Summary: Quasarr connects JDownloader with Radarr, Sonarr and LazyLibrarian. It also decrypts links protected by CAPTCHAs.
|
|
5
5
|
Author-email: rix1337 <rix1337@users.noreply.github.com>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -243,11 +243,12 @@ Most feature requests can be satisfied by:
|
|
|
243
243
|
[here](https://github.com/rix1337/Quasarr/pulls).
|
|
244
244
|
- **Pull requests are welcome!** Especially for popular hostnames.
|
|
245
245
|
- A short guide to set up required dev services is found
|
|
246
|
-
|
|
246
|
+
[here](https://github.com/rix1337/Quasarr/blob/main/CONTRIBUTING.md).
|
|
247
247
|
- Always reach out on Discord before starting work on a new feature to prevent waste of time.
|
|
248
248
|
- Please follow the existing code style and project structure.
|
|
249
249
|
- Anti-bot measures must be circumvented fully by Quasarr. Thus, you will need to provide a working solution for new
|
|
250
250
|
CAPTCHA types by integrating it in the Quasarr Web UI.
|
|
251
|
+
The simplest CAPTCHA bypass involves creating a Tampermonkey user script.
|
|
251
252
|
- Please provide proof of functionality (screenshots/examples) when submitting your pull request.
|
|
252
253
|
|
|
253
254
|
# SponsorsHelper
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
quasarr/__init__.py,sha256=
|
|
2
|
-
quasarr/api/__init__.py,sha256=
|
|
1
|
+
quasarr/__init__.py,sha256=da03581ho1rtPtd-62bpAybQPamSQm3ONivCF4_kT1k,17137
|
|
2
|
+
quasarr/api/__init__.py,sha256=wXBTR31hZzEaKU7wEeH0qUy4hAeTJ7DUH2kAGkInYhw,19799
|
|
3
3
|
quasarr/api/arr/__init__.py,sha256=NzyzFmRSGwGwg-wmyxa-EzXda1i6W59r4ZbRe5ireJc,18156
|
|
4
|
-
quasarr/api/captcha/__init__.py,sha256=
|
|
5
|
-
quasarr/api/config/__init__.py,sha256=
|
|
4
|
+
quasarr/api/captcha/__init__.py,sha256=NQW5qe_ykttD-3pRimB50oIA3n3KGO0jDKeEgia2IE4,75526
|
|
5
|
+
quasarr/api/config/__init__.py,sha256=RJG5NpSrpuLPqSJuAF-OwnZuyW00V8Gjy-8TOjM6PNg,14558
|
|
6
6
|
quasarr/api/packages/__init__.py,sha256=DOupHd2xlpzEC23ZM3R7jHJqSPL2BAkR4p8J8DAgkkI,31066
|
|
7
|
-
quasarr/api/sponsors_helper/__init__.py,sha256=
|
|
7
|
+
quasarr/api/sponsors_helper/__init__.py,sha256=QAFXK_JTtAnstRAlieCbbCsoTwIcBu7ZX8C3U4jZpR0,6475
|
|
8
8
|
quasarr/api/statistics/__init__.py,sha256=rJz6S4jSnpFDWtjU7O-2jECUEqlueOHOEfRUjSb3cMY,7943
|
|
9
9
|
quasarr/downloads/__init__.py,sha256=dSgOGiv_PPj5B5NUQGYS5Ej4YSvNqjTIhJgUBhUfqMc,17187
|
|
10
10
|
quasarr/downloads/linkcrypters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
11
|
quasarr/downloads/linkcrypters/al.py,sha256=0tgzTwoNjizeIfVoWyJIihlKVg3T5qOmLBJJKAPFfxY,8983
|
|
12
12
|
quasarr/downloads/linkcrypters/filecrypt.py,sha256=SRUToJ5PpjWNL4n40Q8CYqxLYkyOMd1ce2QJGc1bqRE,17811
|
|
13
|
-
quasarr/downloads/linkcrypters/hide.py,sha256=
|
|
14
|
-
quasarr/downloads/packages/__init__.py,sha256=
|
|
13
|
+
quasarr/downloads/linkcrypters/hide.py,sha256=t9p_Hb5taJDuRAPaWZw7T1GTcLVgd8keD9LlZJ1-Gsg,6266
|
|
14
|
+
quasarr/downloads/packages/__init__.py,sha256=7B3Fx6nqSweANA4i7YRmA2gwuyM4fZCuEeWsPpkQPM8,35965
|
|
15
15
|
quasarr/downloads/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
quasarr/downloads/sources/al.py,sha256=
|
|
16
|
+
quasarr/downloads/sources/al.py,sha256=yOCuAoZQq0-89Vw69Eb6zeSslbnilTn2C6kyBQ7OKW8,29345
|
|
17
17
|
quasarr/downloads/sources/by.py,sha256=hAGY9Z3eRADLjM0OEknNTFdLjJJvOsQzvGti1vp8M2A,4616
|
|
18
18
|
quasarr/downloads/sources/dd.py,sha256=552p2V9HcfVPcoAuBddJe9DblVaIxH1-R2xZ8njEW34,3600
|
|
19
19
|
quasarr/downloads/sources/dj.py,sha256=QGfiZMcwgcMgT91hSV-MxD3tW3Wbm0ULZSfBZTh9TBM,390
|
|
20
20
|
quasarr/downloads/sources/dl.py,sha256=HYdlRhBhG5TjK6NadrUwBLI532LdL87gpXbAJY_7TkA,15655
|
|
21
21
|
quasarr/downloads/sources/dt.py,sha256=12Iiwr3ZMUivHDG4bjJHyM5vx3Dmfu3IKDd13sYKlUg,3166
|
|
22
|
-
quasarr/downloads/sources/dw.py,sha256=
|
|
22
|
+
quasarr/downloads/sources/dw.py,sha256=LgkHlYbA2nifLMMuoqZPpun-dLsmTYqIIhM6BB7i898,2993
|
|
23
23
|
quasarr/downloads/sources/he.py,sha256=uTsZlPYvRo9lHjNCviSEDzde8IoLnf9VGE-b-S7VJ7s,4062
|
|
24
24
|
quasarr/downloads/sources/mb.py,sha256=nKO8y0fj-LP9QTXJs0Wxw21yXqe7N6xEYJ9UK2_mPeE,1947
|
|
25
25
|
quasarr/downloads/sources/nk.py,sha256=qNdQqoP6czgypf3sPcoxDl6fIwrMWAzNv6rKXIKlpWc,2104
|
|
26
26
|
quasarr/downloads/sources/nx.py,sha256=Kn3Nn87NcrKada3j8jpTlunKJ7-ggDyQOiRSoCdxySk,3670
|
|
27
|
-
quasarr/downloads/sources/sf.py,sha256=
|
|
27
|
+
quasarr/downloads/sources/sf.py,sha256=f_jC4Shnl2GWCro6JcBLjbmZA8nSPVPr4vdf0WR_r7k,6927
|
|
28
28
|
quasarr/downloads/sources/sj.py,sha256=h3x7F8UUPvcyTf6gkKn6fBLTFeQjvqD7MJ1TtuiqhUU,390
|
|
29
29
|
quasarr/downloads/sources/sl.py,sha256=G5TehRfrdlNT-jJ1PiSEzq1IWqL2UCq73LIMqvYef2c,3573
|
|
30
30
|
quasarr/downloads/sources/wd.py,sha256=mUFvH1OptEOBfQMw6TmucfC-Da8lpf-ThLGyK1oh_Xc,5135
|
|
@@ -39,12 +39,12 @@ quasarr/providers/imdb_metadata.py,sha256=ZKnB7Ep3cjeCnie6-NCoYwTQzWb4mlm5NUUL95
|
|
|
39
39
|
quasarr/providers/jd_cache.py,sha256=l9eNNUZhadygQ2HvhHPjW4IfFTzJOZNStSdi7tNfzkQ,14724
|
|
40
40
|
quasarr/providers/log.py,sha256=wn-cQVbWFxjFXRR4TlBiDnFB3SxaJrGKX-NKg5OjUvw,313
|
|
41
41
|
quasarr/providers/myjd_api.py,sha256=06NWo8MqRHp9fU363OhcXQGHLKxsnMSygu-4JdtGrrs,34225
|
|
42
|
-
quasarr/providers/notifications.py,sha256=
|
|
42
|
+
quasarr/providers/notifications.py,sha256=fL0HQdk7jBLXToM_URQiJq6y2UAHs0RzMFMCFdb3SHQ,4894
|
|
43
43
|
quasarr/providers/obfuscated.py,sha256=IAN0-5m6UblLjaFdPhRy75ryqDMF0nlbkClq5-n1bQQ,2275634
|
|
44
|
-
quasarr/providers/shared_state.py,sha256=
|
|
44
|
+
quasarr/providers/shared_state.py,sha256=PtViw25o-3mYTbFfbJpGb2F_QB8TNy4Ov1Jb8JAR09A,32690
|
|
45
45
|
quasarr/providers/statistics.py,sha256=1X_Aa7TE3W7ovwkemVMsgIx55Jw3eYMiyUxuCUDgO5s,8666
|
|
46
46
|
quasarr/providers/utils.py,sha256=YXW34xi8569-Tr-cpr8GyOCrWvZ_GKWrX5x0-sxMpOU,12169
|
|
47
|
-
quasarr/providers/version.py,sha256=
|
|
47
|
+
quasarr/providers/version.py,sha256=FCtZ1LquNQGCDy_gVqwaobA-JA8uT8Iw9r4ucl1JR3w,4425
|
|
48
48
|
quasarr/providers/web_server.py,sha256=tHkMxhV6eaHC8cWsEpbUqD_U29IFE24VsU6tjk-xCEM,1765
|
|
49
49
|
quasarr/providers/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
50
|
quasarr/providers/sessions/al.py,sha256=VvqqgmwzZfCI_pIvzxvdaIvuBiqANbkkiJNEOBKW3zA,13456
|
|
@@ -53,7 +53,7 @@ quasarr/providers/sessions/dl.py,sha256=fKnakgGp0vhTRYP2m4HWbcX3ZuqaqSqoRNtismtU
|
|
|
53
53
|
quasarr/providers/sessions/nx.py,sha256=qY1i0Nxx32S8j2QQEP6SHn5XxZmic7shyaBuaVAxV34,3513
|
|
54
54
|
quasarr/search/__init__.py,sha256=z8I72kHzOS2qrR0IZIZXZMTBMmA7c52b9ob-Kure1iw,5972
|
|
55
55
|
quasarr/search/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
-
quasarr/search/sources/al.py,sha256=
|
|
56
|
+
quasarr/search/sources/al.py,sha256=BvVL4RoPpObhS2TVms4rPvs_kdoIrYkiyG22PdA0g3E,18279
|
|
57
57
|
quasarr/search/sources/by.py,sha256=jakh4w3u9NQrGhV2t3ZwsS9ZKgE2_dcYyd9pPUH4cQo,8926
|
|
58
58
|
quasarr/search/sources/dd.py,sha256=GdXalOUK1YPzqrHP7G4djnAGNUbqJdOjFFFQ9aMG4ls,5725
|
|
59
59
|
quasarr/search/sources/dj.py,sha256=f-snv7zPYdmQM50XUiGCjHtwl0JnnJ-1R-GW1sjaJH0,7825
|
|
@@ -61,7 +61,7 @@ quasarr/search/sources/dl.py,sha256=eyYAZz0MfvrizWxvqsVBoupy-kg2mKc42TAdB_rXK4k,
|
|
|
61
61
|
quasarr/search/sources/dt.py,sha256=i_JSxydoASLlTRRhPk5av0fgzw1xhtAkjeF2_7KxbkM,10675
|
|
62
62
|
quasarr/search/sources/dw.py,sha256=ZRWwA4PljLMyBqN1V9SThcL9Bc4KzR4k-7F2LecIMeM,8803
|
|
63
63
|
quasarr/search/sources/fx.py,sha256=J2yUn8_1zMgPlJ9RPeBXoVD-KhSwj97CUQaVMgs8N3U,10297
|
|
64
|
-
quasarr/search/sources/he.py,sha256=
|
|
64
|
+
quasarr/search/sources/he.py,sha256=X-eyVWkDXsKjXDBLRGoFiA5qA8Z4NeO-jJfygnxnWZg,7762
|
|
65
65
|
quasarr/search/sources/mb.py,sha256=DaNOppqCNVtkGamBbULlT04UP9AzJh-nDPycYrU1Kz4,8476
|
|
66
66
|
quasarr/search/sources/nk.py,sha256=vU9aK2EjjR6ZF1QP4r4CzcF1qO7LEjuZ_qsf_nKvSc4,7554
|
|
67
67
|
quasarr/search/sources/nx.py,sha256=ABc_B6Pi_SBKGvHhZRq5bdMGX_oeRCULGbEbpQQUh60,7908
|
|
@@ -73,9 +73,9 @@ quasarr/search/sources/wx.py,sha256=KLMUbnh3SGrWsQq3YyI9LRq4VjDj_JmjXU4-fMqxDMk,
|
|
|
73
73
|
quasarr/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
74
|
quasarr/storage/config.py,sha256=lvh3Vtf6pQ_ZIyH9TrHzcifRKkzq8QsV61xDhbrOpog,6584
|
|
75
75
|
quasarr/storage/setup.py,sha256=5Hmm6ehuJAGOLRGMArmJ7noS-BFDC4rfnQI6sucLTXo,49726
|
|
76
|
-
quasarr/storage/sqlite_database.py,sha256=
|
|
77
|
-
quasarr-2.4.
|
|
78
|
-
quasarr-2.4.
|
|
79
|
-
quasarr-2.4.
|
|
80
|
-
quasarr-2.4.
|
|
81
|
-
quasarr-2.4.
|
|
76
|
+
quasarr/storage/sqlite_database.py,sha256=tmHUotMWIwtyH-g244WvcGhMQMMjGokncv7JpFSi8NM,3639
|
|
77
|
+
quasarr-2.4.11.dist-info/METADATA,sha256=7Kaq0Fun7rhGHWaargFE0sbNZQqOtLIEpeCcpwJbPEI,14728
|
|
78
|
+
quasarr-2.4.11.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
79
|
+
quasarr-2.4.11.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
|
|
80
|
+
quasarr-2.4.11.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
|
|
81
|
+
quasarr-2.4.11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|