quasarr 1.20.6__py3-none-any.whl → 1.20.8__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.
@@ -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,26 +196,31 @@ 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
 
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:
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:
209
215
  bytes_total = int(package.get("bytesTotal", 0))
210
216
  bytes_loaded = int(package.get("bytesLoaded", 0))
211
217
  eta = package.get("eta")
212
218
 
219
+ # If download is complete and no ETA (paused/finished state)
213
220
  if bytes_total > 0 and bytes_loaded >= bytes_total and eta is None:
214
- finished = True
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
215
224
 
216
225
  if not finished and link_details["eta"]:
217
226
  package["eta"] = link_details["eta"]
@@ -8,6 +8,7 @@ from bs4 import BeautifulSoup
8
8
  from quasarr.providers.log import info
9
9
 
10
10
  hostname = "nk"
11
+ supported_mirrors = ["rapidgator", "ddownload"]
11
12
 
12
13
 
13
14
  def get_nk_download_links(shared_state, url, mirror, title):
@@ -28,9 +29,14 @@ def get_nk_download_links(shared_state, url, mirror, title):
28
29
  anchors = soup.select('a.btn-orange')
29
30
  candidates = []
30
31
  for a in anchors:
32
+ mirror = a.text.strip().lower()
33
+ if mirror == 'ddl.to':
34
+ mirror = 'ddownload'
35
+
36
+ if mirror not in supported_mirrors:
37
+ continue
31
38
 
32
39
  href = a.get('href', '').strip()
33
- hoster = href.split('/')[3].lower()
34
40
  if not href.lower().startswith(('http://', 'https://')):
35
41
  href = 'https://' + host + href
36
42
 
@@ -40,10 +46,7 @@ def get_nk_download_links(shared_state, url, mirror, title):
40
46
  info(f"{hostname}: could not resolve download link for {title}: {e}")
41
47
  continue
42
48
 
43
- if hoster == 'ddl.to':
44
- hoster = 'ddownload'
45
-
46
- candidates.append([href, hoster])
49
+ candidates.append([href, mirror])
47
50
 
48
51
  if not candidates:
49
52
  info(f"No external download links found on {hostname} page for {title}")
@@ -8,7 +8,7 @@ import requests
8
8
 
9
9
 
10
10
  def get_version():
11
- return "1.20.6"
11
+ return "1.20.8"
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.6
3
+ Version: 1.20.8
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=Y2I1msa_1FeOc5cdFojx49-GtP68wuX8ud1R3hgYLwQ,17833
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
@@ -20,7 +20,7 @@ quasarr/downloads/sources/dt.py,sha256=fzAyJy8nmqTAFRObvaRbvsXdBkCo5JuojCJYQMYuP
20
20
  quasarr/downloads/sources/dw.py,sha256=15UH-kBZt06GS5CDi-TTJGV_H59mQO0Nl-y3nYA5kOk,2504
21
21
  quasarr/downloads/sources/he.py,sha256=EZ42WIHE8rwvpvwesaWeG__1dUBq75OQzJ1n7Lgrx1g,3450
22
22
  quasarr/downloads/sources/mb.py,sha256=IS5_RdACD3yterFEAj_N7RIH4TVK-VEauZqfya23hmA,1411
23
- quasarr/downloads/sources/nk.py,sha256=rFdAf9ewfl5ELIFtlZWQ8Z3VjyCSxGwLX92szzwjvz0,1429
23
+ quasarr/downloads/sources/nk.py,sha256=qA1qIOthu-Jt93ykPzE-gvSFEfA5YSIMNDymIWD98Tc,1538
24
24
  quasarr/downloads/sources/nx.py,sha256=nI0c-oM1g_EyW06_o2wFgn_jm_Zh1XMy3kbRCN0hw1E,3211
25
25
  quasarr/downloads/sources/sf.py,sha256=PDBuWgJmEYmD1b-5blS3YWgrqIhJjfwz91IuiMy6rX8,6224
26
26
  quasarr/downloads/sources/sj.py,sha256=d2HC52SFYXUXAr7AIaipthVvL-WpvJaD-8AuN-5Z-I8,214
@@ -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=s7OycnwHJBVjgzHA8VIL2rEnfGl3qysb3Ybeq-XhQFs,4004
40
+ quasarr/providers/version.py,sha256=9Qj2WKI6t9PhJ-I5iwExX3pOFRYnxcHmCX97EiV4xsw,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.6.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
68
- quasarr-1.20.6.dist-info/METADATA,sha256=KM8CX4K4GWZVaWO_tpnv094gIERHHBHt4Tka55TDFKs,12653
69
- quasarr-1.20.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
70
- quasarr-1.20.6.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
71
- quasarr-1.20.6.dist-info/top_level.txt,sha256=dipJdaRda5ruTZkoGfZU60bY4l9dtPlmOWwxK_oGSF0,8
72
- quasarr-1.20.6.dist-info/RECORD,,
67
+ quasarr-1.20.8.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
68
+ quasarr-1.20.8.dist-info/METADATA,sha256=hXb-QMlycS1yTS_rn8fXB6FlLXH094aZ2Wl3ASi-dag,12653
69
+ quasarr-1.20.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
70
+ quasarr-1.20.8.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
71
+ quasarr-1.20.8.dist-info/top_level.txt,sha256=dipJdaRda5ruTZkoGfZU60bY4l9dtPlmOWwxK_oGSF0,8
72
+ quasarr-1.20.8.dist-info/RECORD,,