quasarr 2.5.0__py3-none-any.whl → 2.6.1__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 +30 -35
- quasarr/api/__init__.py +17 -9
- quasarr/api/arr/__init__.py +15 -6
- quasarr/api/captcha/__init__.py +2 -9
- quasarr/api/config/__init__.py +10 -0
- quasarr/api/jdownloader/__init__.py +239 -0
- quasarr/api/packages/__init__.py +2 -12
- quasarr/downloads/__init__.py +2 -0
- quasarr/downloads/sources/hs.py +131 -0
- quasarr/downloads/sources/wd.py +88 -74
- quasarr/providers/cloudflare.py +46 -1
- quasarr/providers/html_templates.py +14 -3
- quasarr/providers/sessions/al.py +4 -0
- quasarr/providers/shared_state.py +17 -17
- quasarr/providers/version.py +1 -1
- quasarr/search/__init__.py +4 -0
- quasarr/search/sources/al.py +17 -13
- quasarr/search/sources/by.py +4 -1
- quasarr/search/sources/dd.py +16 -4
- quasarr/search/sources/dl.py +13 -1
- quasarr/search/sources/hs.py +515 -0
- quasarr/search/sources/mb.py +1 -7
- quasarr/search/sources/nx.py +4 -1
- quasarr/search/sources/wd.py +33 -6
- quasarr/search/sources/wx.py +10 -8
- quasarr/storage/config.py +1 -0
- quasarr/storage/setup.py +90 -64
- {quasarr-2.5.0.dist-info → quasarr-2.6.1.dist-info}/METADATA +1 -1
- {quasarr-2.5.0.dist-info → quasarr-2.6.1.dist-info}/RECORD +32 -29
- {quasarr-2.5.0.dist-info → quasarr-2.6.1.dist-info}/WHEEL +0 -0
- {quasarr-2.5.0.dist-info → quasarr-2.6.1.dist-info}/entry_points.txt +0 -0
- {quasarr-2.5.0.dist-info → quasarr-2.6.1.dist-info}/licenses/LICENSE +0 -0
quasarr/storage/setup.py
CHANGED
|
@@ -947,7 +947,7 @@ def save_flaresolverr_url(shared_state, is_setup=False):
|
|
|
947
947
|
if is_setup:
|
|
948
948
|
quasarr.providers.web_server.temp_server_success = True
|
|
949
949
|
|
|
950
|
-
return render_reconnect_success("FlareSolverr URL cleared
|
|
950
|
+
return render_reconnect_success("FlareSolverr URL cleared.")
|
|
951
951
|
|
|
952
952
|
if not url.startswith("http://") and not url.startswith("https://"):
|
|
953
953
|
url = "http://" + url
|
|
@@ -958,41 +958,23 @@ def save_flaresolverr_url(shared_state, is_setup=False):
|
|
|
958
958
|
"FlareSolverr URL must end with /v1 (or similar version path)."
|
|
959
959
|
)
|
|
960
960
|
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
"maxTimeout": 30000,
|
|
967
|
-
}
|
|
968
|
-
resp = requests.post(url, headers=headers, json=data, timeout=30)
|
|
969
|
-
if resp.status_code == 200:
|
|
970
|
-
json_data = resp.json()
|
|
971
|
-
if json_data.get("status") == "ok":
|
|
972
|
-
config.save("url", url)
|
|
973
|
-
# Clear skip preference since we now have a working URL
|
|
974
|
-
DataBase("skip_flaresolverr").delete("skipped")
|
|
975
|
-
|
|
976
|
-
# Update user agent from FlareSolverr response
|
|
977
|
-
solution = json_data.get("solution", {})
|
|
978
|
-
solution_ua = solution.get("userAgent")
|
|
979
|
-
if solution_ua:
|
|
980
|
-
shared_state.update("user_agent", solution_ua)
|
|
981
|
-
|
|
982
|
-
info(f'FlareSolverr URL configured: "{url}"')
|
|
983
|
-
|
|
984
|
-
if is_setup:
|
|
985
|
-
quasarr.providers.web_server.temp_server_success = True
|
|
961
|
+
flaresolverr_check = check_flaresolverr(shared_state, url)
|
|
962
|
+
if flaresolverr_check:
|
|
963
|
+
config.save("url", url)
|
|
964
|
+
# Clear skip preference since we now have a working URL
|
|
965
|
+
DataBase("skip_flaresolverr").delete("skipped")
|
|
986
966
|
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
)
|
|
992
|
-
except requests.RequestException:
|
|
993
|
-
return render_fail("Could not reach FlareSolverr!")
|
|
967
|
+
info(
|
|
968
|
+
f'FlareSolverr connection successful. Using User-Agent: "{shared_state.values["user_agent"]}"'
|
|
969
|
+
)
|
|
970
|
+
info(f'FlareSolverr URL configured: "{url}"')
|
|
994
971
|
|
|
995
|
-
|
|
972
|
+
if is_setup:
|
|
973
|
+
quasarr.providers.web_server.temp_server_success = True
|
|
974
|
+
|
|
975
|
+
return render_reconnect_success("FlareSolverr URL saved successfully!")
|
|
976
|
+
else:
|
|
977
|
+
return render_fail("Could not reach FlareSolverr!")
|
|
996
978
|
|
|
997
979
|
|
|
998
980
|
def get_flaresolverr_status_data(shared_state):
|
|
@@ -1446,6 +1428,78 @@ def flaresolverr_config(shared_state):
|
|
|
1446
1428
|
).serve_temporarily()
|
|
1447
1429
|
|
|
1448
1430
|
|
|
1431
|
+
def verify_jdownloader_credentials(shared_state):
|
|
1432
|
+
"""Verify JDownloader credentials and return devices."""
|
|
1433
|
+
response.content_type = "application/json"
|
|
1434
|
+
try:
|
|
1435
|
+
data = request.json
|
|
1436
|
+
username = data.get("user")
|
|
1437
|
+
password = data.get("pass")
|
|
1438
|
+
|
|
1439
|
+
devices = shared_state.get_devices(username, password)
|
|
1440
|
+
device_names = []
|
|
1441
|
+
|
|
1442
|
+
if devices:
|
|
1443
|
+
for device in devices:
|
|
1444
|
+
device_names.append(device["name"])
|
|
1445
|
+
|
|
1446
|
+
if device_names:
|
|
1447
|
+
return {"success": True, "devices": device_names}
|
|
1448
|
+
else:
|
|
1449
|
+
return {
|
|
1450
|
+
"success": False,
|
|
1451
|
+
"message": "No devices found or invalid credentials",
|
|
1452
|
+
}
|
|
1453
|
+
except Exception as e:
|
|
1454
|
+
return {"success": False, "message": str(e)}
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
def save_jdownloader_settings(shared_state, is_setup=False):
|
|
1458
|
+
"""Save JDownloader settings."""
|
|
1459
|
+
# Handle both JSON (from main UI) and Form (from setup UI)
|
|
1460
|
+
if request.json:
|
|
1461
|
+
username = request.json.get("user")
|
|
1462
|
+
password = request.json.get("pass")
|
|
1463
|
+
device = request.json.get("device")
|
|
1464
|
+
else:
|
|
1465
|
+
username = request.forms.get("user")
|
|
1466
|
+
password = request.forms.get("pass")
|
|
1467
|
+
device = request.forms.get("device")
|
|
1468
|
+
|
|
1469
|
+
if username and password and device:
|
|
1470
|
+
# Verify connection works before saving credentials
|
|
1471
|
+
if shared_state.set_device(username, password, device):
|
|
1472
|
+
config = Config("JDownloader")
|
|
1473
|
+
config.save("user", username)
|
|
1474
|
+
config.save("password", password)
|
|
1475
|
+
config.save("device", device)
|
|
1476
|
+
|
|
1477
|
+
if is_setup:
|
|
1478
|
+
quasarr.providers.web_server.temp_server_success = True
|
|
1479
|
+
return render_reconnect_success("Credentials set")
|
|
1480
|
+
else:
|
|
1481
|
+
response.content_type = "application/json"
|
|
1482
|
+
return {
|
|
1483
|
+
"success": True,
|
|
1484
|
+
"message": "JDownloader configured successfully",
|
|
1485
|
+
}
|
|
1486
|
+
else:
|
|
1487
|
+
if is_setup:
|
|
1488
|
+
return render_fail("Could not connect to selected device!")
|
|
1489
|
+
else:
|
|
1490
|
+
response.content_type = "application/json"
|
|
1491
|
+
return {
|
|
1492
|
+
"success": False,
|
|
1493
|
+
"message": "Could not connect to selected device",
|
|
1494
|
+
}
|
|
1495
|
+
|
|
1496
|
+
if is_setup:
|
|
1497
|
+
return render_fail("Could not set credentials!")
|
|
1498
|
+
else:
|
|
1499
|
+
response.content_type = "application/json"
|
|
1500
|
+
return {"success": False, "message": "Missing required fields"}
|
|
1501
|
+
|
|
1502
|
+
|
|
1449
1503
|
def jdownloader_config(shared_state):
|
|
1450
1504
|
app = Bottle()
|
|
1451
1505
|
add_no_cache_headers(app)
|
|
@@ -1549,39 +1603,11 @@ def jdownloader_config(shared_state):
|
|
|
1549
1603
|
|
|
1550
1604
|
@app.post("/api/verify_jdownloader")
|
|
1551
1605
|
def verify_jdownloader():
|
|
1552
|
-
|
|
1553
|
-
username = data["user"]
|
|
1554
|
-
password = data["pass"]
|
|
1555
|
-
|
|
1556
|
-
devices = shared_state.get_devices(username, password)
|
|
1557
|
-
device_names = []
|
|
1558
|
-
|
|
1559
|
-
if devices:
|
|
1560
|
-
for device in devices:
|
|
1561
|
-
device_names.append(device["name"])
|
|
1562
|
-
|
|
1563
|
-
if device_names:
|
|
1564
|
-
return {"success": True, "devices": device_names}
|
|
1565
|
-
else:
|
|
1566
|
-
return {"success": False}
|
|
1606
|
+
return verify_jdownloader_credentials(shared_state)
|
|
1567
1607
|
|
|
1568
1608
|
@app.post("/api/store_jdownloader")
|
|
1569
1609
|
def store_jdownloader():
|
|
1570
|
-
|
|
1571
|
-
password = request.forms.get("pass")
|
|
1572
|
-
device = request.forms.get("device")
|
|
1573
|
-
|
|
1574
|
-
if username and password and device:
|
|
1575
|
-
# Verify connection works before saving credentials
|
|
1576
|
-
if shared_state.set_device(username, password, device):
|
|
1577
|
-
config = Config("JDownloader")
|
|
1578
|
-
config.save("user", username)
|
|
1579
|
-
config.save("password", password)
|
|
1580
|
-
config.save("device", device)
|
|
1581
|
-
quasarr.providers.web_server.temp_server_success = True
|
|
1582
|
-
return render_reconnect_success("Credentials set")
|
|
1583
|
-
|
|
1584
|
-
return render_fail("Could not set credentials!")
|
|
1610
|
+
return save_jdownloader_settings(shared_state, is_setup=True)
|
|
1585
1611
|
|
|
1586
1612
|
info(
|
|
1587
1613
|
f"My-JDownloader-Credentials not set. "
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: quasarr
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.6.1
|
|
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
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
quasarr/__init__.py,sha256=
|
|
2
|
-
quasarr/api/__init__.py,sha256=
|
|
3
|
-
quasarr/api/arr/__init__.py,sha256=
|
|
4
|
-
quasarr/api/captcha/__init__.py,sha256=
|
|
5
|
-
quasarr/api/config/__init__.py,sha256=
|
|
6
|
-
quasarr/api/
|
|
1
|
+
quasarr/__init__.py,sha256=ZgxPUmVmiI3XYfocjzWNJNAGda6sO0o3OqOEFOPOQZc,16982
|
|
2
|
+
quasarr/api/__init__.py,sha256=KrbMcvcPPJ3q299dBOmCJEixdZ4ftAiC1MJ_3pu8ep0,20180
|
|
3
|
+
quasarr/api/arr/__init__.py,sha256=z6Cx9GqPti6zt_bVPHUmGVSdxvIYLRuL7TL7Sd5VPGI,18487
|
|
4
|
+
quasarr/api/captcha/__init__.py,sha256=PPiIaW4w5qZWcm9MkEidsKFS0uaooPMtca5Cc5dL8mM,75225
|
|
5
|
+
quasarr/api/config/__init__.py,sha256=FJZHALhL6NExonhCk53vOYnM1ICkmbTRue5UMCy5Yzg,8813
|
|
6
|
+
quasarr/api/jdownloader/__init__.py,sha256=SixcV-sgMAunjAT5LawASb1qSuOOokorQo2F7cQ3jZ4,9427
|
|
7
|
+
quasarr/api/packages/__init__.py,sha256=4T6pw0N1DKpTCj2mAgdPOjo__nhxr56aEqZOiFvPvb0,30679
|
|
7
8
|
quasarr/api/sponsors_helper/__init__.py,sha256=QAFXK_JTtAnstRAlieCbbCsoTwIcBu7ZX8C3U4jZpR0,6475
|
|
8
9
|
quasarr/api/statistics/__init__.py,sha256=rJz6S4jSnpFDWtjU7O-2jECUEqlueOHOEfRUjSb3cMY,7943
|
|
9
|
-
quasarr/downloads/__init__.py,sha256=
|
|
10
|
+
quasarr/downloads/__init__.py,sha256=7LnhWeQVGjkAhDF8VbP4KbyNyfWxJ5yErF4HDzqNrGQ,17283
|
|
10
11
|
quasarr/downloads/linkcrypters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
12
|
quasarr/downloads/linkcrypters/al.py,sha256=0tgzTwoNjizeIfVoWyJIihlKVg3T5qOmLBJJKAPFfxY,8983
|
|
12
13
|
quasarr/downloads/linkcrypters/filecrypt.py,sha256=SRUToJ5PpjWNL4n40Q8CYqxLYkyOMd1ce2QJGc1bqRE,17811
|
|
@@ -21,61 +22,63 @@ quasarr/downloads/sources/dl.py,sha256=HYdlRhBhG5TjK6NadrUwBLI532LdL87gpXbAJY_7T
|
|
|
21
22
|
quasarr/downloads/sources/dt.py,sha256=12Iiwr3ZMUivHDG4bjJHyM5vx3Dmfu3IKDd13sYKlUg,3166
|
|
22
23
|
quasarr/downloads/sources/dw.py,sha256=LgkHlYbA2nifLMMuoqZPpun-dLsmTYqIIhM6BB7i898,2993
|
|
23
24
|
quasarr/downloads/sources/he.py,sha256=uTsZlPYvRo9lHjNCviSEDzde8IoLnf9VGE-b-S7VJ7s,4062
|
|
25
|
+
quasarr/downloads/sources/hs.py,sha256=aZKtYg0RqZEyvo76_IlRpVWwFSc9BWvAyn-M8IaDxU4,4752
|
|
24
26
|
quasarr/downloads/sources/mb.py,sha256=nKO8y0fj-LP9QTXJs0Wxw21yXqe7N6xEYJ9UK2_mPeE,1947
|
|
25
27
|
quasarr/downloads/sources/nk.py,sha256=qNdQqoP6czgypf3sPcoxDl6fIwrMWAzNv6rKXIKlpWc,2104
|
|
26
28
|
quasarr/downloads/sources/nx.py,sha256=Kn3Nn87NcrKada3j8jpTlunKJ7-ggDyQOiRSoCdxySk,3670
|
|
27
29
|
quasarr/downloads/sources/sf.py,sha256=f_jC4Shnl2GWCro6JcBLjbmZA8nSPVPr4vdf0WR_r7k,6927
|
|
28
30
|
quasarr/downloads/sources/sj.py,sha256=h3x7F8UUPvcyTf6gkKn6fBLTFeQjvqD7MJ1TtuiqhUU,390
|
|
29
31
|
quasarr/downloads/sources/sl.py,sha256=G5TehRfrdlNT-jJ1PiSEzq1IWqL2UCq73LIMqvYef2c,3573
|
|
30
|
-
quasarr/downloads/sources/wd.py,sha256=
|
|
32
|
+
quasarr/downloads/sources/wd.py,sha256=pmXkScWTrMvQHTOx770M_caF92VIKvHmUu1ncqrmxvY,6042
|
|
31
33
|
quasarr/downloads/sources/wx.py,sha256=-6SEY_3lvtONZXxkit4MIYLHsPY9Z1VzOvv5MYbDag8,7091
|
|
32
34
|
quasarr/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
35
|
quasarr/providers/auth.py,sha256=mLd22xsTO29rgPwEU9SkFHRLuYxev-_11TQXicXLon8,10570
|
|
34
|
-
quasarr/providers/cloudflare.py,sha256=
|
|
36
|
+
quasarr/providers/cloudflare.py,sha256=K5fd0cbVvppYpulz_aYQnyXhkFTZA6ZiwL6v_t_HrC8,9021
|
|
35
37
|
quasarr/providers/hostname_issues.py,sha256=SpnZAxOLejSXJGFnYkCrRzR8D0IQsTMtylM-O0h21Z0,1462
|
|
36
38
|
quasarr/providers/html_images.py,sha256=xmxfNwqAqQimVaOq7IelkxlBdcRpPZZLGli_MJDOacI,19755
|
|
37
|
-
quasarr/providers/html_templates.py,sha256=
|
|
39
|
+
quasarr/providers/html_templates.py,sha256=e5b66N47y5Uq7Ikwcm6kOWiyXZ7Bz4gqg2DcajIBGgE,16360
|
|
38
40
|
quasarr/providers/imdb_metadata.py,sha256=ZKnB7Ep3cjeCnie6-NCoYwTQzWb4mlm5NUUL95bD7fs,21999
|
|
39
41
|
quasarr/providers/jd_cache.py,sha256=l9eNNUZhadygQ2HvhHPjW4IfFTzJOZNStSdi7tNfzkQ,14724
|
|
40
42
|
quasarr/providers/log.py,sha256=wn-cQVbWFxjFXRR4TlBiDnFB3SxaJrGKX-NKg5OjUvw,313
|
|
41
43
|
quasarr/providers/myjd_api.py,sha256=06NWo8MqRHp9fU363OhcXQGHLKxsnMSygu-4JdtGrrs,34225
|
|
42
44
|
quasarr/providers/notifications.py,sha256=fL0HQdk7jBLXToM_URQiJq6y2UAHs0RzMFMCFdb3SHQ,4894
|
|
43
45
|
quasarr/providers/obfuscated.py,sha256=IAN0-5m6UblLjaFdPhRy75ryqDMF0nlbkClq5-n1bQQ,2275634
|
|
44
|
-
quasarr/providers/shared_state.py,sha256=
|
|
46
|
+
quasarr/providers/shared_state.py,sha256=Pv7UUaoPtsl7Rp_vbK_fAnyzlEAdn9Hj_DcVJ4LROqs,32789
|
|
45
47
|
quasarr/providers/statistics.py,sha256=1X_Aa7TE3W7ovwkemVMsgIx55Jw3eYMiyUxuCUDgO5s,8666
|
|
46
48
|
quasarr/providers/utils.py,sha256=YXW34xi8569-Tr-cpr8GyOCrWvZ_GKWrX5x0-sxMpOU,12169
|
|
47
|
-
quasarr/providers/version.py,sha256=
|
|
49
|
+
quasarr/providers/version.py,sha256=peW1DQ2L5XTmtez6gPVEC0say4xucb1RNTyv0_NDmqY,4424
|
|
48
50
|
quasarr/providers/web_server.py,sha256=tHkMxhV6eaHC8cWsEpbUqD_U29IFE24VsU6tjk-xCEM,1765
|
|
49
51
|
quasarr/providers/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
-
quasarr/providers/sessions/al.py,sha256=
|
|
52
|
+
quasarr/providers/sessions/al.py,sha256=obDBotLA8vhbSsIw3VErj-FujVgYc4RimqxLqycfbVE,13569
|
|
51
53
|
quasarr/providers/sessions/dd.py,sha256=OImrnHCXeeGqPOSMnwGH7897EVZWA9fqH2yzk4FQqcA,3375
|
|
52
54
|
quasarr/providers/sessions/dl.py,sha256=fKnakgGp0vhTRYP2m4HWbcX3ZuqaqSqoRNtismtU314,5973
|
|
53
55
|
quasarr/providers/sessions/nx.py,sha256=qY1i0Nxx32S8j2QQEP6SHn5XxZmic7shyaBuaVAxV34,3513
|
|
54
|
-
quasarr/search/__init__.py,sha256=
|
|
56
|
+
quasarr/search/__init__.py,sha256=K2y46W4xV9ubH9KqwVGh5N-UhWwFVWqVbsCja3qcZYI,8129
|
|
55
57
|
quasarr/search/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
-
quasarr/search/sources/al.py,sha256=
|
|
57
|
-
quasarr/search/sources/by.py,sha256=
|
|
58
|
-
quasarr/search/sources/dd.py,sha256=
|
|
58
|
+
quasarr/search/sources/al.py,sha256=8AGAcAiEzqHcW76nPIFn417B9CaVgneEtkYiQhq2MzY,18429
|
|
59
|
+
quasarr/search/sources/by.py,sha256=Hk9RArTmWqcE4AxxDVy2l3-64vPpLHpeqME5nrkWBiQ,9045
|
|
60
|
+
quasarr/search/sources/dd.py,sha256=oMK6kcoNbUc5veQ3224aM9Y2yooysN2gCyKmtUH7ylI,6296
|
|
59
61
|
quasarr/search/sources/dj.py,sha256=f-snv7zPYdmQM50XUiGCjHtwl0JnnJ-1R-GW1sjaJH0,7825
|
|
60
|
-
quasarr/search/sources/dl.py,sha256=
|
|
62
|
+
quasarr/search/sources/dl.py,sha256=WhOoUPLqJfWmJH8wgEkz3Rg5fChqH_Jp8q58NKZgekE,14323
|
|
61
63
|
quasarr/search/sources/dt.py,sha256=i_JSxydoASLlTRRhPk5av0fgzw1xhtAkjeF2_7KxbkM,10675
|
|
62
64
|
quasarr/search/sources/dw.py,sha256=ZRWwA4PljLMyBqN1V9SThcL9Bc4KzR4k-7F2LecIMeM,8803
|
|
63
65
|
quasarr/search/sources/fx.py,sha256=J2yUn8_1zMgPlJ9RPeBXoVD-KhSwj97CUQaVMgs8N3U,10297
|
|
64
66
|
quasarr/search/sources/he.py,sha256=X-eyVWkDXsKjXDBLRGoFiA5qA8Z4NeO-jJfygnxnWZg,7762
|
|
65
|
-
quasarr/search/sources/
|
|
67
|
+
quasarr/search/sources/hs.py,sha256=TVVlvPl_DWogoUV7eUTWQXAYR7PVL2AMjHwi2_9esTY,17827
|
|
68
|
+
quasarr/search/sources/mb.py,sha256=iwjMYEiHWicJY5psch5Xsd04XH5KOM98cvysUYesz9Y,8210
|
|
66
69
|
quasarr/search/sources/nk.py,sha256=vU9aK2EjjR6ZF1QP4r4CzcF1qO7LEjuZ_qsf_nKvSc4,7554
|
|
67
|
-
quasarr/search/sources/nx.py,sha256=
|
|
70
|
+
quasarr/search/sources/nx.py,sha256=HvZfzNrteHvjSY6LuPEyKjUHiuuBDrL_zZ-a7bIvLSY,8027
|
|
68
71
|
quasarr/search/sources/sf.py,sha256=W_620AdArvINjhKjBKYvoAX3OKBSeRtOWzTpQFhOmZY,17102
|
|
69
72
|
quasarr/search/sources/sj.py,sha256=fQ1xhaDc1hvycLv2sVYXx_ZBNkjXsJ_s4-VcgJEWy8A,7887
|
|
70
73
|
quasarr/search/sources/sl.py,sha256=XvY7XC4AIXh6-GYsTwERoRKMi4euo1zk2X2gKff8S8E,11079
|
|
71
|
-
quasarr/search/sources/wd.py,sha256=
|
|
72
|
-
quasarr/search/sources/wx.py,sha256=
|
|
74
|
+
quasarr/search/sources/wd.py,sha256=Y_kSbri6u7QaO0JDCeIBtYeo5r_EJXgpDL4WzMrg268,9235
|
|
75
|
+
quasarr/search/sources/wx.py,sha256=3GMgOz2QhmeU1ip-lX5_JrltJi_uuSFGNHJr0Lk7l4c,15555
|
|
73
76
|
quasarr/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
|
-
quasarr/storage/config.py,sha256=
|
|
75
|
-
quasarr/storage/setup.py,sha256=
|
|
77
|
+
quasarr/storage/config.py,sha256=IzPrfwuR_4fsgh-cBQigOtQwqzrtBAsZfdzDotCabJw,6618
|
|
78
|
+
quasarr/storage/setup.py,sha256=zb83kvQfxMFHxC7EvWWaVTy0MtG7iEjMRyfY4hdcbOk,61520
|
|
76
79
|
quasarr/storage/sqlite_database.py,sha256=tmHUotMWIwtyH-g244WvcGhMQMMjGokncv7JpFSi8NM,3639
|
|
77
|
-
quasarr-2.
|
|
78
|
-
quasarr-2.
|
|
79
|
-
quasarr-2.
|
|
80
|
-
quasarr-2.
|
|
81
|
-
quasarr-2.
|
|
80
|
+
quasarr-2.6.1.dist-info/METADATA,sha256=KOEKXAbtynYwQcL7NH32JJvXJ6cfdoN7_LVrPMkW8jE,14727
|
|
81
|
+
quasarr-2.6.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
82
|
+
quasarr-2.6.1.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
|
|
83
|
+
quasarr-2.6.1.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
|
|
84
|
+
quasarr-2.6.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|