sticker-convert 2.10.2__py3-none-any.whl → 2.10.4__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- sticker_convert/__main__.py +3 -0
- sticker_convert/converter.py +3 -2
- sticker_convert/gui.py +36 -8
- sticker_convert/version.py +1 -1
- {sticker_convert-2.10.2.dist-info → sticker_convert-2.10.4.dist-info}/METADATA +9 -10
- {sticker_convert-2.10.2.dist-info → sticker_convert-2.10.4.dist-info}/RECORD +10 -10
- {sticker_convert-2.10.2.dist-info → sticker_convert-2.10.4.dist-info}/WHEEL +1 -1
- {sticker_convert-2.10.2.dist-info → sticker_convert-2.10.4.dist-info}/LICENSE +0 -0
- {sticker_convert-2.10.2.dist-info → sticker_convert-2.10.4.dist-info}/entry_points.txt +0 -0
- {sticker_convert-2.10.2.dist-info → sticker_convert-2.10.4.dist-info}/top_level.txt +0 -0
sticker_convert/__main__.py
CHANGED
@@ -9,6 +9,9 @@ def main() -> None:
|
|
9
9
|
|
10
10
|
multiprocessing.freeze_support()
|
11
11
|
print(f"sticker-convert {__version__}")
|
12
|
+
print("Free and Opensource software by laggykiller")
|
13
|
+
print("https://github.com/laggykiller/sticker-convert")
|
14
|
+
print()
|
12
15
|
if len(sys.argv) == 1:
|
13
16
|
print("Launching GUI...")
|
14
17
|
from sticker_convert.gui import GUI
|
sticker_convert/converter.py
CHANGED
@@ -324,6 +324,7 @@ class StickerConvert:
|
|
324
324
|
|
325
325
|
def generate_steps_list(self) -> List[Tuple[Optional[int], ...]]:
|
326
326
|
steps_list: List[Tuple[Optional[int], ...]] = []
|
327
|
+
need_even = self.out_f.suffix in (".webm", ".mp4", ".mkv", ".webp")
|
327
328
|
for step in range(self.opt_comp.steps, -1, -1):
|
328
329
|
steps_list.append(
|
329
330
|
(
|
@@ -333,7 +334,7 @@ class StickerConvert:
|
|
333
334
|
step,
|
334
335
|
self.opt_comp.steps,
|
335
336
|
self.opt_comp.res_power,
|
336
|
-
|
337
|
+
need_even,
|
337
338
|
),
|
338
339
|
get_step_value(
|
339
340
|
self.opt_comp.res_h_max,
|
@@ -341,7 +342,7 @@ class StickerConvert:
|
|
341
342
|
step,
|
342
343
|
self.opt_comp.steps,
|
343
344
|
self.opt_comp.res_power,
|
344
|
-
|
345
|
+
need_even,
|
345
346
|
),
|
346
347
|
get_step_value(
|
347
348
|
self.opt_comp.quality_max,
|
sticker_convert/gui.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env python3
|
2
|
+
import locale
|
2
3
|
import os
|
3
4
|
import platform
|
4
5
|
import signal
|
@@ -9,7 +10,7 @@ from math import ceil
|
|
9
10
|
from multiprocessing import Event, cpu_count
|
10
11
|
from pathlib import Path
|
11
12
|
from threading import Thread
|
12
|
-
from typing import Any, Callable, Dict, Optional, Union
|
13
|
+
from typing import Any, Callable, Dict, Optional, Union, cast
|
13
14
|
from urllib.parse import urlparse
|
14
15
|
|
15
16
|
from mergedeep import merge # type: ignore
|
@@ -62,6 +63,7 @@ class GUI(Window):
|
|
62
63
|
self.apply_creds()
|
63
64
|
self.init_frames()
|
64
65
|
self.pack_frames()
|
66
|
+
self.author_info()
|
65
67
|
self.warn_tkinter_bug()
|
66
68
|
GUIUtils.finalize_window(self)
|
67
69
|
|
@@ -206,6 +208,36 @@ class GUI(Window):
|
|
206
208
|
column=0, row=4, columnspan=2, sticky="news", padx=5, pady=5
|
207
209
|
)
|
208
210
|
|
211
|
+
def is_cn(self) -> bool:
|
212
|
+
cn_locs = ("zh_chs", "zh_cn", "chinese")
|
213
|
+
loc = locale.getlocale()[0]
|
214
|
+
winloc = ""
|
215
|
+
if platform.system() == "Windows":
|
216
|
+
import ctypes
|
217
|
+
|
218
|
+
windll = ctypes.windll.kernel32 # type: ignore
|
219
|
+
winloc_id = cast(int, windll.GetUserDefaultUILanguage()) # type: ignore
|
220
|
+
winloc = cast(str, locale.windows_locale[winloc_id]) # type: ignore
|
221
|
+
|
222
|
+
if loc is not None and (
|
223
|
+
loc.lower().startswith(cn_locs) or winloc.lower().startswith(cn_locs)
|
224
|
+
):
|
225
|
+
return True
|
226
|
+
return False
|
227
|
+
|
228
|
+
def author_info(self) -> None:
|
229
|
+
if self.is_cn():
|
230
|
+
msg = "sticker-convert是laggykiller创作的免费开源项目,严禁翻售\n"
|
231
|
+
msg += "https://github.com/laggykiller/sticker-convert\n"
|
232
|
+
msg += "尊重知识产权,做个文明人,请不要转售贴图!\n"
|
233
|
+
else:
|
234
|
+
msg = "sticker-convert is Free and Opensource software by laggykiller\n"
|
235
|
+
msg += "https://github.com/laggykiller/sticker-convert\n"
|
236
|
+
msg += "Please use the stickers with your friends only.\n"
|
237
|
+
msg += "It is illegal and immoral to sell stickers downloaded from this program.\n"
|
238
|
+
|
239
|
+
self.cb_msg(msg)
|
240
|
+
|
209
241
|
def warn_tkinter_bug(self) -> None:
|
210
242
|
if (
|
211
243
|
platform.system() == "Darwin"
|
@@ -215,13 +247,9 @@ class GUI(Window):
|
|
215
247
|
and sys.version_info[2] <= 6
|
216
248
|
):
|
217
249
|
msg = "NOTICE: If buttons are not responsive, try to press "
|
218
|
-
msg += "on title bar or move mouse cursor away from window for a while
|
219
|
-
|
220
|
-
msg
|
221
|
-
"(This is due to a bug in tkinter specific to macOS 14 python <=3.11.6)"
|
222
|
-
)
|
223
|
-
self.cb_msg(msg)
|
224
|
-
msg = "(https://github.com/python/cpython/issues/110218)"
|
250
|
+
msg += "on title bar or move mouse cursor away from window for a while.\n"
|
251
|
+
msg += "(This is a bug in tkinter specific to macOS 14 python <=3.11.6)\n"
|
252
|
+
msg += "(https://github.com/python/cpython/issues/110218)\n"
|
225
253
|
self.cb_msg(msg)
|
226
254
|
|
227
255
|
def load_jsons(self) -> None:
|
sticker_convert/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.10.
|
3
|
+
Version: 2.10.4
|
4
4
|
Summary: Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, Viber, Discord, iMessage. Written in Python.
|
5
5
|
Author-email: laggykiller <chaudominic2@gmail.com>
|
6
6
|
Maintainer-email: laggykiller <chaudominic2@gmail.com>
|
@@ -355,31 +355,30 @@ Classifier: Intended Audience :: End Users/Desktop
|
|
355
355
|
Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
|
356
356
|
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
|
357
357
|
Classifier: Programming Language :: Python :: 3
|
358
|
-
Classifier: Programming Language :: Python :: 3.8
|
359
358
|
Classifier: Programming Language :: Python :: 3.9
|
360
359
|
Classifier: Programming Language :: Python :: 3.10
|
361
360
|
Classifier: Programming Language :: Python :: 3.11
|
362
361
|
Classifier: Programming Language :: Python :: 3.12
|
363
362
|
Classifier: Programming Language :: Python :: 3 :: Only
|
364
|
-
Requires-Python: >=3.
|
363
|
+
Requires-Python: >=3.9
|
365
364
|
Description-Content-Type: text/markdown
|
366
365
|
License-File: LICENSE
|
367
366
|
Requires-Dist: aiolimiter ~=1.1.0
|
368
|
-
Requires-Dist: anyio ~=4.
|
367
|
+
Requires-Dist: anyio ~=4.6.2.post1
|
369
368
|
Requires-Dist: apngasm-python ~=1.3.1
|
370
|
-
Requires-Dist: av ~=
|
369
|
+
Requires-Dist: av ~=13.1.0
|
371
370
|
Requires-Dist: beautifulsoup4 ~=4.12.3
|
372
|
-
Requires-Dist: rookiepy ~=0.5.
|
373
|
-
Requires-Dist: httpx ~=0.27.
|
371
|
+
Requires-Dist: rookiepy ~=0.5.4
|
372
|
+
Requires-Dist: httpx ~=0.27.2
|
374
373
|
Requires-Dist: imagequant ~=1.1.1
|
375
374
|
Requires-Dist: memory-tempfile ~=2.2.3
|
376
375
|
Requires-Dist: mergedeep ~=1.3.4
|
377
376
|
Requires-Dist: mini-racer ~=0.12.4
|
378
377
|
Requires-Dist: numpy >=1.22.4
|
379
|
-
Requires-Dist: Pillow ~=
|
378
|
+
Requires-Dist: Pillow ~=11.0.0
|
380
379
|
Requires-Dist: pyoxipng ~=9.0.0
|
381
|
-
Requires-Dist: python-telegram-bot ~=21.
|
382
|
-
Requires-Dist: psutil ~=6.
|
380
|
+
Requires-Dist: python-telegram-bot ~=21.6
|
381
|
+
Requires-Dist: psutil ~=6.1.0
|
383
382
|
Requires-Dist: PyMemoryEditor ~=1.5.22
|
384
383
|
Requires-Dist: requests ~=2.32.3
|
385
384
|
Requires-Dist: rlottie-python ~=1.3.6
|
@@ -1,12 +1,12 @@
|
|
1
1
|
sticker_convert/__init__.py,sha256=iQnv6UOOA69c3soAn7ZOnAIubTIQSUxtq1Uhh8xRWvU,102
|
2
|
-
sticker_convert/__main__.py,sha256=
|
2
|
+
sticker_convert/__main__.py,sha256=elDCMvU27letiYs8jPUpxaCq5puURnvcDuqGsAAb6_w,592
|
3
3
|
sticker_convert/cli.py,sha256=yI_56AfEi3Q2q8h1p8-l7wSK7wk3ktQNE_rwTAWwW1Q,20526
|
4
|
-
sticker_convert/converter.py,sha256=
|
4
|
+
sticker_convert/converter.py,sha256=ZppZcz6ZCmzx23RjtBWBQ3oLh2fTiPV1U3nEVWHt_xM,35947
|
5
5
|
sticker_convert/definitions.py,sha256=ZhP2ALCEud-w9ZZD4c3TDG9eHGPZyaAL7zPUsJAbjtE,2073
|
6
|
-
sticker_convert/gui.py,sha256=
|
6
|
+
sticker_convert/gui.py,sha256=IsVCXr5_6mzBgIgXtUICI3fcKu51J9WaLE9MBLrm5t4,33064
|
7
7
|
sticker_convert/job.py,sha256=ae0DKz74nctDLSI0VU7BYI4dx3kwTM8ynky_aLspQVU,26491
|
8
8
|
sticker_convert/job_option.py,sha256=lhcyioT6qPHrNYRBTv5wxPmmY9RkATo1-DE7-lzCwp0,7887
|
9
|
-
sticker_convert/version.py,sha256=
|
9
|
+
sticker_convert/version.py,sha256=9FHU3pAwrdUe2XxHBvtgK7odt3IaLrMg_IagpcWCNTY,47
|
10
10
|
sticker_convert/downloaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
sticker_convert/downloaders/download_base.py,sha256=a34JcNBgZ5yf6gZnxc-B5uNaKVUG-vs3sjOJnLneWsw,4468
|
12
12
|
sticker_convert/downloaders/download_discord.py,sha256=HeQFjJ7igb5KOk0aXQAUEuJ9OoPKyiE_mAD2_AW9PDw,3435
|
@@ -105,9 +105,9 @@ sticker_convert/utils/media/apple_png_normalize.py,sha256=LbrQhc7LlYX4I9ek4XJsZE
|
|
105
105
|
sticker_convert/utils/media/codec_info.py,sha256=XoEWBfPWTzr4zSVQIU1XF1yh5viHxH5FytNEpdZR38c,14874
|
106
106
|
sticker_convert/utils/media/decrypt_kakao.py,sha256=4wq9ZDRnFkx1WmFZnyEogBofiLGsWQM_X69HlA36578,1947
|
107
107
|
sticker_convert/utils/media/format_verify.py,sha256=MH68GLJfXeL8WFT8emtj355K5BLAtUX64tQ59nugx2c,5673
|
108
|
-
sticker_convert-2.10.
|
109
|
-
sticker_convert-2.10.
|
110
|
-
sticker_convert-2.10.
|
111
|
-
sticker_convert-2.10.
|
112
|
-
sticker_convert-2.10.
|
113
|
-
sticker_convert-2.10.
|
108
|
+
sticker_convert-2.10.4.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
|
109
|
+
sticker_convert-2.10.4.dist-info/METADATA,sha256=hbfspaOo9jy4-xMUiGnaFiNfF1qaIrtlnxBDnG9Ru2Y,52498
|
110
|
+
sticker_convert-2.10.4.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
111
|
+
sticker_convert-2.10.4.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
|
112
|
+
sticker_convert-2.10.4.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
|
113
|
+
sticker_convert-2.10.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|