sticker-convert 2.7.6__py3-none-any.whl → 2.7.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.
- sticker_convert/gui.py +5 -9
- sticker_convert/gui_components/frames/progress_frame.py +67 -47
- sticker_convert/version.py +1 -1
- {sticker_convert-2.7.6.dist-info → sticker_convert-2.7.7.dist-info}/METADATA +1 -1
- {sticker_convert-2.7.6.dist-info → sticker_convert-2.7.7.dist-info}/RECORD +9 -9
- {sticker_convert-2.7.6.dist-info → sticker_convert-2.7.7.dist-info}/LICENSE +0 -0
- {sticker_convert-2.7.6.dist-info → sticker_convert-2.7.7.dist-info}/WHEEL +0 -0
- {sticker_convert-2.7.6.dist-info → sticker_convert-2.7.7.dist-info}/entry_points.txt +0 -0
- {sticker_convert-2.7.6.dist-info → sticker_convert-2.7.7.dist-info}/top_level.txt +0 -0
sticker_convert/gui.py
CHANGED
@@ -8,7 +8,7 @@ from json.decoder import JSONDecodeError
|
|
8
8
|
from math import ceil
|
9
9
|
from multiprocessing import Event, cpu_count
|
10
10
|
from pathlib import Path
|
11
|
-
from threading import
|
11
|
+
from threading import Thread
|
12
12
|
from typing import Any, Callable, Dict, Optional, Union
|
13
13
|
from urllib.parse import urlparse
|
14
14
|
|
@@ -161,8 +161,6 @@ class GUI(Window):
|
|
161
161
|
self.settings_save_cred_var = BooleanVar()
|
162
162
|
|
163
163
|
# Other
|
164
|
-
self.msg_lock = Lock()
|
165
|
-
self.bar_lock = Lock()
|
166
164
|
self.response_event = Event()
|
167
165
|
self.response = None
|
168
166
|
self.action: Optional[Callable[..., Any]] = None
|
@@ -609,8 +607,7 @@ class GUI(Window):
|
|
609
607
|
return False
|
610
608
|
|
611
609
|
def cb_msg(self, *args: Any, **kwargs: Any) -> None:
|
612
|
-
|
613
|
-
self.progress_frame.update_message_box(*args, **kwargs)
|
610
|
+
self.progress_frame.update_message_box(*args, **kwargs)
|
614
611
|
|
615
612
|
def cb_msg_block(
|
616
613
|
self,
|
@@ -641,10 +638,9 @@ class GUI(Window):
|
|
641
638
|
update_bar: int = 0,
|
642
639
|
**kwargs: Any,
|
643
640
|
) -> None:
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
)
|
641
|
+
self.progress_frame.update_progress_bar(
|
642
|
+
set_progress_mode, steps, update_bar, *args, **kwargs
|
643
|
+
)
|
648
644
|
|
649
645
|
def highlight_fields(self) -> bool:
|
650
646
|
if not self.init_done:
|
@@ -1,5 +1,6 @@
|
|
1
1
|
#!/usr/bin/env python3
|
2
|
-
from
|
2
|
+
from threading import Lock
|
3
|
+
from typing import TYPE_CHECKING, Any, List, Optional
|
3
4
|
|
4
5
|
from tqdm import tqdm
|
5
6
|
from ttkbootstrap import LabelFrame, Progressbar # type: ignore
|
@@ -15,13 +16,18 @@ class ProgressFrame(LabelFrame):
|
|
15
16
|
progress_bar_cli = None
|
16
17
|
progress_bar_steps = 0
|
17
18
|
auto_scroll = True
|
19
|
+
|
18
20
|
msg_cls = False
|
19
|
-
msg_buffer =
|
21
|
+
msg_buffer: List[str] = []
|
22
|
+
|
20
23
|
bar_mode_changed = False
|
21
24
|
bar_mode = "clear"
|
22
25
|
bar_updates = 0
|
23
26
|
bar_steps = 0
|
24
27
|
|
28
|
+
msg_lock = Lock()
|
29
|
+
bar_lock = Lock()
|
30
|
+
|
25
31
|
def __init__(self, gui: "GUI", *args: Any, **kwargs: Any) -> None:
|
26
32
|
self.gui = gui
|
27
33
|
super().__init__(*args, **kwargs) # type: ignore
|
@@ -46,12 +52,15 @@ class ProgressFrame(LabelFrame):
|
|
46
52
|
update_bar: int = 0,
|
47
53
|
) -> None:
|
48
54
|
if update_bar:
|
49
|
-
self.
|
55
|
+
with self.bar_lock:
|
56
|
+
self.bar_updates += update_bar
|
57
|
+
|
50
58
|
elif set_progress_mode:
|
51
|
-
self.
|
52
|
-
|
53
|
-
|
54
|
-
|
59
|
+
with self.bar_lock:
|
60
|
+
self.bar_mode = set_progress_mode
|
61
|
+
self.bar_steps = steps
|
62
|
+
self.bar_updates = 0
|
63
|
+
self.bar_mode_changed = True
|
55
64
|
|
56
65
|
def update_message_box(self, *args: Any, **kwargs: Any) -> None:
|
57
66
|
msg = kwargs.get("msg")
|
@@ -60,22 +69,30 @@ class ProgressFrame(LabelFrame):
|
|
60
69
|
if not msg and len(args) == 1:
|
61
70
|
msg = str(args[0])
|
62
71
|
|
63
|
-
if cls:
|
64
|
-
self.msg_cls = True
|
65
|
-
self.msg_buffer = ""
|
66
|
-
|
67
72
|
if msg:
|
68
|
-
self.
|
73
|
+
with self.msg_lock:
|
74
|
+
self.msg_buffer.append(msg)
|
75
|
+
|
76
|
+
elif cls:
|
77
|
+
with self.msg_lock:
|
78
|
+
self.msg_cls = True
|
79
|
+
self.msg_buffer.clear()
|
69
80
|
|
70
81
|
def update_ui(self) -> None:
|
71
|
-
if self.
|
82
|
+
if self.msg_buffer or self.msg_cls:
|
83
|
+
with self.msg_lock:
|
84
|
+
msg_cls = self.msg_cls
|
85
|
+
msg = "\n".join(self.msg_buffer)
|
86
|
+
|
87
|
+
self.msg_cls = False
|
88
|
+
self.msg_buffer.clear()
|
89
|
+
|
72
90
|
self.message_box._text.config(state="normal") # type: ignore
|
73
91
|
|
74
|
-
if
|
92
|
+
if msg_cls:
|
75
93
|
self.message_box.delete(1.0, "end") # type: ignore
|
76
94
|
|
77
|
-
if
|
78
|
-
msg = self.msg_buffer.strip()
|
95
|
+
if msg:
|
79
96
|
if self.progress_bar_cli:
|
80
97
|
self.progress_bar_cli.write(msg)
|
81
98
|
else:
|
@@ -86,39 +103,42 @@ class ProgressFrame(LabelFrame):
|
|
86
103
|
if self.auto_scroll:
|
87
104
|
self.message_box._text.yview_moveto(1.0) # type: ignore
|
88
105
|
|
89
|
-
self.msg_cls = False
|
90
|
-
self.msg_buffer = ""
|
91
|
-
|
92
106
|
self.message_box._text.config(state="disabled") # type: ignore
|
93
107
|
|
94
|
-
if self.bar_mode_changed:
|
95
|
-
|
96
|
-
|
97
|
-
self.
|
98
|
-
|
99
|
-
self.
|
100
|
-
|
101
|
-
self.
|
102
|
-
self.
|
103
|
-
|
104
|
-
if
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
108
|
+
if self.bar_mode_changed or self.bar_updates:
|
109
|
+
with self.bar_lock:
|
110
|
+
bar_mode_changed = self.bar_mode_changed
|
111
|
+
bar_mode = self.bar_mode
|
112
|
+
bar_updates = self.bar_updates
|
113
|
+
bar_steps = self.bar_steps
|
114
|
+
|
115
|
+
self.bar_mode_changed = False
|
116
|
+
self.bar_updates = 0
|
117
|
+
|
118
|
+
if bar_mode_changed:
|
119
|
+
if bar_mode == "determinate":
|
120
|
+
self.progress_bar_cli = tqdm(total=bar_steps)
|
121
|
+
self.progress_bar.config(mode="determinate")
|
122
|
+
self.progress_bar_steps = bar_steps
|
123
|
+
self.progress_bar.stop()
|
124
|
+
elif self.progress_bar_cli:
|
125
|
+
self.progress_bar_cli.close()
|
126
|
+
self.progress_bar_cli = None
|
127
|
+
|
128
|
+
if bar_mode == "indeterminate":
|
129
|
+
self.progress_bar.config(mode="indeterminate")
|
130
|
+
self.progress_bar.start(50)
|
131
|
+
elif bar_mode == "clear":
|
132
|
+
self.progress_bar.config(mode="determinate")
|
133
|
+
self.progress_bar.stop()
|
134
|
+
|
135
|
+
self.progress_bar["value"] = 0
|
136
|
+
|
137
|
+
if bar_updates and self.progress_bar_cli:
|
138
|
+
self.progress_bar_cli.update(bar_updates)
|
139
|
+
self.progress_bar["value"] += (
|
140
|
+
100 / self.progress_bar_steps * bar_updates
|
141
|
+
)
|
122
142
|
|
123
143
|
self.after(40, self.update_ui)
|
124
144
|
|
sticker_convert/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.7.
|
3
|
+
Version: 2.7.7
|
4
4
|
Summary: Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, iMessage. Written in Python.
|
5
5
|
Author-email: laggykiller <chaudominic2@gmail.com>
|
6
6
|
Maintainer-email: laggykiller <chaudominic2@gmail.com>
|
@@ -3,10 +3,10 @@ sticker_convert/__main__.py,sha256=6RJauR-SCSSTT3TU7FFB6B6PVwsCxO2xZXtmZ3jc2Is,4
|
|
3
3
|
sticker_convert/cli.py,sha256=LXX-LPlFeFKZLc7LKjdtDDLtOqmognEze0kMSr8Vj50,17543
|
4
4
|
sticker_convert/converter.py,sha256=ZAuRO6Ic6e1nhJc_pBsBlPMVyHZzy87q5Gk_naCRShI,31241
|
5
5
|
sticker_convert/definitions.py,sha256=ZhP2ALCEud-w9ZZD4c3TDG9eHGPZyaAL7zPUsJAbjtE,2073
|
6
|
-
sticker_convert/gui.py,sha256=
|
6
|
+
sticker_convert/gui.py,sha256=N3JTsxYtzcHIjrY1FrMczCe3U_bt8E_-3BAdHH0t8L8,30104
|
7
7
|
sticker_convert/job.py,sha256=tvK2JrL33DX4swErEihw1sLFv-IP_JQPoPpIpg6JSQ0,25833
|
8
8
|
sticker_convert/job_option.py,sha256=niPTGZ4X1iUdkxyVc29oM67bpsUNBX9Um7OOJNa3piE,7521
|
9
|
-
sticker_convert/version.py,sha256
|
9
|
+
sticker_convert/version.py,sha256=jSfFumyqVCtgQ0gUWQGbYTxqs9lhLwaV1Vi6ncCy0cY,46
|
10
10
|
sticker_convert/downloaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
sticker_convert/downloaders/download_base.py,sha256=5R7c8kwahAflOOYrtSQPnBVQ4T-DsprPUMP7G9wcJX4,2824
|
12
12
|
sticker_convert/downloaders/download_kakao.py,sha256=RYrebTxEjKjXAr9xw18r0dMW0dFjSqZxzi8dpaq56TY,8581
|
@@ -22,7 +22,7 @@ sticker_convert/gui_components/frames/control_frame.py,sha256=_XiOJ9JPUfiysDghGG
|
|
22
22
|
sticker_convert/gui_components/frames/cred_frame.py,sha256=I3XrOv7kUOsvFWquuzWWpZWbLclqKQXgD7dx5pcTuY4,6499
|
23
23
|
sticker_convert/gui_components/frames/input_frame.py,sha256=5Vz1d6J1jkofvvzm43DxeIW_CjWfxa2QPYFnkAAiAfM,5040
|
24
24
|
sticker_convert/gui_components/frames/output_frame.py,sha256=n2WLk22h61DoZli8WbFhd-h2CqWAebDXnBa051JBuOc,4260
|
25
|
-
sticker_convert/gui_components/frames/progress_frame.py,sha256=
|
25
|
+
sticker_convert/gui_components/frames/progress_frame.py,sha256=LWUZg_iL7iiNTfu7N5Ct_pklZdghxihENi7DP9YozOE,4915
|
26
26
|
sticker_convert/gui_components/frames/right_clicker.py,sha256=dGIvSzEChrkguR80pzUemBNJ39uzJjVJQKeDNUoW3Gk,721
|
27
27
|
sticker_convert/gui_components/windows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
28
|
sticker_convert/gui_components/windows/advanced_compression_window.py,sha256=1UulI_3ZtXdc34aq-hzFyV2WBZOC5OWGFUAMdf7ipU0,32105
|
@@ -92,9 +92,9 @@ sticker_convert/utils/media/apple_png_normalize.py,sha256=LbrQhc7LlYX4I9ek4XJsZE
|
|
92
92
|
sticker_convert/utils/media/codec_info.py,sha256=slKvwLxgJz1txJIN4gJ5dAFDLvZLhnTP29Pm8GYveSM,12984
|
93
93
|
sticker_convert/utils/media/decrypt_kakao.py,sha256=4wq9ZDRnFkx1WmFZnyEogBofiLGsWQM_X69HlA36578,1947
|
94
94
|
sticker_convert/utils/media/format_verify.py,sha256=Xf94jyqk_6M9IlFGMy0wYIgQKn_yg00nD4XW0CgAbew,5732
|
95
|
-
sticker_convert-2.7.
|
96
|
-
sticker_convert-2.7.
|
97
|
-
sticker_convert-2.7.
|
98
|
-
sticker_convert-2.7.
|
99
|
-
sticker_convert-2.7.
|
100
|
-
sticker_convert-2.7.
|
95
|
+
sticker_convert-2.7.7.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
|
96
|
+
sticker_convert-2.7.7.dist-info/METADATA,sha256=oLKVy7XCVQ5m6S2WDRiynT_ATYnahnL5PmG4t7tU7Ak,48379
|
97
|
+
sticker_convert-2.7.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
98
|
+
sticker_convert-2.7.7.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
|
99
|
+
sticker_convert-2.7.7.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
|
100
|
+
sticker_convert-2.7.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|