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

@@ -14,19 +14,15 @@ def _get_category_emoji(cat):
14
14
 
15
15
  def _format_size(mb=None, bytes_val=None):
16
16
  if bytes_val is not None:
17
- # Handle bytes directly for better precision with small files
18
17
  if bytes_val == 0:
19
18
  return "? MB"
20
- if bytes_val < 1024 * 1024: # Less than 1 MB
21
- kb = bytes_val / 1024
22
- if kb < 1:
23
- return f"{bytes_val} B"
24
- return f"{kb:.0f} KB"
19
+ if bytes_val < 1024:
20
+ return f"{bytes_val} B"
21
+ if bytes_val < 1024 * 1024:
22
+ return f"{bytes_val // 1024} KB"
25
23
  mb = bytes_val / (1024 * 1024)
26
24
  if mb is None or mb == 0:
27
25
  return "? MB"
28
- if mb < 1:
29
- return f"{mb * 1024:.0f} KB"
30
26
  if mb < 1024:
31
27
  return f"{mb:.0f} MB"
32
28
  return f"{mb / 1024:.1f} GB"
@@ -41,6 +37,7 @@ def _render_queue_item(item):
41
37
  percentage = item.get('percentage', 0)
42
38
  timeleft = item.get('timeleft', '??:??:??')
43
39
  bytes_val = item.get('bytes', 0)
40
+ mb = item.get('mb', 0)
44
41
  cat = item.get('cat', 'not_quasarr')
45
42
  is_archive = item.get('is_archive', False)
46
43
  nzo_id = item.get('nzo_id', '')
@@ -63,7 +60,7 @@ def _render_queue_item(item):
63
60
 
64
61
  archive_badge = '<span class="badge archive">📁</span>' if is_archive else ''
65
62
  cat_emoji = _get_category_emoji(cat)
66
- size_str = _format_size(bytes_val=bytes_val)
63
+ size_str = _format_size(bytes_val=bytes_val) if bytes_val else _format_size(mb=mb)
67
64
 
68
65
  # Progress bar - show "waiting..." for 0%
69
66
  if percentage == 0:
@@ -468,8 +468,10 @@ def get_packages(shared_state, _cache=None):
468
468
  details = package["details"]
469
469
  name = f"[Linkgrabber] {details.get('name', 'unknown')}"
470
470
  try:
471
- mb = mb_left = int(details.get("bytesTotal", 0)) / (1024 * 1024)
471
+ bytes_total = int(details.get("bytesTotal", 0))
472
+ mb = mb_left = bytes_total / (1024 * 1024)
472
473
  except (KeyError, TypeError, ValueError):
474
+ bytes_total = 0
473
475
  mb = mb_left = 0
474
476
  package_id = package["comment"]
475
477
  category = get_category_from_package_id(package_id)
@@ -505,6 +507,7 @@ def get_packages(shared_state, _cache=None):
505
507
  details = package["details"]
506
508
  name = f"[CAPTCHA not solved!] {details.get('title', 'unknown')}"
507
509
  mb = mb_left = details.get("size_mb") or 0
510
+ bytes_total = 0 # Protected packages don't have reliable byte data
508
511
  package_id = package.get("package_id")
509
512
  category = get_category_from_package_id(package_id)
510
513
  package_type = "protected"
@@ -519,9 +522,6 @@ def get_packages(shared_state, _cache=None):
519
522
  except (ZeroDivisionError, ValueError, TypeError):
520
523
  percentage = 0
521
524
 
