quasarr 1.20.4__tar.gz → 1.20.6__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.4 → quasarr-1.20.6}/PKG-INFO +1 -1
  2. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/packages/__init__.py +16 -10
  3. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/version.py +1 -1
  4. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr.egg-info/PKG-INFO +1 -1
  5. {quasarr-1.20.4 → quasarr-1.20.6}/LICENSE +0 -0
  6. {quasarr-1.20.4 → quasarr-1.20.6}/README.md +0 -0
  7. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/__init__.py +0 -0
  8. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/api/__init__.py +0 -0
  9. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/api/arr/__init__.py +0 -0
  10. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/api/captcha/__init__.py +0 -0
  11. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/api/config/__init__.py +0 -0
  12. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/api/sponsors_helper/__init__.py +0 -0
  13. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/api/statistics/__init__.py +0 -0
  14. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/__init__.py +0 -0
  15. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/linkcrypters/__init__.py +0 -0
  16. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/linkcrypters/al.py +0 -0
  17. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/linkcrypters/filecrypt.py +0 -0
  18. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/linkcrypters/hide.py +0 -0
  19. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/__init__.py +0 -0
  20. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/al.py +0 -0
  21. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/by.py +0 -0
  22. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/dd.py +0 -0
  23. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/dj.py +0 -0
  24. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/dt.py +0 -0
  25. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/dw.py +0 -0
  26. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/he.py +0 -0
  27. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/mb.py +0 -0
  28. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/nk.py +0 -0
  29. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/nx.py +0 -0
  30. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/sf.py +0 -0
  31. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/sj.py +0 -0
  32. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/sl.py +0 -0
  33. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/downloads/sources/wd.py +0 -0
  34. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/__init__.py +0 -0
  35. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/cloudflare.py +0 -0
  36. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/html_images.py +0 -0
  37. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/html_templates.py +0 -0
  38. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/imdb_metadata.py +0 -0
  39. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/log.py +0 -0
  40. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/myjd_api.py +0 -0
  41. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/notifications.py +0 -0
  42. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/obfuscated.py +0 -0
  43. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/sessions/__init__.py +0 -0
  44. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/sessions/al.py +0 -0
  45. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/sessions/dd.py +0 -0
  46. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/sessions/nx.py +0 -0
  47. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/shared_state.py +0 -0
  48. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/statistics.py +0 -0
  49. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/providers/web_server.py +0 -0
  50. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/__init__.py +0 -0
  51. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/__init__.py +0 -0
  52. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/al.py +0 -0
  53. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/by.py +0 -0
  54. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/dd.py +0 -0
  55. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/dj.py +0 -0
  56. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/dt.py +0 -0
  57. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/dw.py +0 -0
  58. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/fx.py +0 -0
  59. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/he.py +0 -0
  60. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/mb.py +0 -0
  61. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/nk.py +0 -0
  62. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/nx.py +0 -0
  63. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/sf.py +0 -0
  64. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/sj.py +0 -0
  65. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/sl.py +0 -0
  66. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/search/sources/wd.py +0 -0
  67. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/storage/__init__.py +0 -0
  68. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/storage/config.py +0 -0
  69. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/storage/setup.py +0 -0
  70. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr/storage/sqlite_database.py +0 -0
  71. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr.egg-info/SOURCES.txt +0 -0
  72. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr.egg-info/dependency_links.txt +0 -0
  73. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr.egg-info/entry_points.txt +0 -0
  74. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr.egg-info/not-zip-safe +0 -0
  75. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr.egg-info/requires.txt +0 -0
  76. {quasarr-1.20.4 → quasarr-1.20.6}/quasarr.egg-info/top_level.txt +0 -0
  77. {quasarr-1.20.4 → quasarr-1.20.6}/setup.cfg +0 -0
  78. {quasarr-1.20.4 → quasarr-1.20.6}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quasarr
3
- Version: 1.20.4
3
+ Version: 1.20.6
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
@@ -158,7 +158,7 @@ def get_packages(shared_state):
158
158
  if linkgrabber_packages:
159
159
  for package in linkgrabber_packages:
160
160
  comment = get_links_comment(package, shared_state.get_device().linkgrabber.query_links())
161
- link_details = get_links_status(package, linkgrabber_links)
161
+ link_details = get_links_status(package, linkgrabber_links, is_archive=False)
162
162
 
163
163
  error = link_details["error"]
164
164
  offline_mirror_linkids = link_details["offline_mirror_linkids"]
@@ -191,15 +191,28 @@ def get_packages(shared_state):
191
191
  for package in downloader_packages:
192
192
  comment = get_links_comment(package, downloader_links)
193
193
 
194
+ # Check if package is actually archived/extracted using archive info
194
195
  try:
195
196
  archive_info = shared_state.get_device().extraction.get_archive_info([], [package.get("uuid")])
196
197
  is_archive = True if archive_info and archive_info[0] else False
197
198
  except:
198
- is_archive = True # in case of error assume archive to avoid false finished state
199
+ is_archive = True # in case of error assume archive to avoid false finished state
200
+
199
201
  link_details = get_links_status(package, downloader_links, is_archive)
200
202
 
201
203
  error = link_details["error"]
202
204
  finished = link_details["all_finished"]
205
+
206
+ # Additional check for non-archive packages or when link status check fails
207
+ # If download is 100% complete and no ETA, it's finished
208
+ if not finished and not error and not is_archive:
209
+ bytes_total = int(package.get("bytesTotal", 0))
210
+ bytes_loaded = int(package.get("bytesLoaded", 0))
211
+ eta = package.get("eta")
212
+
213
+ if bytes_total > 0 and bytes_loaded >= bytes_total and eta is None:
214
+ finished = True
215
+
203
216
  if not finished and link_details["eta"]:
204
217
  package["eta"] = link_details["eta"]
205
218
 
@@ -257,15 +270,8 @@ def get_packages(shared_state):
257
270
  if mb_left < 0:
258
271
  mb_left = 0
259
272
 
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
262
273
  if eta is None:
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"
274
+ status = "Paused"
269
275
  else:
270
276
  time_left = format_eta(int(eta))
271
277
  if mb_left == 0:
@@ -8,7 +8,7 @@ import requests
8
8
 
9
9
 
10
10
  def get_version():
11
- return "1.20.4"
11
+ return "1.20.6"
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.4
3
+ Version: 1.20.6
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