quasarr 1.20.5__py3-none-any.whl → 1.20.7__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.

@@ -65,8 +65,12 @@ def get_links_status(package, all_links, is_archive=False):
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
+ elif is_archive:
69
+ # For archives, check if extraction is actually complete
70
+ link_status = link.get('status', '').lower()
71
+ # Check for various "extraction complete" indicators
72
+ if 'extraction ok' not in link_status and 'entpacken ok' not in link_status:
73
+ all_finished = False
70
74
 
71
75
  return {"all_finished": all_finished, "eta": eta, "error": error, "offline_mirror_linkids": offline_mirror_linkids}
72
76
 
@@ -192,17 +196,32 @@ def get_packages(shared_state):
192
196
  comment = get_links_comment(package, downloader_links)
193
197
 
194
198
  # Check if package is actually archived/extracted using archive info
199
+ is_archive = False
195
200
  try:
196
201
  archive_info = shared_state.get_device().extraction.get_archive_info([], [package.get("uuid")])
197
202
  is_archive = True if archive_info and archive_info[0] else False
198
203
  except:
199
- is_archive = True # in case of error assume archive to avoid false finished state
204
+ # On error, don't assume it's an archive - check bytes instead
205
+ pass
200
206
 
201
207
  link_details = get_links_status(package, downloader_links, is_archive)
202
208
 
203
209
  error = link_details["error"]
204
210
  finished = link_details["all_finished"]
205
211
 
212
+ # Additional check: if download is 100% complete and no ETA, it's finished
213
+ # This catches non-archive packages or when archive detection fails
214
+ if not finished and not error:
215
+ bytes_total = int(package.get("bytesTotal", 0))
216
+ bytes_loaded = int(package.get("bytesLoaded", 0))
217
+ eta = package.get("eta")
218
+
219
+ # If download is complete and no ETA (paused/finished state)
220
+ if bytes_total > 0 and bytes_loaded >= bytes_total and eta is None:
221
+ # Only mark as finished if it's not an archive, or if we can't detect archives
222
+ if not is_archive:
223
+ finished = True
224
+
206
225
  if not finished and link_details["eta"]:
207
226
  package["eta"] = link_details["eta"]
208
227
 
@@ -8,7 +8,7 @@ import requests
8
8
 
9
9
 
10
10
  def get_version():
11
- return "1.20.5"
11
+ return "1.20.7"
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.5
3
+ Version: 1.20.7
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
@@ -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=eiX6jOY0HxqnzuaPsZ0CBcpb9EV8cz5-XbWL7e2Uyq4,17321
13
+ quasarr/downloads/packages/__init__.py,sha256=Cub3ztyFYBm30HprvZl7qvfYnjaOH9FsRWDLEyCPHkE,18305
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
@@ -37,7 +37,7 @@ quasarr/providers/notifications.py,sha256=bohT-6yudmFnmZMc3BwCGX0n1HdzSVgQG_LDZm
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=CxqpGt2puR4doakVr0OvxdDynXJafNkanIbznEJXw4s,4004
40
+ quasarr/providers/version.py,sha256=3n41St7dpaV68y4jWH-mPrQMQnw9wmT2tVzh9M8WXhY,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.5.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
68
- quasarr-1.20.5.dist-info/METADATA,sha256=TqoMkMNpwDFi1N0GQWc3Pm1WNzcVa4HfI50YvK3auvE,12653
69
- quasarr-1.20.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
70
- quasarr-1.20.5.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
71
- quasarr-1.20.5.dist-info/top_level.txt,sha256=dipJdaRda5ruTZkoGfZU60bY4l9dtPlmOWwxK_oGSF0,8
72
- quasarr-1.20.5.dist-info/RECORD,,
67
+ quasarr-1.20.7.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
68
+ quasarr-1.20.7.dist-info/METADATA,sha256=Q2qAIH45RKx6wnvtr93VfAGIomI0h32ILBdNezhev7c,12653
69
+ quasarr-1.20.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
70
+ quasarr-1.20.7.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
71
+ quasarr-1.20.7.dist-info/top_level.txt,sha256=dipJdaRda5ruTZkoGfZU60bY4l9dtPlmOWwxK_oGSF0,8
72
+ quasarr-1.20.7.dist-info/RECORD,,