522
- # Keep mb/mbleft as integers for API compatibility, add bytes for UI display
523
- bytes_total = int(mb * 1024 * 1024) if mb else 0
524
-
525
525
  downloads["queue"].append({
526
526
  "index": queue_index,
527
527
  "nzo_id": effective_id,
@@ -8,7 +8,7 @@ import requests
8
8
 
9
9
 
10
10
  def get_version():
11
- return "2.1.4"
11
+ return "2.1.5"
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: 2.1.4
3
+ Version: 2.1.5
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
@@ -3,7 +3,7 @@ quasarr/api/__init__.py,sha256=yrDJM0qxmsOruOyqUwhSmmaT6E3DLK-yPy7Lutk1WYM,16384
3
3
  quasarr/api/arr/__init__.py,sha256=eEop8A5t936uT5azn4qz0bq1DMX84_Ja16wyleGFhyM,18495
4
4
  quasarr/api/captcha/__init__.py,sha256=2pca9jnJMWZECHeAvKP9Lwsa3_GkVsvQEn7rof8Ep1s,73504
5
5
  quasarr/api/config/__init__.py,sha256=HDoqRv6El-e5iejVpwEz6ttySjDeiTQGom5D__nachU,13682
6
- quasarr/api/packages/__init__.py,sha256=0X7U47xfU9zvNT-yxFGhQG3upqX7q-7PEC6dETRD-I8,26407
6
+ quasarr/api/packages/__init__.py,sha256=IJxAPiqN14zLXFn820pZrqWGq4wuXw1WtjUoZr2U00Y,26311
7
7
  quasarr/api/sponsors_helper/__init__.py,sha256=vZIFGkc5HTRozjvi47tqxz6XpwDe8sDXVyeydc9k0Y0,6708
8
8
  quasarr/api/statistics/__init__.py,sha256=NrBAjjHkIUE95HhPUGIfNqh2IqBqJ_zm00S90Y-Qnus,7038
9
9
  quasarr/downloads/__init__.py,sha256=BUZpqWN3VnYSM8ZX4lC3MXVfShwx95I6FKz8Xl95T1s,16004
@@ -11,7 +11,7 @@ quasarr/downloads/linkcrypters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
11
11
  quasarr/downloads/linkcrypters/al.py,sha256=mfUG5VclC_-FcGoZL9zHYD7dz7X_YpaNmoKkgiyl9-0,8812
12
12
  quasarr/downloads/linkcrypters/filecrypt.py,sha256=nUZCTmvKylaNk1KAXcYUV1FgQCVAKNE3roXCNaqHLYA,17057
13
13
  quasarr/downloads/linkcrypters/hide.py,sha256=H4hJWhENkszV1u_ULC3aOW2fu9infC-Nv-7wx2DYqrA,6266
14
- quasarr/downloads/packages/__init__.py,sha256=nBG4-O5-J3DRVp8tzMUN5HsUA946KwVyxhK0I69kAUw,32740
14
+ quasarr/downloads/packages/__init__.py,sha256=ZHU5eYNfl62IKyxYIzTgfzUYbPZIYgljHiPqHJAYogg,32747
15
15
  quasarr/downloads/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  quasarr/downloads/sources/al.py,sha256=g587VESZRZHZ03uxHKpufEr5qAtzbyGLmoijksU35jk,27297
17
17
  quasarr/downloads/sources/by.py,sha256=kmUTn3izayRCV7W-t0E4kYE8qTbt3L3reCLozfvRGcU,3807
@@ -43,7 +43,7 @@ quasarr/providers/obfuscated.py,sha256=d0dxu3oPqDqN8I7qmGPPIBqjLzTQbZTQsLAZ5auw1
43
43
  quasarr/providers/shared_state.py,sha256=5a_ZbGqTvt4-OqBt2a1WtR9I5J_Ky7IlkEY8EGtKVu8,30646
44
44
  quasarr/providers/statistics.py,sha256=cEQixYnDMDqtm5wWe40E_2ucyo4mD0n3SrfelhQi1L8,6452
45
45
  quasarr/providers/utils.py,sha256=mcUPbcXMsLmrYv0CTZO5a9aOt2-JLyL3SZxu6N8OyjU,12075
46
- quasarr/providers/version.py,sha256=viG1avqtR1pw7V6UDPJRnVo5bxMllFUzhKf7fVFXt_Q,4003
46
+ quasarr/providers/version.py,sha256=yR-O_QV4gc8tIxIWrG7LptGuF-2qZ9GO43zdC6USiuc,4003
47
47
  quasarr/providers/web_server.py,sha256=AYd0KRxdDWMBr87BP8wlSMuL4zZo0I_rY-vHBai6Pfg,1688
48
48
  quasarr/providers/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
49
  quasarr/providers/sessions/al.py,sha256=WXue9LaT4y0BzsbKtHbN6bb_72c4AZZWR9NP-vg9-cg,12462
@@ -73,9 +73,9 @@ quasarr/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
73
  quasarr/storage/config.py,sha256=SSTgIce2FVYoVTK_6OCU3msknhxuLA3EC4Kcrrf_dxQ,6378
74
74
  quasarr/storage/setup.py,sha256=eXtgUqMacbaUDy-dszPtT15O9lJKSO1eI3v0jGjMiUA,42361
75
75
  quasarr/storage/sqlite_database.py,sha256=yMqFQfKf0k7YS-6Z3_7pj4z1GwWSXJ8uvF4IydXsuTE,3554
76
- quasarr-2.1.4.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
77
- quasarr-2.1.4.dist-info/METADATA,sha256=TMPUtWRbDzFwakaRor7JLnx2TwKZFUqB9-SZVoJbTH4,14914
78
- quasarr-2.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
79
- quasarr-2.1.4.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
80
- quasarr-2.1.4.dist-info/top_level.txt,sha256=dipJdaRda5ruTZkoGfZU60bY4l9dtPlmOWwxK_oGSF0,8
81
- quasarr-2.1.4.dist-info/RECORD,,
76
+ quasarr-2.1.5.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
77
+ quasarr-2.1.5.dist-info/METADATA,sha256=7rXMH9Ghh602E8meHbD3QEbHkBoW_NbNbFzjmr-DxBc,14914
78
+ quasarr-2.1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
79
+ quasarr-2.1.5.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
80
+ quasarr-2.1.5.dist-info/top_level.txt,sha256=dipJdaRda5ruTZkoGfZU60bY4l9dtPlmOWwxK_oGSF0,8
81
+ quasarr-2.1.5.dist-info/RECORD,,