quasarr 1.20.2__tar.gz → 1.20.4__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.

Files changed (78) hide show
  1. {quasarr-1.20.2 → quasarr-1.20.4}/PKG-INFO +1 -1
  2. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/packages/__init__.py +18 -3
  3. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/myjd_api.py +24 -0
  4. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/version.py +1 -1
  5. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr.egg-info/PKG-INFO +1 -1
  6. {quasarr-1.20.2 → quasarr-1.20.4}/LICENSE +0 -0
  7. {quasarr-1.20.2 → quasarr-1.20.4}/README.md +0 -0
  8. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/__init__.py +0 -0
  9. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/api/__init__.py +0 -0
  10. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/api/arr/__init__.py +0 -0
  11. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/api/captcha/__init__.py +0 -0
  12. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/api/config/__init__.py +0 -0
  13. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/api/sponsors_helper/__init__.py +0 -0
  14. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/api/statistics/__init__.py +0 -0
  15. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/__init__.py +0 -0
  16. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/linkcrypters/__init__.py +0 -0
  17. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/linkcrypters/al.py +0 -0
  18. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/linkcrypters/filecrypt.py +0 -0
  19. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/linkcrypters/hide.py +0 -0
  20. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/__init__.py +0 -0
  21. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/al.py +0 -0
  22. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/by.py +0 -0
  23. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/dd.py +0 -0
  24. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/dj.py +0 -0
  25. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/dt.py +0 -0
  26. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/dw.py +0 -0
  27. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/he.py +0 -0
  28. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/mb.py +0 -0
  29. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/nk.py +0 -0
  30. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/nx.py +0 -0
  31. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/sf.py +0 -0
  32. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/sj.py +0 -0
  33. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/sl.py +0 -0
  34. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/downloads/sources/wd.py +0 -0
  35. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/__init__.py +0 -0
  36. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/cloudflare.py +0 -0
  37. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/html_images.py +0 -0
  38. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/html_templates.py +0 -0
  39. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/imdb_metadata.py +0 -0
  40. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/log.py +0 -0
  41. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/notifications.py +0 -0
  42. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/obfuscated.py +0 -0
  43. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/sessions/__init__.py +0 -0
  44. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/sessions/al.py +0 -0
  45. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/sessions/dd.py +0 -0
  46. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/sessions/nx.py +0 -0
  47. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/shared_state.py +0 -0
  48. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/statistics.py +0 -0
  49. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/providers/web_server.py +0 -0
  50. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/__init__.py +0 -0
  51. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/__init__.py +0 -0
  52. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/al.py +0 -0
  53. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/by.py +0 -0
  54. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/dd.py +0 -0
  55. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/dj.py +0 -0
  56. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/dt.py +0 -0
  57. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/dw.py +0 -0
  58. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/fx.py +0 -0
  59. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/he.py +0 -0
  60. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/mb.py +0 -0
  61. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/nk.py +0 -0
  62. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/nx.py +0 -0
  63. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/sf.py +0 -0
  64. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/sj.py +0 -0
  65. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/sl.py +0 -0
  66. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/search/sources/wd.py +0 -0
  67. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/storage/__init__.py +0 -0
  68. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/storage/config.py +0 -0
  69. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/storage/setup.py +0 -0
  70. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr/storage/sqlite_database.py +0 -0
  71. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr.egg-info/SOURCES.txt +0 -0
  72. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr.egg-info/dependency_links.txt +0 -0
  73. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr.egg-info/entry_points.txt +0 -0
  74. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr.egg-info/not-zip-safe +0 -0
  75. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr.egg-info/requires.txt +0 -0
  76. {quasarr-1.20.2 → quasarr-1.20.4}/quasarr.egg-info/top_level.txt +0 -0
  77. {quasarr-1.20.2 → quasarr-1.20.4}/setup.cfg +0 -0
  78. {quasarr-1.20.2 → quasarr-1.20.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quasarr
3
- Version: 1.20.2
3
+ Version: 1.20.4
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
@@ -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
- link_details = get_links_status(package, downloader_links)
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"]
@@ -249,8 +257,15 @@ def get_packages(shared_state):
249
257
  if mb_left < 0:
250
258
  mb_left = 0
251
259
 
260
+ # Check if package is actually finished (should be in history, not queue)
261
+ # This handles the case where finished packages haven't been moved to history yet
252
262
  if eta is None:
253
- status = "Paused"
263
+ # No ETA could mean paused OR finished
264
+ # Check if download is complete
265
+ if bytes_total > 0 and bytes_loaded >= bytes_total:
266
+ status = "Completed"
267
+ else:
268
+ status = "Paused"
254
269
  else:
255
270
  time_left = format_eta(int(eta))
256
271
  if mb_left == 0:
@@ -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
@@ -8,7 +8,7 @@ import requests
8
8
 
9
9
 
10
10
  def get_version():
11
- return "1.20.2"
11
+ return "1.20.4"
12
12
 
13
13
 
14
14
  def get_latest_version():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quasarr
3
- Version: 1.20.2
3
+ Version: 1.20.4
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
File without changes
File without changes
File without changes
File without changes
File without changes