quasarr 1.20.1__py3-none-any.whl → 1.20.3__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/downloads/packages/__init__.py +10 -2
- quasarr/providers/myjd_api.py +24 -0
- quasarr/providers/version.py +1 -1
- {quasarr-1.20.1.dist-info → quasarr-1.20.3.dist-info}/METADATA +11 -4
- {quasarr-1.20.1.dist-info → quasarr-1.20.3.dist-info}/RECORD +9 -9
- {quasarr-1.20.1.dist-info → quasarr-1.20.3.dist-info}/WHEEL +0 -0
- {quasarr-1.20.1.dist-info → quasarr-1.20.3.dist-info}/entry_points.txt +0 -0
- {quasarr-1.20.1.dist-info → quasarr-1.20.3.dist-info}/licenses/LICENSE +0 -0
- {quasarr-1.20.1.dist-info → quasarr-1.20.3.dist-info}/top_level.txt +0 -0
|
@@ -19,7 +19,7 @@ def get_links_comment(package, package_links):
|
|
|
19
19
|
return None
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
def get_links_status(package, all_links):
|
|
22
|
+
def get_links_status(package, all_links, is_archive=False):
|
|
23
23
|
links_in_package = []
|
|
24
24
|
package_uuid = package.get("uuid")
|
|
25
25
|
if package_uuid and all_links:
|
|
@@ -65,6 +65,8 @@ def get_links_status(package, all_links):
|
|
|
65
65
|
if eta and link_eta > eta or not eta:
|
|
66
66
|
eta = link_eta
|
|
67
67
|
all_finished = False
|
|
68
|
+
elif is_archive and link.get('status', '').lower() != 'extraction ok':
|
|
69
|
+
all_finished = False
|
|
68
70
|
|
|
69
71
|
return {"all_finished": all_finished, "eta": eta, "error": error, "offline_mirror_linkids": offline_mirror_linkids}
|
|
70
72
|
|
|
@@ -188,7 +190,13 @@ def get_packages(shared_state):
|
|
|
188
190
|
if downloader_packages and downloader_links:
|
|
189
191
|
for package in downloader_packages:
|
|
190
192
|
comment = get_links_comment(package, downloader_links)
|
|
191
|
-
|
|
193
|
+
|
|
194
|
+
try:
|
|
195
|
+
archive_info = shared_state.get_device().extraction.get_archive_info([], [package.get("uuid")])
|
|
196
|
+
is_archive = True if archive_info and archive_info[0] else False
|
|
197
|
+
except:
|
|
198
|
+
is_archive = True # in case of error assume archive to avoid false finished state
|
|
199
|
+
link_details = get_links_status(package, downloader_links, is_archive)
|
|
192
200
|
|
|
193
201
|
error = link_details["error"]
|
|
194
202
|
finished = link_details["all_finished"]
|
quasarr/providers/myjd_api.py
CHANGED
|
@@ -400,6 +400,29 @@ class Downloads:
|
|
|
400
400
|
return resp
|
|
401
401
|
|
|
402
402
|
|
|
403
|
+
class Extraction:
|
|
404
|
+
"""
|
|
405
|
+
Class that represents the extraction details of a Device
|
|
406
|
+
"""
|
|
407
|
+
|
|
408
|
+
def __init__(self, device):
|
|
409
|
+
self.device = device
|
|
410
|
+
self.url = "/extraction"
|
|
411
|
+
|
|
412
|
+
def get_archive_info(self, link_ids=[], package_ids=[]):
|
|
413
|
+
"""
|
|
414
|
+
Get ArchiveStatus for links and/or packages.
|
|
415
|
+
|
|
416
|
+
:param package_ids: Package UUID's.
|
|
417
|
+
:type: list of strings.
|
|
418
|
+
:param link_ids: link UUID's.
|
|
419
|
+
:type: list of strings
|
|
420
|
+
"""
|
|
421
|
+
params = [link_ids, package_ids]
|
|
422
|
+
resp = self.device.action(self.url + "/getArchiveInfo", params)
|
|
423
|
+
return resp
|
|
424
|
+
|
|
425
|
+
|
|
403
426
|
class Jddevice:
|
|
404
427
|
"""
|
|
405
428
|
Class that represents a JDownloader device and it's functions
|
|
@@ -418,6 +441,7 @@ class Jddevice:
|
|
|
418
441
|
self.config = Config(self)
|
|
419
442
|
self.linkgrabber = Linkgrabber(self)
|
|
420
443
|
self.downloads = Downloads(self)
|
|
444
|
+
self.extraction = Extraction(self)
|
|
421
445
|
self.downloadcontroller = DownloadController(self)
|
|
422
446
|
self.update = Update(self)
|
|
423
447
|
self.__direct_connection_info = None
|
quasarr/providers/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: quasarr
|
|
3
|
-
Version: 1.20.
|
|
3
|
+
Version: 1.20.3
|
|
4
4
|
Summary: Quasarr connects JDownloader with Radarr, Sonarr and LazyLibrarian. It also decrypts links protected by CAPTCHAs.
|
|
5
5
|
Home-page: https://github.com/rix1337/Quasarr
|
|
6
6
|
Author: rix1337
|
|
@@ -39,7 +39,7 @@ Quasarr pretends to be both `Newznab Indexer` and `SABnzbd client`. Therefore, d
|
|
|
39
39
|
indexers or download clients. It simply does not know what NZB or torrent files are.
|
|
40
40
|
|
|
41
41
|
Quasarr includes a solution to quickly and easily decrypt protected links.
|
|
42
|
-
[Active Sponsors get access to SponsorsHelper to do so automatically.](https://github.com/rix1337/Quasarr?tab=readme-ov-file#sponsorshelper)
|
|
42
|
+
[Active monthly Sponsors get access to SponsorsHelper to do so automatically.](https://github.com/rix1337/Quasarr?tab=readme-ov-file#sponsorshelper)
|
|
43
43
|
Alternatively, follow the link from the console output (or discord notification) to solve CAPTCHAs manually.
|
|
44
44
|
Quasarr will confidently handle the rest.
|
|
45
45
|
|
|
@@ -258,6 +258,11 @@ docker run -d \
|
|
|
258
258
|
-e 'DEATHBYCAPTCHA_TOKEN'='2FMum5zuDBxMmbXDIsADnllEFl73bomydIpzo7...' \
|
|
259
259
|
-e 'GITHUB_TOKEN'='ghp_123.....456789' \
|
|
260
260
|
-e 'FLARESOLVERR_URL'='http://10.10.0.1:8191/v1' \
|
|
261
|
+
-e 'NX_USER'='your_nx_username' \
|
|
262
|
+
-e 'NX_PASS'='your_nx_password' \
|
|
263
|
+
-e 'JUNKIES_USER'='your_junkies_username' \
|
|
264
|
+
-e 'JUNKIES_PASS'='your_junkies_password' \
|
|
265
|
+
-e 'JUNKIES_HOSTER'='your_desired_hoster' \
|
|
261
266
|
ghcr.io/rix1337-sponsors/docker/helper:latest
|
|
262
267
|
```
|
|
263
268
|
|
|
@@ -266,8 +271,10 @@ docker run -d \
|
|
|
266
271
|
* `QUASARR_URL` → Local URL of Quasarr
|
|
267
272
|
* `DEATHBYCAPTCHA_TOKEN` → [DeathByCaptcha](https://deathbycaptcha.com/register?refid=6184288242b) account token
|
|
268
273
|
* `GITHUB_TOKEN` → Classic GitHub PAT with the scopes listed above
|
|
269
|
-
* `FLARESOLVERR_URL` → Local URL of [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
|
|
270
|
-
|
|
274
|
+
* `FLARESOLVERR_URL` → Local URL of [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr) - required!
|
|
275
|
+
* `NX_USER` / `NX_PASS` → NX account credentials
|
|
276
|
+
* `JUNKIES_USER` / `JUNKIES_PASS` → Junkies account credentials
|
|
277
|
+
* `JUNKIES_HOSTER` → Preferred hoster for Junkies links
|
|
271
278
|
---
|
|
272
279
|
|
|
273
280
|
⚠️ **Without a valid GitHub token linked to an active sponsorship, the image will not run.**
|
|
@@ -10,7 +10,7 @@ quasarr/downloads/linkcrypters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
|
|
|
10
10
|
quasarr/downloads/linkcrypters/al.py,sha256=pM3NDan8x0WU8OS1GV3HuuV4B6Nm0a-ATrVORvLHt9M,8487
|
|
11
11
|
quasarr/downloads/linkcrypters/filecrypt.py,sha256=GT51x_MG_hW4IpOF6OvL5r-2mTnMijI8K7_1D5Bfn4U,18884
|
|
12
12
|
quasarr/downloads/linkcrypters/hide.py,sha256=kMxjsYZJpC1V3jwYv9b0h4HKBIectLlgglwOmexvFXs,4107
|
|
13
|
-
quasarr/downloads/packages/__init__.py,sha256=
|
|
13
|
+
quasarr/downloads/packages/__init__.py,sha256=TbmoBdgHDf09X-TnfOEKgppkCafy0ObeN3VvLMMyheM,17219
|
|
14
14
|
quasarr/downloads/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
quasarr/downloads/sources/al.py,sha256=Ulc4fTuX8_gOHeTJzZYEAgUCiFPoyczIdbZh6qA3jzM,26180
|
|
16
16
|
quasarr/downloads/sources/by.py,sha256=VzytGYyy81vjsvNJabohoK8PkjYTKCwXM1TjeD3Ker0,3695
|
|
@@ -32,12 +32,12 @@ quasarr/providers/html_images.py,sha256=ZvSzG5Mbjol1I_exFHcb4BZ2eUQ3CqquY_MwRBlr
|
|
|
32
32
|
quasarr/providers/html_templates.py,sha256=90O9RGwlpJB7jC8NZ0ggh9aD6LNM34IRSVsHCa9vSls,7825
|
|
33
33
|
quasarr/providers/imdb_metadata.py,sha256=10L4kZkt6Fg0HGdNcc6KCtIQHRYEqdarLyaMVN6mT8w,4843
|
|
34
34
|
quasarr/providers/log.py,sha256=_g5RwtfuksARXnvryhsngzoJyFcNzj6suqd3ndqZM0Y,313
|
|
35
|
-
quasarr/providers/myjd_api.py,sha256=
|
|
35
|
+
quasarr/providers/myjd_api.py,sha256=vPiX-kOQk19ugciefw9wm_hw8djbT4o-Gk9w2XEBeI4,32707
|
|
36
36
|
quasarr/providers/notifications.py,sha256=bohT-6yudmFnmZMc3BwCGX0n1HdzSVgQG_LDZm_38dI,4630
|
|
37
37
|
quasarr/providers/obfuscated.py,sha256=YydQJHrZ485pHaXK0DHHRW3eLZygGr6c0xnUKD6mcCE,236502
|
|
38
38
|
quasarr/providers/shared_state.py,sha256=4nswf5AuA4c1DWqSXsX0HXwlDt5e-UUUvQSy-vryCRE,28987
|
|
39
39
|
quasarr/providers/statistics.py,sha256=cEQixYnDMDqtm5wWe40E_2ucyo4mD0n3SrfelhQi1L8,6452
|
|
40
|
-
quasarr/providers/version.py,sha256=
|
|
40
|
+
quasarr/providers/version.py,sha256=gGTjGfWXw48sL5TIK_YqtPCWviMXUqnRZfTaQe-x8Wo,4004
|
|
41
41
|
quasarr/providers/web_server.py,sha256=XPj98T-axxgotovuB-rVw1IPCkJiNdXBlEeFvM_zSlM,1432
|
|
42
42
|
quasarr/providers/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
43
|
quasarr/providers/sessions/al.py,sha256=mlP6SWfCY2HyOSV40uyotQ5T4eSBNYG9A5GWOEAdz-c,9589
|
|
@@ -64,9 +64,9 @@ quasarr/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
64
64
|
quasarr/storage/config.py,sha256=a0JAeiSqMQYBvfZTyYtOxDZvuLGP5lZhMHb7nX9azPc,6130
|
|
65
65
|
quasarr/storage/setup.py,sha256=gpHOsc5qtt-M72saZoMJFLE2YlCrjv7FWZknh-iVKsk,17766
|
|
66
66
|
quasarr/storage/sqlite_database.py,sha256=yMqFQfKf0k7YS-6Z3_7pj4z1GwWSXJ8uvF4IydXsuTE,3554
|
|
67
|
-
quasarr-1.20.
|
|
68
|
-
quasarr-1.20.
|
|
69
|
-
quasarr-1.20.
|
|
70
|
-
quasarr-1.20.
|
|
71
|
-
quasarr-1.20.
|
|
72
|
-
quasarr-1.20.
|
|
67
|
+
quasarr-1.20.3.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
|
|
68
|
+
quasarr-1.20.3.dist-info/METADATA,sha256=MS_HxaTINlvc1u1mRhcU_NuhYg4qa4y1Ifw70-_Y4gE,12653
|
|
69
|
+
quasarr-1.20.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
70
|
+
quasarr-1.20.3.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
|
|
71
|
+
quasarr-1.20.3.dist-info/top_level.txt,sha256=dipJdaRda5ruTZkoGfZU60bY4l9dtPlmOWwxK_oGSF0,8
|
|
72
|
+
quasarr-1.20.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|