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.
- quasarr/api/packages/__init__.py +6 -9
- quasarr/downloads/packages/__init__.py +4 -4
- quasarr/providers/version.py +1 -1
- {quasarr-2.1.4.dist-info → quasarr-2.1.5.dist-info}/METADATA +1 -1
- {quasarr-2.1.4.dist-info → quasarr-2.1.5.dist-info}/RECORD +9 -9
- {quasarr-2.1.4.dist-info → quasarr-2.1.5.dist-info}/WHEEL +0 -0
- {quasarr-2.1.4.dist-info → quasarr-2.1.5.dist-info}/entry_points.txt +0 -0
- {quasarr-2.1.4.dist-info → quasarr-2.1.5.dist-info}/licenses/LICENSE +0 -0
- {quasarr-2.1.4.dist-info → quasarr-2.1.5.dist-info}/top_level.txt +0 -0
quasarr/api/packages/__init__.py
CHANGED
|
@@ -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
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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,
|
quasarr/providers/version.py
CHANGED
|
@@ -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=
|
|
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=
|
|
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=
|
|
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.
|
|
77
|
-
quasarr-2.1.
|
|
78
|
-
quasarr-2.1.
|
|
79
|
-
quasarr-2.1.
|
|
80
|
-
quasarr-2.1.
|
|
81
|
-
quasarr-2.1.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|