sticker-convert 2.13.2.2__py3-none-any.whl → 2.14.0.0__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/cli.py +36 -12
- sticker_convert/converter.py +49 -21
- sticker_convert/gui.py +7 -0
- sticker_convert/gui_components/frames/comp_frame.py +1 -0
- sticker_convert/gui_components/windows/advanced_compression_window.py +38 -13
- sticker_convert/gui_components/windows/kakao_get_auth_window.py +212 -65
- sticker_convert/job.py +10 -4
- sticker_convert/job_option.py +3 -0
- sticker_convert/resources/NotoColorEmoji.ttf +0 -0
- sticker_convert/resources/compression.json +32 -16
- sticker_convert/resources/help.json +12 -7
- sticker_convert/utils/auth/{get_kakao_auth.py → get_kakao_auth_android_login.py} +1 -1
- sticker_convert/utils/auth/get_kakao_auth_desktop_login.py +282 -0
- sticker_convert/utils/auth/{get_kakao_desktop_auth.py → get_kakao_auth_desktop_memdump.py} +17 -11
- sticker_convert/utils/auth/telegram_api.py +6 -5
- sticker_convert/version.py +1 -1
- {sticker_convert-2.13.2.2.dist-info → sticker_convert-2.14.0.0.dist-info}/METADATA +49 -33
- {sticker_convert-2.13.2.2.dist-info → sticker_convert-2.14.0.0.dist-info}/RECORD +22 -21
- {sticker_convert-2.13.2.2.dist-info → sticker_convert-2.14.0.0.dist-info}/WHEEL +0 -0
- {sticker_convert-2.13.2.2.dist-info → sticker_convert-2.14.0.0.dist-info}/entry_points.txt +0 -0
- {sticker_convert-2.13.2.2.dist-info → sticker_convert-2.14.0.0.dist-info}/licenses/LICENSE +0 -0
- {sticker_convert-2.13.2.2.dist-info → sticker_convert-2.14.0.0.dist-info}/top_level.txt +0 -0
@@ -9,8 +9,9 @@ from ttkbootstrap import Button, Entry, Frame, Label, LabelFrame # type: ignore
|
|
9
9
|
from sticker_convert.gui_components.frames.right_clicker import RightClicker
|
10
10
|
from sticker_convert.gui_components.gui_utils import GUIUtils
|
11
11
|
from sticker_convert.gui_components.windows.base_window import BaseWindow
|
12
|
-
from sticker_convert.utils.auth.
|
13
|
-
from sticker_convert.utils.auth.
|
12
|
+
from sticker_convert.utils.auth.get_kakao_auth_android_login import GetKakaoAuthAndroidLogin
|
13
|
+
from sticker_convert.utils.auth.get_kakao_auth_desktop_login import GetKakaoAuthDesktopLogin
|
14
|
+
from sticker_convert.utils.auth.get_kakao_auth_desktop_memdump import GetKakaoAuthDesktopMemdump
|
14
15
|
|
15
16
|
|
16
17
|
class KakaoGetAuthWindow(BaseWindow):
|
@@ -22,72 +23,76 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
22
23
|
self.cb_msg_block_kakao = partial(self.gui.cb_msg_block, parent=self)
|
23
24
|
self.cb_ask_str_kakao = partial(self.gui.cb_ask_str, parent=self)
|
24
25
|
|
25
|
-
self.
|
26
|
-
self.scrollable_frame, text="Method 1:
|
26
|
+
self.frame_desktop_memdump = LabelFrame(
|
27
|
+
self.scrollable_frame, text="Method 1: KakaoTalk Desktop memdump"
|
27
28
|
)
|
28
|
-
self.
|
29
|
-
self.scrollable_frame, text="Method 2: Simulate login"
|
29
|
+
self.frame_desktop_login = LabelFrame(
|
30
|
+
self.scrollable_frame, text="Method 2: Simulate Desktop login"
|
31
|
+
)
|
32
|
+
self.frame_android_login = LabelFrame(
|
33
|
+
self.scrollable_frame, text="Method 3: Simulate Android login"
|
30
34
|
)
|
31
35
|
self.frame_login_btn = Frame(self.scrollable_frame)
|
32
36
|
|
33
|
-
self.
|
34
|
-
self.
|
37
|
+
self.frame_desktop_memdump.grid(column=0, row=0, sticky="news", padx=3, pady=3)
|
38
|
+
self.frame_desktop_login.grid(column=0, row=1, sticky="news", padx=3, pady=3)
|
39
|
+
self.frame_android_login.grid(column=0, row=2, sticky="news", padx=3, pady=3)
|
35
40
|
|
36
41
|
# Method 1 frame
|
37
42
|
self.explanation1_1_lbl = Label(
|
38
|
-
self.
|
43
|
+
self.frame_desktop_memdump,
|
39
44
|
text="This will get Kakao auth_token from Kakao Desktop",
|
40
45
|
justify="left",
|
41
46
|
anchor="w",
|
42
47
|
)
|
43
48
|
self.explanation1_2_lbl = Label(
|
44
|
-
self.
|
49
|
+
self.frame_desktop_memdump,
|
45
50
|
text="Download Kakao Desktop, login and press 'Get auth_token'",
|
46
51
|
justify="left",
|
47
52
|
anchor="w",
|
48
53
|
)
|
49
54
|
self.explanation1_3_lbl = Label(
|
50
|
-
self.
|
55
|
+
self.frame_desktop_memdump,
|
51
56
|
text="This can take about a minute.",
|
52
57
|
justify="left",
|
53
58
|
anchor="w",
|
54
59
|
)
|
55
60
|
if platform.system() != "Darwin":
|
56
61
|
self.explanation1_4_lbl = Label(
|
57
|
-
self.
|
62
|
+
self.frame_desktop_memdump,
|
58
63
|
text="Note: This will download ProcDump and read memory of KakaoTalk Desktop",
|
59
64
|
justify="left",
|
60
65
|
anchor="w",
|
61
66
|
)
|
62
67
|
else:
|
63
68
|
self.explanation1_4_lbl = Label(
|
64
|
-
self.
|
69
|
+
self.frame_desktop_memdump,
|
65
70
|
text="Note: This will read memory of KakaoTalk Desktop",
|
66
71
|
justify="left",
|
67
72
|
anchor="w",
|
68
73
|
)
|
69
74
|
self.kakao_bin_path_lbl = Label(
|
70
|
-
self.
|
75
|
+
self.frame_desktop_memdump,
|
71
76
|
text="Kakao app path (Optional):",
|
72
77
|
justify="left",
|
73
78
|
anchor="w",
|
74
79
|
)
|
75
80
|
self.kakao_bin_path_entry = Entry(
|
76
|
-
self.
|
81
|
+
self.frame_desktop_memdump,
|
77
82
|
textvariable=self.gui.kakao_bin_path_var,
|
78
83
|
width=30,
|
79
84
|
)
|
80
85
|
self.launch_desktop_btn = Button(
|
81
|
-
self.
|
86
|
+
self.frame_desktop_memdump,
|
82
87
|
text="Launch Desktop app",
|
83
88
|
command=self.cb_launch_desktop,
|
84
89
|
width=24,
|
85
90
|
bootstyle="secondary", # type: ignore
|
86
91
|
)
|
87
92
|
self.get_auth_desktop_btn = Button(
|
88
|
-
self.
|
93
|
+
self.frame_desktop_memdump,
|
89
94
|
text="Get auth_token",
|
90
|
-
command=self.
|
95
|
+
command=self.cb_get_auth_desktop_memdump,
|
91
96
|
width=24,
|
92
97
|
)
|
93
98
|
|
@@ -110,26 +115,143 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
110
115
|
|
111
116
|
# Method 2 frame
|
112
117
|
self.explanation2_1_lbl = Label(
|
113
|
-
self.
|
114
|
-
text="This will simulate login to
|
118
|
+
self.frame_desktop_login,
|
119
|
+
text="This will simulate login to Desktop Kakao app",
|
115
120
|
justify="left",
|
116
121
|
anchor="w",
|
117
122
|
)
|
118
123
|
self.explanation2_2_lbl = Label(
|
119
|
-
self.
|
120
|
-
text="You
|
124
|
+
self.frame_desktop_login,
|
125
|
+
text="You may receive verification code from Kakao app on phone",
|
121
126
|
justify="left",
|
122
127
|
anchor="w",
|
123
128
|
)
|
124
129
|
self.explanation2_3_lbl = Label(
|
125
|
-
self.
|
130
|
+
self.frame_desktop_login,
|
131
|
+
text="It is not necessary to download Desktop Kakao app",
|
132
|
+
justify="left",
|
133
|
+
anchor="w",
|
134
|
+
)
|
135
|
+
|
136
|
+
self.kakao_username_help_btn2 = Button(
|
137
|
+
self.frame_desktop_login,
|
138
|
+
text="?",
|
139
|
+
width=1,
|
140
|
+
command=lambda: self.cb_msg_block_kakao(
|
141
|
+
self.gui.help["cred"]["kakao_username"]
|
142
|
+
),
|
143
|
+
bootstyle="secondary", # type: ignore
|
144
|
+
)
|
145
|
+
self.kakao_username_lbl2 = Label(
|
146
|
+
self.frame_desktop_login,
|
147
|
+
text="Username",
|
148
|
+
width=18,
|
149
|
+
justify="left",
|
150
|
+
anchor="w",
|
151
|
+
)
|
152
|
+
self.kakao_username_entry2 = Entry(
|
153
|
+
self.frame_desktop_login,
|
154
|
+
textvariable=self.gui.kakao_username_var,
|
155
|
+
width=30,
|
156
|
+
)
|
157
|
+
self.kakao_username_entry2.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
158
|
+
|
159
|
+
self.kakao_password_help_btn2 = Button(
|
160
|
+
self.frame_desktop_login,
|
161
|
+
text="?",
|
162
|
+
width=1,
|
163
|
+
command=lambda: self.cb_msg_block_kakao(
|
164
|
+
self.gui.help["cred"]["kakao_password"]
|
165
|
+
),
|
166
|
+
bootstyle="secondary", # type: ignore
|
167
|
+
)
|
168
|
+
self.kakao_password_lbl2 = Label(
|
169
|
+
self.frame_desktop_login, text="Password", justify="left", anchor="w"
|
170
|
+
)
|
171
|
+
self.kakao_password_entry2 = Entry(
|
172
|
+
self.frame_desktop_login,
|
173
|
+
textvariable=self.gui.kakao_password_var,
|
174
|
+
width=30,
|
175
|
+
)
|
176
|
+
self.kakao_password_entry2.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
177
|
+
|
178
|
+
self.kakao_device_uuid_help_btn = Button(
|
179
|
+
self.frame_desktop_login,
|
180
|
+
text="?",
|
181
|
+
width=1,
|
182
|
+
command=lambda: self.cb_msg_block_kakao(
|
183
|
+
self.gui.help["cred"]["kakao_device_uuid"]
|
184
|
+
),
|
185
|
+
bootstyle="secondary", # type: ignore
|
186
|
+
)
|
187
|
+
self.kakao_device_uuid_lbl = Label(
|
188
|
+
self.frame_desktop_login,
|
189
|
+
text="Device UUID (Optional)",
|
190
|
+
justify="left",
|
191
|
+
anchor="w",
|
192
|
+
)
|
193
|
+
self.kakao_device_uuid_entry = Entry(
|
194
|
+
self.frame_desktop_login,
|
195
|
+
textvariable=self.gui.kakao_device_uuid_var,
|
196
|
+
width=30,
|
197
|
+
)
|
198
|
+
self.kakao_device_uuid_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
199
|
+
|
200
|
+
self.login_btn2 = Button(
|
201
|
+
self.frame_desktop_login,
|
202
|
+
text="Login and get auth_token",
|
203
|
+
command=self.cb_get_auth_desktop_login,
|
204
|
+
width=24,
|
205
|
+
)
|
206
|
+
|
207
|
+
self.explanation2_1_lbl.grid(
|
208
|
+
column=0, row=0, columnspan=3, sticky="w", padx=3, pady=3
|
209
|
+
)
|
210
|
+
self.explanation2_2_lbl.grid(
|
211
|
+
column=0, row=1, columnspan=3, sticky="w", padx=3, pady=3
|
212
|
+
)
|
213
|
+
self.explanation2_3_lbl.grid(
|
214
|
+
column=0, row=2, columnspan=3, sticky="w", padx=3, pady=3
|
215
|
+
)
|
216
|
+
|
217
|
+
self.kakao_username_help_btn2.grid(column=0, row=3, sticky="w", padx=3, pady=3)
|
218
|
+
self.kakao_username_lbl2.grid(column=1, row=3, sticky="w", padx=3, pady=3)
|
219
|
+
self.kakao_username_entry2.grid(column=2, row=3, sticky="w", padx=3, pady=3)
|
220
|
+
|
221
|
+
self.kakao_password_help_btn2.grid(column=0, row=4, sticky="w", padx=3, pady=3)
|
222
|
+
self.kakao_password_lbl2.grid(column=1, row=4, sticky="w", padx=3, pady=3)
|
223
|
+
self.kakao_password_entry2.grid(column=2, row=4, sticky="w", padx=3, pady=3)
|
224
|
+
|
225
|
+
self.kakao_device_uuid_help_btn.grid(
|
226
|
+
column=0, row=5, sticky="w", padx=3, pady=3
|
227
|
+
)
|
228
|
+
self.kakao_device_uuid_lbl.grid(column=1, row=5, sticky="w", padx=3, pady=3)
|
229
|
+
self.kakao_device_uuid_entry.grid(column=2, row=5, sticky="w", padx=3, pady=3)
|
230
|
+
|
231
|
+
self.login_btn2.grid(column=0, row=6, columnspan=3, padx=3, pady=3)
|
232
|
+
|
233
|
+
# Method 3 frame
|
234
|
+
self.explanation3_1_lbl = Label(
|
235
|
+
self.frame_android_login,
|
236
|
+
text="This will simulate login to Android Kakao app",
|
237
|
+
justify="left",
|
238
|
+
anchor="w",
|
239
|
+
)
|
240
|
+
self.explanation3_2_lbl = Label(
|
241
|
+
self.frame_android_login,
|
242
|
+
text="You will send / receive verification code via SMS",
|
243
|
+
justify="left",
|
244
|
+
anchor="w",
|
245
|
+
)
|
246
|
+
self.explanation3_3_lbl = Label(
|
247
|
+
self.frame_android_login,
|
126
248
|
text="You will be logged out of existing device",
|
127
249
|
justify="left",
|
128
250
|
anchor="w",
|
129
251
|
)
|
130
252
|
|
131
|
-
self.
|
132
|
-
self.
|
253
|
+
self.kakao_username_help_btn3 = Button(
|
254
|
+
self.frame_android_login,
|
133
255
|
text="?",
|
134
256
|
width=1,
|
135
257
|
command=lambda: self.cb_msg_block_kakao(
|
@@ -137,22 +259,22 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
137
259
|
),
|
138
260
|
bootstyle="secondary", # type: ignore
|
139
261
|
)
|
140
|
-
self.
|
141
|
-
self.
|
262
|
+
self.kakao_username_lbl3 = Label(
|
263
|
+
self.frame_android_login,
|
142
264
|
text="Username",
|
143
265
|
width=18,
|
144
266
|
justify="left",
|
145
267
|
anchor="w",
|
146
268
|
)
|
147
|
-
self.
|
148
|
-
self.
|
269
|
+
self.kakao_username_entry3 = Entry(
|
270
|
+
self.frame_android_login,
|
149
271
|
textvariable=self.gui.kakao_username_var,
|
150
272
|
width=30,
|
151
273
|
)
|
152
|
-
self.
|
274
|
+
self.kakao_username_entry3.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
153
275
|
|
154
|
-
self.
|
155
|
-
self.
|
276
|
+
self.kakao_password_help_btn3 = Button(
|
277
|
+
self.frame_android_login,
|
156
278
|
text="?",
|
157
279
|
width=1,
|
158
280
|
command=lambda: self.cb_msg_block_kakao(
|
@@ -160,18 +282,18 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
160
282
|
),
|
161
283
|
bootstyle="secondary", # type: ignore
|
162
284
|
)
|
163
|
-
self.
|
164
|
-
self.
|
285
|
+
self.kakao_password_lbl3 = Label(
|
286
|
+
self.frame_android_login, text="Password", justify="left", anchor="w"
|
165
287
|
)
|
166
|
-
self.
|
167
|
-
self.
|
288
|
+
self.kakao_password_entry3 = Entry(
|
289
|
+
self.frame_android_login,
|
168
290
|
textvariable=self.gui.kakao_password_var,
|
169
291
|
width=30,
|
170
292
|
)
|
171
|
-
self.
|
293
|
+
self.kakao_password_entry3.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
172
294
|
|
173
295
|
self.kakao_country_code_help_btn = Button(
|
174
|
-
self.
|
296
|
+
self.frame_android_login,
|
175
297
|
text="?",
|
176
298
|
width=1,
|
177
299
|
command=lambda: self.cb_msg_block_kakao(
|
@@ -180,17 +302,17 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
180
302
|
bootstyle="secondary", # type: ignore
|
181
303
|
)
|
182
304
|
self.kakao_country_code_lbl = Label(
|
183
|
-
self.
|
305
|
+
self.frame_android_login, text="Country code", justify="left", anchor="w"
|
184
306
|
)
|
185
307
|
self.kakao_country_code_entry = Entry(
|
186
|
-
self.
|
308
|
+
self.frame_android_login,
|
187
309
|
textvariable=self.gui.kakao_country_code_var,
|
188
310
|
width=30,
|
189
311
|
)
|
190
312
|
self.kakao_country_code_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
191
313
|
|
192
314
|
self.kakao_phone_number_help_btn = Button(
|
193
|
-
self.
|
315
|
+
self.frame_android_login,
|
194
316
|
text="?",
|
195
317
|
width=1,
|
196
318
|
command=lambda: self.cb_msg_block_kakao(
|
@@ -199,39 +321,39 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
199
321
|
bootstyle="secondary", # type: ignore
|
200
322
|
)
|
201
323
|
self.kakao_phone_number_lbl = Label(
|
202
|
-
self.
|
324
|
+
self.frame_android_login, text="Phone number", justify="left", anchor="w"
|
203
325
|
)
|
204
326
|
self.kakao_phone_number_entry = Entry(
|
205
|
-
self.
|
327
|
+
self.frame_android_login,
|
206
328
|
textvariable=self.gui.kakao_phone_number_var,
|
207
329
|
width=30,
|
208
330
|
)
|
209
331
|
self.kakao_phone_number_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
210
332
|
|
211
|
-
self.
|
212
|
-
self.
|
333
|
+
self.login_btn3 = Button(
|
334
|
+
self.frame_android_login,
|
213
335
|
text="Login and get auth_token",
|
214
|
-
command=self.
|
336
|
+
command=self.cb_get_auth_android_login,
|
215
337
|
width=24,
|
216
338
|
)
|
217
339
|
|
218
|
-
self.
|
340
|
+
self.explanation3_1_lbl.grid(
|
219
341
|
column=0, row=0, columnspan=3, sticky="w", padx=3, pady=3
|
220
342
|
)
|
221
|
-
self.
|
343
|
+
self.explanation3_2_lbl.grid(
|
222
344
|
column=0, row=1, columnspan=3, sticky="w", padx=3, pady=3
|
223
345
|
)
|
224
|
-
self.
|
346
|
+
self.explanation3_3_lbl.grid(
|
225
347
|
column=0, row=2, columnspan=3, sticky="w", padx=3, pady=3
|
226
348
|
)
|
227
349
|
|
228
|
-
self.
|
229
|
-
self.
|
230
|
-
self.
|
350
|
+
self.kakao_username_help_btn3.grid(column=0, row=3, sticky="w", padx=3, pady=3)
|
351
|
+
self.kakao_username_lbl3.grid(column=1, row=3, sticky="w", padx=3, pady=3)
|
352
|
+
self.kakao_username_entry3.grid(column=2, row=3, sticky="w", padx=3, pady=3)
|
231
353
|
|
232
|
-
self.
|
233
|
-
self.
|
234
|
-
self.
|
354
|
+
self.kakao_password_help_btn3.grid(column=0, row=4, sticky="w", padx=3, pady=3)
|
355
|
+
self.kakao_password_lbl3.grid(column=1, row=4, sticky="w", padx=3, pady=3)
|
356
|
+
self.kakao_password_entry3.grid(column=2, row=4, sticky="w", padx=3, pady=3)
|
235
357
|
|
236
358
|
self.kakao_country_code_help_btn.grid(
|
237
359
|
column=0, row=5, sticky="w", padx=3, pady=3
|
@@ -244,16 +366,41 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
244
366
|
)
|
245
367
|
self.kakao_phone_number_lbl.grid(column=1, row=6, sticky="w", padx=3, pady=3)
|
246
368
|
self.kakao_phone_number_entry.grid(column=2, row=6, sticky="w", padx=3, pady=3)
|
247
|
-
self.
|
369
|
+
self.login_btn3.grid(column=0, row=7, columnspan=3, padx=3, pady=3)
|
248
370
|
|
249
371
|
GUIUtils.finalize_window(self)
|
250
372
|
|
251
|
-
def
|
252
|
-
Thread(target=self.
|
373
|
+
def cb_get_auth_android_login(self) -> None:
|
374
|
+
Thread(target=self.cb_get_auth_android_login_thread, daemon=True).start()
|
375
|
+
|
376
|
+
def cb_get_auth_desktop_login_thread(self, *_: Any) -> None:
|
377
|
+
self.gui.save_creds()
|
378
|
+
m = GetKakaoAuthDesktopLogin(
|
379
|
+
opt_cred=self.gui.get_opt_cred(),
|
380
|
+
cb_msg=self.gui.cb_msg,
|
381
|
+
cb_msg_block=self.cb_msg_block_kakao,
|
382
|
+
cb_ask_str=self.cb_ask_str_kakao,
|
383
|
+
)
|
384
|
+
|
385
|
+
auth_token, msg = m.get_cred()
|
386
|
+
|
387
|
+
if auth_token:
|
388
|
+
if not self.gui.creds.get("kakao"):
|
389
|
+
self.gui.creds["kakao"] = {}
|
390
|
+
self.gui.creds["kakao"]["auth_token"] = auth_token
|
391
|
+
self.gui.kakao_auth_token_var.set(auth_token)
|
392
|
+
|
393
|
+
self.gui.save_creds()
|
394
|
+
self.gui.highlight_fields()
|
395
|
+
|
396
|
+
self.cb_msg_block_kakao(msg)
|
397
|
+
|
398
|
+
def cb_get_auth_desktop_login(self) -> None:
|
399
|
+
Thread(target=self.cb_get_auth_desktop_login_thread, daemon=True).start()
|
253
400
|
|
254
|
-
def
|
401
|
+
def cb_get_auth_android_login_thread(self, *_: Any) -> None:
|
255
402
|
self.gui.save_creds()
|
256
|
-
m =
|
403
|
+
m = GetKakaoAuthAndroidLogin(
|
257
404
|
opt_cred=self.gui.get_opt_cred(),
|
258
405
|
cb_msg=self.gui.cb_msg,
|
259
406
|
cb_msg_block=self.cb_msg_block_kakao,
|
@@ -275,7 +422,7 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
275
422
|
self.cb_msg_block_kakao("Failed to get auth_token")
|
276
423
|
|
277
424
|
def cb_launch_desktop(self) -> None:
|
278
|
-
m =
|
425
|
+
m = GetKakaoAuthDesktopMemdump(
|
279
426
|
cb_ask_str=self.cb_ask_str_kakao,
|
280
427
|
)
|
281
428
|
if self.gui.kakao_bin_path_var.get() != "":
|
@@ -290,14 +437,14 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
290
437
|
"Error: Cannot launch Kakao Desktop. Is it installed?"
|
291
438
|
)
|
292
439
|
|
293
|
-
def
|
294
|
-
Thread(target=self.
|
440
|
+
def cb_get_auth_desktop_memdump(self) -> None:
|
441
|
+
Thread(target=self.cb_get_auth_desktop_memdump_thread, daemon=True).start()
|
295
442
|
|
296
|
-
def
|
443
|
+
def cb_get_auth_desktop_memdump_thread(self, *_: Any) -> None:
|
297
444
|
self.gui.save_creds()
|
298
445
|
self.gui.cb_msg("Getting auth_token, this may take a minute...")
|
299
446
|
self.gui.cb_bar("indeterminate")
|
300
|
-
m =
|
447
|
+
m = GetKakaoAuthDesktopMemdump(
|
301
448
|
cb_ask_str=self.cb_ask_str_kakao,
|
302
449
|
)
|
303
450
|
|
sticker_convert/job.py
CHANGED
@@ -422,16 +422,22 @@ class Job:
|
|
422
422
|
):
|
423
423
|
error_msg += "\n"
|
424
424
|
error_msg += (
|
425
|
-
f"[X] scale_filter {self.opt_comp.scale_filter} is not valid option"
|
425
|
+
f"[X] scale_filter {self.opt_comp.scale_filter} is not valid option\n"
|
426
426
|
)
|
427
427
|
error_msg += (
|
428
428
|
" Valid options: nearest, box, bilinear, hamming, bicubic, lanczos"
|
429
429
|
)
|
430
430
|
|
431
|
-
if self.opt_comp.quantize_method not in (
|
431
|
+
if self.opt_comp.quantize_method not in (
|
432
|
+
"imagequant",
|
433
|
+
"fastoctree",
|
434
|
+
"maxcoverage",
|
435
|
+
"mediancut",
|
436
|
+
"none",
|
437
|
+
):
|
432
438
|
error_msg += "\n"
|
433
|
-
error_msg += f"[X] quantize_method {self.opt_comp.quantize_method} is not valid option"
|
434
|
-
error_msg += " Valid options: imagequant, fastoctree, none"
|
439
|
+
error_msg += f"[X] quantize_method {self.opt_comp.quantize_method} is not valid option\n"
|
440
|
+
error_msg += " Valid options: imagequant, fastoctree, maxcoverage, mediancut, none"
|
435
441
|
|
436
442
|
if self.opt_comp.bg_color:
|
437
443
|
try:
|
sticker_convert/job_option.py
CHANGED
@@ -55,6 +55,7 @@ class CompOption(BaseOption):
|
|
55
55
|
res_h_min: Optional[int] = None
|
56
56
|
res_h_max: Optional[int] = None
|
57
57
|
res_power: float = 3.0
|
58
|
+
res_snap_pow2: bool = False
|
58
59
|
|
59
60
|
quality_min: Optional[int] = None
|
60
61
|
quality_max: Optional[int] = None
|
@@ -92,6 +93,7 @@ class CompOption(BaseOption):
|
|
92
93
|
"w": {"min": self.res_w_min, "max": self.res_w_max},
|
93
94
|
"h": {"min": self.res_h_min, "max": self.res_h_max},
|
94
95
|
"power": self.res_power,
|
96
|
+
"snap_pow2": self.res_snap_pow2,
|
95
97
|
},
|
96
98
|
"quality": {
|
97
99
|
"min": self.quality_min,
|
@@ -221,6 +223,7 @@ class CredOption(BaseOption):
|
|
221
223
|
kakao_auth_token: str = ""
|
222
224
|
kakao_username: str = ""
|
223
225
|
kakao_password: str = ""
|
226
|
+
kakao_device_uuid: str = ""
|
224
227
|
kakao_country_code: str = ""
|
225
228
|
kakao_phone_number: str = ""
|
226
229
|
line_cookies: str = ""
|
Binary file
|
@@ -22,7 +22,8 @@
|
|
22
22
|
"min": 512,
|
23
23
|
"max": 512
|
24
24
|
},
|
25
|
-
"power": 3
|
25
|
+
"power": 3,
|
26
|
+
"snap_pow2": false
|
26
27
|
},
|
27
28
|
"quality": {
|
28
29
|
"min": 10,
|
@@ -69,7 +70,8 @@
|
|
69
70
|
"min": 64,
|
70
71
|
"max": 512
|
71
72
|
},
|
72
|
-
"power": 3
|
73
|
+
"power": 3,
|
74
|
+
"snap_pow2": false
|
73
75
|
},
|
74
76
|
"quality": {
|
75
77
|
"min": 10,
|
@@ -116,7 +118,8 @@
|
|
116
118
|
"min": 512,
|
117
119
|
"max": 512
|
118
120
|
},
|
119
|
-
"power": 3
|
121
|
+
"power": 3,
|
122
|
+
"snap_pow2": false
|
120
123
|
},
|
121
124
|
"quality": {
|
122
125
|
"min": 10,
|
@@ -163,7 +166,8 @@
|
|
163
166
|
"min": 100,
|
164
167
|
"max": 100
|
165
168
|
},
|
166
|
-
"power": 1
|
169
|
+
"power": 1,
|
170
|
+
"snap_pow2": false
|
167
171
|
},
|
168
172
|
"quality": {
|
169
173
|
"min": 10,
|
@@ -210,7 +214,8 @@
|
|
210
214
|
"min": 512,
|
211
215
|
"max": 512
|
212
216
|
},
|
213
|
-
"power": 3
|
217
|
+
"power": 3,
|
218
|
+
"snap_pow2": false
|
214
219
|
},
|
215
220
|
"quality": {
|
216
221
|
"min": 0,
|
@@ -257,7 +262,8 @@
|
|
257
262
|
"min": 100,
|
258
263
|
"max": 320
|
259
264
|
},
|
260
|
-
"power": 3
|
265
|
+
"power": 3,
|
266
|
+
"snap_pow2": false
|
261
267
|
},
|
262
268
|
"quality": {
|
263
269
|
"min": 10,
|
@@ -304,7 +310,8 @@
|
|
304
310
|
"min": 360,
|
305
311
|
"max": 360
|
306
312
|
},
|
307
|
-
"power": 3
|
313
|
+
"power": 3,
|
314
|
+
"snap_pow2": false
|
308
315
|
},
|
309
316
|
"quality": {
|
310
317
|
"min": 10,
|
@@ -351,7 +358,8 @@
|
|
351
358
|
"min": 100,
|
352
359
|
"max": 320
|
353
360
|
},
|
354
|
-
"power": 3
|
361
|
+
"power": 3,
|
362
|
+
"snap_pow2": false
|
355
363
|
},
|
356
364
|
"quality": {
|
357
365
|
"min": 10,
|
@@ -398,7 +406,8 @@
|
|
398
406
|
"min": 480,
|
399
407
|
"max": 480
|
400
408
|
},
|
401
|
-
"power": 3
|
409
|
+
"power": 3,
|
410
|
+
"snap_pow2": false
|
402
411
|
},
|
403
412
|
"quality": {
|
404
413
|
"min": 10,
|
@@ -445,7 +454,8 @@
|
|
445
454
|
"min": 490,
|
446
455
|
"max": 490
|
447
456
|
},
|
448
|
-
"power": 1
|
457
|
+
"power": 1,
|
458
|
+
"snap_pow2": false
|
449
459
|
},
|
450
460
|
"quality": {
|
451
461
|
"min": 95,
|
@@ -492,7 +502,8 @@
|
|
492
502
|
"min": 320,
|
493
503
|
"max": 320
|
494
504
|
},
|
495
|
-
"power": 1
|
505
|
+
"power": 1,
|
506
|
+
"snap_pow2": false
|
496
507
|
},
|
497
508
|
"quality": {
|
498
509
|
"min": 10,
|
@@ -539,7 +550,8 @@
|
|
539
550
|
"min": 32,
|
540
551
|
"max": 128
|
541
552
|
},
|
542
|
-
"power": 1
|
553
|
+
"power": 1,
|
554
|
+
"snap_pow2": false
|
543
555
|
},
|
544
556
|
"quality": {
|
545
557
|
"min": 10,
|
@@ -586,7 +598,8 @@
|
|
586
598
|
"min": 300,
|
587
599
|
"max": 300
|
588
600
|
},
|
589
|
-
"power": 1
|
601
|
+
"power": 1,
|
602
|
+
"snap_pow2": false
|
590
603
|
},
|
591
604
|
"quality": {
|
592
605
|
"min": 10,
|
@@ -633,7 +646,8 @@
|
|
633
646
|
"min": 408,
|
634
647
|
"max": 408
|
635
648
|
},
|
636
|
-
"power": 1
|
649
|
+
"power": 1,
|
650
|
+
"snap_pow2": false
|
637
651
|
},
|
638
652
|
"quality": {
|
639
653
|
"min": 10,
|
@@ -680,7 +694,8 @@
|
|
680
694
|
"min": 618,
|
681
695
|
"max": 618
|
682
696
|
},
|
683
|
-
"power": 1
|
697
|
+
"power": 1,
|
698
|
+
"snap_pow2": false
|
684
699
|
},
|
685
700
|
"quality": {
|
686
701
|
"min": 10,
|
@@ -727,7 +742,8 @@
|
|
727
742
|
"min": 256,
|
728
743
|
"max": 512
|
729
744
|
},
|
730
|
-
"power": 3
|
745
|
+
"power": 3,
|
746
|
+
"snap_pow2": false
|
731
747
|
},
|
732
748
|
"quality": {
|
733
749
|
"min": 10,
|