sticker-convert 2.1.5__py3-none-any.whl → 2.1.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.
Files changed (57) hide show
  1. sticker_convert/__init__.py +1 -1
  2. sticker_convert/__main__.py +7 -4
  3. sticker_convert/cli.py +42 -32
  4. sticker_convert/converter.py +432 -0
  5. sticker_convert/downloaders/download_base.py +40 -16
  6. sticker_convert/downloaders/download_kakao.py +103 -136
  7. sticker_convert/downloaders/download_line.py +30 -12
  8. sticker_convert/downloaders/download_signal.py +48 -32
  9. sticker_convert/downloaders/download_telegram.py +71 -26
  10. sticker_convert/gui.py +79 -130
  11. sticker_convert/{gui_frames → gui_components/frames}/comp_frame.py +2 -3
  12. sticker_convert/{gui_frames → gui_components/frames}/config_frame.py +3 -4
  13. sticker_convert/{gui_frames → gui_components/frames}/control_frame.py +2 -2
  14. sticker_convert/{gui_frames → gui_components/frames}/cred_frame.py +4 -4
  15. sticker_convert/{gui_frames → gui_components/frames}/input_frame.py +4 -4
  16. sticker_convert/{gui_frames → gui_components/frames}/output_frame.py +3 -3
  17. sticker_convert/{gui_frames → gui_components/frames}/progress_frame.py +1 -1
  18. sticker_convert/{utils → gui_components}/gui_utils.py +38 -21
  19. sticker_convert/{gui_windows → gui_components/windows}/advanced_compression_window.py +3 -2
  20. sticker_convert/{gui_windows → gui_components/windows}/base_window.py +3 -2
  21. sticker_convert/{gui_windows → gui_components/windows}/kakao_get_auth_window.py +3 -3
  22. sticker_convert/{gui_windows → gui_components/windows}/line_get_auth_window.py +2 -2
  23. sticker_convert/{gui_windows → gui_components/windows}/signal_get_auth_window.py +2 -2
  24. sticker_convert/{flow.py → job.py} +91 -102
  25. sticker_convert/job_option.py +301 -0
  26. sticker_convert/resources/compression.json +1 -1
  27. sticker_convert/uploaders/compress_wastickers.py +95 -74
  28. sticker_convert/uploaders/upload_base.py +16 -4
  29. sticker_convert/uploaders/upload_signal.py +100 -62
  30. sticker_convert/uploaders/upload_telegram.py +168 -128
  31. sticker_convert/uploaders/xcode_imessage.py +202 -132
  32. sticker_convert/{auth → utils/auth}/get_kakao_auth.py +7 -5
  33. sticker_convert/{auth → utils/auth}/get_line_auth.py +6 -5
  34. sticker_convert/{auth → utils/auth}/get_signal_auth.py +1 -1
  35. sticker_convert/utils/fake_cb_msg.py +5 -2
  36. sticker_convert/utils/{cache_store.py → files/cache_store.py} +7 -3
  37. sticker_convert/utils/files/dir_utils.py +64 -0
  38. sticker_convert/utils/{json_manager.py → files/json_manager.py} +5 -4
  39. sticker_convert/utils/files/metadata_handler.py +226 -0
  40. sticker_convert/utils/files/run_bin.py +58 -0
  41. sticker_convert/utils/{apple_png_normalize.py → media/apple_png_normalize.py} +23 -20
  42. sticker_convert/utils/{codec_info.py → media/codec_info.py} +41 -35
  43. sticker_convert/utils/media/decrypt_kakao.py +68 -0
  44. sticker_convert/utils/media/format_verify.py +184 -0
  45. sticker_convert/utils/url_detect.py +16 -14
  46. {sticker_convert-2.1.5.dist-info → sticker_convert-2.1.7.dist-info}/METADATA +11 -11
  47. {sticker_convert-2.1.5.dist-info → sticker_convert-2.1.7.dist-info}/RECORD +52 -50
  48. {sticker_convert-2.1.5.dist-info → sticker_convert-2.1.7.dist-info}/WHEEL +1 -1
  49. sticker_convert/utils/converter.py +0 -399
  50. sticker_convert/utils/curr_dir.py +0 -70
  51. sticker_convert/utils/format_verify.py +0 -188
  52. sticker_convert/utils/metadata_handler.py +0 -190
  53. sticker_convert/utils/run_bin.py +0 -46
  54. /sticker_convert/{gui_frames → gui_components/frames}/right_clicker.py +0 -0
  55. {sticker_convert-2.1.5.dist-info → sticker_convert-2.1.7.dist-info}/LICENSE +0 -0
  56. {sticker_convert-2.1.5.dist-info → sticker_convert-2.1.7.dist-info}/entry_points.txt +0 -0
  57. {sticker_convert-2.1.5.dist-info → sticker_convert-2.1.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,184 @@
1
+ #!/usr/bin/env python3
2
+ import os
3
+ import unicodedata
4
+ import re
5
+ from typing import Optional, Union
6
+
7
+ from .codec_info import CodecInfo # type: ignore
8
+ from ...job_option import CompOption # type: ignore
9
+
10
+
11
+ class FormatVerify:
12
+ @staticmethod
13
+ def check_file(file: str, spec: CompOption) -> bool:
14
+ return (
15
+ FormatVerify.check_presence(file)
16
+ and FormatVerify.check_file_res(file, res=spec.res, square=spec.square)
17
+ and FormatVerify.check_file_fps(file, fps=spec.fps)
18
+ and FormatVerify.check_file_size(file, size=spec.size_max)
19
+ and FormatVerify.check_animated(file, animated=spec.animated)
20
+ and FormatVerify.check_format(file, fmt=spec.format)
21
+ and FormatVerify.check_duration(file, duration=spec.duration)
22
+ )
23
+
24
+ @staticmethod
25
+ def check_presence(file: str) -> bool:
26
+ return os.path.isfile(file)
27
+
28
+ @staticmethod
29
+ def check_file_res(
30
+ file: str,
31
+ res: Optional[list[list[int]]] = None,
32
+ square: Optional[bool] = None
33
+ ) -> bool:
34
+ file_width, file_height = CodecInfo.get_file_res(file)
35
+
36
+ if res:
37
+ if res[0][0] and file_width < res[0][0]:
38
+ return False
39
+ if res[0][1] and file_width > res[0][1]:
40
+ return False
41
+ if res[1][0] and file_height < res[1][0]:
42
+ return False
43
+ if res[1][1] and file_height > res[1][1]:
44
+ return False
45
+ if square and file_height != file_width:
46
+ return False
47
+
48
+ return True
49
+
50
+ @staticmethod
51
+ def check_file_fps(file: str, fps: Optional[list[int]]) -> bool:
52
+ file_fps = CodecInfo.get_file_fps(file)
53
+
54
+ if fps and fps[0] and file_fps < fps[0]:
55
+ return False
56
+ if fps and fps[1] and file_fps > fps[1]:
57
+ return False
58
+
59
+ return True
60
+
61
+ @staticmethod
62
+ def check_file_size(file: str, size: Optional[list[int]] = None) -> bool:
63
+ file_size = os.path.getsize(file)
64
+ file_animated = CodecInfo.is_anim(file)
65
+
66
+ if (
67
+ file_animated == True
68
+ and size
69
+ and size[1] != None
70
+ and file_size > size[1]
71
+ ):
72
+ return False
73
+ if (
74
+ file_animated == False
75
+ and size
76
+ and size[0] != None
77
+ and file_size > size[0]
78
+ ):
79
+ return False
80
+
81
+ return True
82
+
83
+ @staticmethod
84
+ def check_animated(file: str, animated: Optional[bool] = None) -> bool:
85
+ if animated != None and CodecInfo.is_anim(file) != animated:
86
+ return False
87
+
88
+ return True
89
+
90
+ @staticmethod
91
+ def check_format(
92
+ file: str,
93
+ fmt: list[Union[list[str], str, None]] = None
94
+ ):
95
+ compat_ext = {
96
+ ".jpg": ".jpeg",
97
+ ".jpeg": ".jpg",
98
+ ".png": ".apng",
99
+ ".apng": ".png",
100
+ }
101
+
102
+ formats: list[str] = []
103
+
104
+ if fmt == [None, None]:
105
+ return True
106
+
107
+ if FormatVerify.check_animated(file):
108
+ if isinstance(fmt[1], list):
109
+ formats = fmt[1].copy()
110
+ else:
111
+ formats.append(fmt[1])
112
+ else:
113
+ if isinstance(fmt[0], list):
114
+ formats = fmt[0].copy()
115
+ else:
116
+ formats.append(fmt[0])
117
+
118
+ for f in formats.copy():
119
+ if f in compat_ext:
120
+ formats.append(compat_ext.get(f)) # type: ignore[arg-type]
121
+
122
+ if CodecInfo.get_file_ext(file) not in formats:
123
+ return False
124
+
125
+ return True
126
+
127
+ @staticmethod
128
+ def check_duration(file: str, duration: Optional[list[str]] = None) -> bool:
129
+ file_duration = CodecInfo.get_file_duration(file)
130
+ if duration and duration[0] and file_duration < duration[0]:
131
+ return False
132
+ if duration and duration[1] and file_duration > duration[1]:
133
+ return False
134
+
135
+ return True
136
+
137
+ @staticmethod
138
+ def sanitize_filename(filename: str) -> str:
139
+ # Based on https://gitlab.com/jplusplus/sanitize-filename/-/blob/master/sanitize_filename/sanitize_filename.py
140
+ # Replace illegal character with '_'
141
+ """Return a fairly safe version of the filename.
142
+
143
+ We don't limit ourselves to ascii, because we want to keep municipality
144
+ names, etc, but we do want to get rid of anything potentially harmful,
145
+ and make sure we do not exceed Windows filename length limits.
146
+ Hence a less safe blacklist, rather than a whitelist.
147
+ """
148
+ blacklist = ["\\", "/", ":", "*", "?", '"', "<", ">", "|", "\0"]
149
+ reserved = [
150
+ "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5",
151
+ "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5",
152
+ "LPT6", "LPT7", "LPT8", "LPT9",
153
+ ] # Reserved words on Windows
154
+ filename = "".join(c if c not in blacklist else "_" for c in filename)
155
+ # Remove all charcters below code point 32
156
+ filename = "".join(c if 31 < ord(c) else "_" for c in filename)
157
+ filename = unicodedata.normalize("NFKD", filename)
158
+ filename = filename.rstrip(". ") # Windows does not allow these at end
159
+ filename = filename.strip()
160
+ if all([x == "." for x in filename]):
161
+ filename = "__" + filename
162
+ if filename in reserved:
163
+ filename = "__" + filename
164
+ if len(filename) == 0:
165
+ filename = "__"
166
+ if len(filename) > 255:
167
+ parts = re.split(r"/|\\", filename)[-1].split(".")
168
+ if len(parts) > 1:
169
+ ext = "." + parts.pop()
170
+ filename = filename[: -len(ext)]
171
+ else:
172
+ ext = ""
173
+ if filename == "":
174
+ filename = "__"
175
+ if len(ext) > 254:
176
+ ext = ext[254:]
177
+ maxl = 255 - len(ext)
178
+ filename = filename[:maxl]
179
+ filename = filename + ext
180
+ # Re-check last character (if there was no extension)
181
+ filename = filename.rstrip(". ")
182
+ if len(filename) == 0:
183
+ filename = "__"
184
+ return filename
@@ -3,27 +3,29 @@ import string
3
3
  from urllib.parse import urlparse
4
4
  from typing import Optional
5
5
 
6
+
6
7
  class UrlDetect:
7
8
  @staticmethod
8
9
  def detect(url: str) -> Optional[str]:
9
10
  domain = urlparse(url).netloc
10
11
 
11
- if domain == 'signal.art':
12
- return 'signal'
13
-
14
- elif domain in ('telegram.me', 't.me'):
15
- return 'telegram'
16
-
17
- elif (domain in ('store.line.me', 'line.me') or
18
- url.startswith('line://shop/detail/') or
19
- (len(url) == 24 and all(c in string.hexdigits for c in url))):
12
+ if domain == "signal.art":
13
+ return "signal"
20
14
 
21
- return 'line'
15
+ elif domain in ("telegram.me", "t.me"):
16
+ return "telegram"
22
17
 
23
- elif (domain in ('e.kakao.com', 'emoticon.kakao.com') or
24
- url.startswith('kakaotalk://store/emoticon/')):
18
+ elif (
19
+ domain in ("store.line.me", "line.me")
20
+ or url.startswith("line://shop/detail/")
21
+ or (len(url) == 24 and all(c in string.hexdigits for c in url))
22
+ ):
23
+ return "line"
25
24
 
26
- return 'kakao'
25
+ elif domain in ("e.kakao.com", "emoticon.kakao.com") or url.startswith(
26
+ "kakaotalk://store/emoticon/"
27
+ ):
28
+ return "kakao"
27
29
 
28
30
  else:
29
- return None
31
+ return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sticker-convert
3
- Version: 2.1.5
3
+ Version: 2.1.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>
@@ -364,23 +364,23 @@ Classifier: Programming Language :: Python :: 3 :: Only
364
364
  Requires-Python: >=3.7
365
365
  Description-Content-Type: text/markdown
366
366
  License-File: LICENSE
367
- Requires-Dist: apngasm-python ~=1.2.0
368
- Requires-Dist: av ~=10.0.0
367
+ Requires-Dist: apngasm-python ~=1.2.1
368
+ Requires-Dist: pyav ~=11.4.1
369
369
  Requires-Dist: beautifulsoup4 ~=4.12.2
370
- Requires-Dist: browser-cookie3 ~=0.19.1
371
- Requires-Dist: imageio ~=2.31.5
370
+ Requires-Dist: rookiepy ~=0.3.3
371
+ Requires-Dist: imageio ~=2.33.1
372
372
  Requires-Dist: memory-tempfile ~=2.2.3
373
- Requires-Dist: mergedeep ~=1.3.4
374
- Requires-Dist: Pillow ~=10.0.1
375
- Requires-Dist: pyoxipng ~=8.0.0
373
+ Requires-Dist: numpy ~=1.26.2
374
+ Requires-Dist: Pillow ~=10.1.0
375
+ Requires-Dist: pyoxipng ~=9.0.0
376
376
  Requires-Dist: python-telegram-bot ~=20.5
377
377
  Requires-Dist: requests ~=2.31.0
378
- Requires-Dist: rlottie-python ~=1.1.9
379
- Requires-Dist: selenium ~=4.13.0
378
+ Requires-Dist: rlottie-python ~=1.2.1
379
+ Requires-Dist: selenium ~=4.16.0
380
380
  Requires-Dist: signalstickers-client ~=3.3.0
381
381
  Requires-Dist: tqdm ~=4.66.1
382
382
  Requires-Dist: ttkbootstrap-fork-laggykiller ~=1.5.1
383
- Requires-Dist: webp ~=0.2.0
383
+ Requires-Dist: webp ~=0.3.0
384
384
 
385
385
  # sticker-convert
386
386
  ![imgs/banner.png](imgs/banner.png)
@@ -1,29 +1,29 @@
1
- sticker_convert/__init__.py,sha256=zrhIFFkdukbv6wn7kdQ8y4tDW7_yyslMmBP-Wt9ZFjY,66
2
- sticker_convert/__main__.py,sha256=gzkK62bHS__nnQnktN2BEL7d3NE0KPMGkNOA-BBR5dg,541
3
- sticker_convert/cli.py,sha256=w_NRwMesXdgmynOqUkaQ7ofNN9rrhxnlyHPteTQAv7w,16182
4
- sticker_convert/flow.py,sha256=FM3mwMbeQo2uxjf3J8zg4CidtMOkMIAdRYaqWF-wSPc,18975
5
- sticker_convert/gui.py,sha256=DH1XGcSyBKqzOES_fapa8SEqNvIz82BYUo6Y_uaNa4U,29883
6
- sticker_convert/auth/get_kakao_auth.py,sha256=vjoCP60hPe90x2IwmfZyoiF7ewwvtyQ7kTByocD0HzE,9286
7
- sticker_convert/auth/get_line_auth.py,sha256=aN61yinyFw_AYC1phT2R-jpWVIaAdbtT0XGdm5RFbSE,1154
8
- sticker_convert/auth/get_signal_auth.py,sha256=gORF1svJrYYisBbDHuHlEkc9JSrZWt014tZ-I5tRsxo,12066
9
- sticker_convert/downloaders/download_base.py,sha256=E2j_LioH2SaW-QpKr8nCGplP_5_HaYrXBNegGPR-qkk,2303
10
- sticker_convert/downloaders/download_kakao.py,sha256=Upm1cGCKPoT0I3cFu9fFV_8P7WtKCv1vw6J9h5hnNjo,9522
11
- sticker_convert/downloaders/download_line.py,sha256=D6SPXXkgK5FpCCqqug-B9DhASmYYYRowN5PB--02TC0,16065
12
- sticker_convert/downloaders/download_signal.py,sha256=9OLZLOk3TJ3xpnwlKS4LLfwSfOjtjdwMXFnu5y7rG50,2711
13
- sticker_convert/downloaders/download_telegram.py,sha256=O_oe4KMt8YTnGJ0pdh1qs0b6BQWFY1UcrUcrNFK4Abg,3367
14
- sticker_convert/gui_frames/comp_frame.py,sha256=VyBJGcBbNidCQh0JpGfP99jUR0E4fZhiYRD2TFznWIM,6469
15
- sticker_convert/gui_frames/config_frame.py,sha256=uWA4K67OC4YzBpPNpdDbOwyN-wxG7chr59lpaSvpIuM,3859
16
- sticker_convert/gui_frames/control_frame.py,sha256=q-SV5RH47neJkVh8cdeBiDUmHUw-XN7yywCiQIVAh8g,748
17
- sticker_convert/gui_frames/cred_frame.py,sha256=5tu-QaJ43KZ5aBIKU_YmQXhJrjBnVv4CZiwxbdrpoYk,5545
18
- sticker_convert/gui_frames/input_frame.py,sha256=EUQG-u93nig9illP-pRtYz9OUhjIjgCxjDkqcCrI_Sc,4286
19
- sticker_convert/gui_frames/output_frame.py,sha256=XyC9VZeK6B5PzAuqic73LhWJSQmx5dTB-VPkkzW77Cw,3687
20
- sticker_convert/gui_frames/progress_frame.py,sha256=L1cMfrVp3uZ1J40Y41MRIXWH_-6GGEp10udW2ZT8YlY,3123
21
- sticker_convert/gui_frames/right_clicker.py,sha256=037pLjg_ZLQ6XF3MrGy9ljBiXTqkhfmfGFuqYfyrf3Y,633
22
- sticker_convert/gui_windows/advanced_compression_window.py,sha256=WcCwTJPMJHjB4APTU70y_jRoxqz7REkgPMnNHTihg2k,24011
23
- sticker_convert/gui_windows/base_window.py,sha256=8WMrUpkNLnLr6BvymSoU1KMTB8Zma9A4JldUDVRQZmE,1014
24
- sticker_convert/gui_windows/kakao_get_auth_window.py,sha256=KVgUUTacz-jBGYaUtsCzZHAJV7xjKWOSV70UyWx0hQQ,5967
25
- sticker_convert/gui_windows/line_get_auth_window.py,sha256=uqTdh3Gr1e7wwSeJ5C5go3hrAeCXb9-Q4T_Ug6744X4,2985
26
- sticker_convert/gui_windows/signal_get_auth_window.py,sha256=ND6gZHRHrBesINzjl9tEnWdhZWiLYzk2JI7PBRaI6-8,2948
1
+ sticker_convert/__init__.py,sha256=NnqW7pbvkP5AqwtqG8v2g4EipYnPQMyEhvLSH0CEwvY,66
2
+ sticker_convert/__main__.py,sha256=W3n9SprqoDQxaWDAqLVA7DiavMdbPLVdtbASTKSpZS0,546
3
+ sticker_convert/cli.py,sha256=21D5lAghcB3f5V7vk_qS6Di-NtGlH1ilAqDCPpzVUak,16534
4
+ sticker_convert/converter.py,sha256=k4wy8nYtUFaEFxQ6QRPWPUyAorGgRIWQ0WLElsnKTXw,16780
5
+ sticker_convert/gui.py,sha256=AXNPOgES0lyp-nhc5HRQMTr69xSAeUqEW1ehXCIadt0,27484
6
+ sticker_convert/job.py,sha256=NrJHq2Sjo2tCYcvaKmH2mp9TZmGygB56lrWyDfWThnc,17434
7
+ sticker_convert/job_option.py,sha256=0W97v-39FFMyFUqIx4f8ClOqQjvnVNdcvS6MbWQA7Jo,10803
8
+ sticker_convert/downloaders/download_base.py,sha256=TYC6bod0IHUApPBLltsOg9zUOMJRScUp7RMwUG8nF78,2572
9
+ sticker_convert/downloaders/download_kakao.py,sha256=Dnu-KfrfBMVHFkxt0Lg1IvoqT0K0pTk_bpIRImI6FOU,8081
10
+ sticker_convert/downloaders/download_line.py,sha256=71m5IbmHDBdIAVHkY8D5n7Yx1g6DKoyrmc12VM_BL_U,16485
11
+ sticker_convert/downloaders/download_signal.py,sha256=oV2WaCRgZk-vM6hOyWy0BlUpfMw7Q3xKYEBi2ATVLrE,2881
12
+ sticker_convert/downloaders/download_telegram.py,sha256=jMJBrXLYW_pKP5w3Azi3dweFBS1tE9BHXA8Q4uqdJ4o,4119
13
+ sticker_convert/gui_components/gui_utils.py,sha256=_34tJMrwL44CM4N0hVvxZ8o16l2jYau7p7Ew0L1daJ4,3177
14
+ sticker_convert/gui_components/frames/comp_frame.py,sha256=XdQBti5fL92wJtBuDtWGcpq3n3am1alxaBxvYD0637s,6416
15
+ sticker_convert/gui_components/frames/config_frame.py,sha256=JXvyIwl74PviErMK6V8yS8a3lMdRpSOGWlxFgN-ZDuw,3826
16
+ sticker_convert/gui_components/frames/control_frame.py,sha256=jwm1kBwLFxDp-wgfJwDEpBXpcx_84r26L-Ep0T4azfE,748
17
+ sticker_convert/gui_components/frames/cred_frame.py,sha256=UD3q5fJgbZ9Q4f3YgqJvptwmJy9w094OcU4P-T2hzns,5534
18
+ sticker_convert/gui_components/frames/input_frame.py,sha256=N_xphGfy2EsuSK_OTUkHdFHD8Fp0ldI8kIeG8nvYAdo,4298
19
+ sticker_convert/gui_components/frames/output_frame.py,sha256=fdJyNFjN8Y_qrtTFJeX-BVr3VaXUBmpiEPDnT7TcD3I,3698
20
+ sticker_convert/gui_components/frames/progress_frame.py,sha256=LC-Bf9kR3hTMQSTbZIgfUAIYYaRJenqOfUHDHfnUJYw,3124
21
+ sticker_convert/gui_components/frames/right_clicker.py,sha256=037pLjg_ZLQ6XF3MrGy9ljBiXTqkhfmfGFuqYfyrf3Y,633
22
+ sticker_convert/gui_components/windows/advanced_compression_window.py,sha256=IUuS9iLVvVzR7PPaQVHErMVdSLEjuxMOoWwSrZ3ify0,24036
23
+ sticker_convert/gui_components/windows/base_window.py,sha256=zsWxW2hs_wQ4dQ9dZMDhyjnQBC1i_7gKCJ_rVqb_quE,1032
24
+ sticker_convert/gui_components/windows/kakao_get_auth_window.py,sha256=iMSrpslItfo43n0QrTO74XDbLEX3MmA0Hb8uyuhOygw,5964
25
+ sticker_convert/gui_components/windows/line_get_auth_window.py,sha256=qX73KYpQ5nLH89R2mj2Rh07mzhjIUKUnSuDy0RFZR4E,2986
26
+ sticker_convert/gui_components/windows/signal_get_auth_window.py,sha256=a7PSTr788Oeh5PLmL_26HeW5BljST7jUwWEHLsWgkHQ,2949
27
27
  sticker_convert/ios-message-stickers-template/.gitignore,sha256=4uuTph_9eHfqXHUavLOmGOji6aIHOif2bUEU_hCBn4Y,9
28
28
  sticker_convert/ios-message-stickers-template/README.md,sha256=oN0FvJkCWWjSZ3PMrCvY3T1zCsdkZYFgGHAoFh0Kmt8,467
29
29
  sticker_convert/ios-message-stickers-template/.github/FUNDING.yml,sha256=3LlmdSAGDsBA2o_C1iBYTNLwkABnyZuN0zxgPPyd-f8,70
@@ -60,31 +60,33 @@ sticker_convert/resources/NotoColorEmoji.ttf,sha256=LurIVaCIA8bSCfjrdO1feYr0bhKL
60
60
  sticker_convert/resources/appicon.icns,sha256=FB2DVTOQcFfQNZ9RcyG3z9c9k7eOiI1qw0IJhXMRFg4,5404
61
61
  sticker_convert/resources/appicon.ico,sha256=-ldugcl2Yq2pBRTktnhGKWInpKyWzRjCiPvMr3XPTlc,38078
62
62
  sticker_convert/resources/appicon.png,sha256=6XBEQz7PnerqS43aRkwpWolFG4WvKMuQ-st1ly-_JPg,5265
63
- sticker_convert/resources/compression.json,sha256=vc3t-HzM7wLVVz69dlOvoxL-znULFSf_zaFCduyIkKc,7844
63
+ sticker_convert/resources/compression.json,sha256=2hS_mInf7XvyY3FDnIejN8pH_jVsMcM4HnNUkpq4Nmc,7843
64
64
  sticker_convert/resources/emoji.json,sha256=vIRB-0ICtH8ZvyWhUPqc4VU5po-G-z8bTMrfCLBPPdM,408777
65
65
  sticker_convert/resources/help.json,sha256=tTklI3neTDZ7YisQLf3QlXzmUcjqE29zdjLrwVwQKOs,4625
66
66
  sticker_convert/resources/input.json,sha256=ca-S5o4Yt2Qke7iNf_RR18MAg5HKDoXd6j9Gs57Kt6k,2211
67
67
  sticker_convert/resources/output.json,sha256=0k8J3z0nPRkyIZj4DvXI4FPvlFuYFoYgA2ldVaMtF0Y,1131
68
- sticker_convert/uploaders/compress_wastickers.py,sha256=aBUMxKnZ69Hd6ZOR_3XotrExj8yVupgPXiMP3QjxxmM,5242
69
- sticker_convert/uploaders/upload_base.py,sha256=5bNIh2a2K_ako_TmkVJ0mHtXdiILhY-chHOZXPBhzcE,658
70
- sticker_convert/uploaders/upload_signal.py,sha256=uEeMkqV9_jcZNO6DcUhuHiaufDJjcdE5oz4geGWIAf0,5413
71
- sticker_convert/uploaders/upload_telegram.py,sha256=Uj0njsCyuq_xQkx7u2yABDzE4hUT-u0Gd-fTJguNQZ8,10022
72
- sticker_convert/uploaders/xcode_imessage.py,sha256=2kzF_FE16toeGFMqCITirx2xSiZdbYzhPpIjcHXUPvo,12945
73
- sticker_convert/utils/apple_png_normalize.py,sha256=Qg_k4BBZllUXZ2pQrSmp5aP2xEGwRjMJ6kAXTeEB5sw,3571
74
- sticker_convert/utils/cache_store.py,sha256=dRQazWoTm3ZGg9QwjQ_6EeQtx4vj3JY5pxy8ITHW_Ek,724
75
- sticker_convert/utils/codec_info.py,sha256=FqK_4Wi6s2tqtyDbqQeW4kNXvlRmLLQLtZIbjEV2Dls,3602
76
- sticker_convert/utils/converter.py,sha256=6GqGttdG-VcFciZTdg4hFSQG2wMnJb-0D0tIIYcQlSY,18044
77
- sticker_convert/utils/curr_dir.py,sha256=xLg_9FygEp7PE5drzkirtdwzzW24H3gdBj8zIIgkBf8,2431
78
- sticker_convert/utils/fake_cb_msg.py,sha256=QRqEnduEfhVdE0oVdZvQquUHnyZ9ICrVcGNHcMBk2-s,213
79
- sticker_convert/utils/format_verify.py,sha256=RGxjS7KD0upgC5bFXSICB649vum9yu3YragP1nRoiWo,6848
80
- sticker_convert/utils/gui_utils.py,sha256=_Ta4pqxStgxrThxDFFqKXZQLkF37PS2OfG-PrXKJ9u8,2983
81
- sticker_convert/utils/json_manager.py,sha256=kGIeDNN0h7He__0d1Ej8ZVsbY6z_LxHqHAyAz7b0D20,505
82
- sticker_convert/utils/metadata_handler.py,sha256=8SAMT0MwDn6cbg8snx0GQ3FD43FltDvDurfoIokwCMk,8200
83
- sticker_convert/utils/run_bin.py,sha256=Ck1Ktqg_6mkZYhMuGyg343QMcf8GvprHQeea4GObVwc,1519
84
- sticker_convert/utils/url_detect.py,sha256=SCk1PanPIEIBNE-_xWfnqHrg8xlMJQXlMaBIV8kqW_A,763
85
- sticker_convert-2.1.5.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
86
- sticker_convert-2.1.5.dist-info/METADATA,sha256=2fCG4wszsojlQx45mmZRjTHwD83QA3yGbV_-XljMW1k,44705
87
- sticker_convert-2.1.5.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
88
- sticker_convert-2.1.5.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
89
- sticker_convert-2.1.5.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
90
- sticker_convert-2.1.5.dist-info/RECORD,,
68
+ sticker_convert/uploaders/compress_wastickers.py,sha256=shud-hWoAJTj7yJYBNZ1FnerHpHO1K8-8g4f3InOMbg,5393
69
+ sticker_convert/uploaders/upload_base.py,sha256=KQMtzb1vIY8SLzLkUInVNssC1EMsynsxMHT6gpz2Xp8,816
70
+ sticker_convert/uploaders/upload_signal.py,sha256=O6bTFo-MOpulvEqBgPDpaJ3HRWhEnPosXn2oOnDdc_k,5807
71
+ sticker_convert/uploaders/upload_telegram.py,sha256=w3-z2G9PdfF8ip0UQSDs8xzzogNCtbeWuKuIPCiSp9c,10385
72
+ sticker_convert/uploaders/xcode_imessage.py,sha256=dW-8WoWioaHR7ZcniQlk3zwKpe6j_1E6dBVDNNrfDWU,13321
73
+ sticker_convert/utils/fake_cb_msg.py,sha256=LYHWKqjL4GdNG2HUCbvVNsRjQOErJBXsJS-kRVQqJ5k,289
74
+ sticker_convert/utils/url_detect.py,sha256=x163bVIH4rEimozvFHMC-XBmxyecf3qpBjJIBt8WPeE,793
75
+ sticker_convert/utils/auth/get_kakao_auth.py,sha256=Q3CxzDqzoo9vf_bsbmpKZXeQODEXQ5leijKjjMt2Gv8,9306
76
+ sticker_convert/utils/auth/get_line_auth.py,sha256=pKe2N3QLTyB0wWBpkD9rlDBqHK7LZ5hnAmfPH7XVmFI,1211
77
+ sticker_convert/utils/auth/get_signal_auth.py,sha256=Q68aJdO6FQBr8Q5anHnktgjvNLyijiWCFsQ5nN_Sy3g,12066
78
+ sticker_convert/utils/files/cache_store.py,sha256=lNS6ItZ3lwNa7NipkDo7n0wIoAf728dcRV0r0ohmM3s,730
79
+ sticker_convert/utils/files/dir_utils.py,sha256=_jDyyPTVQXiVr4dJhPFaXqaKvch_MWLngwH7eZfezv4,1861
80
+ sticker_convert/utils/files/json_manager.py,sha256=BBndjSY5kvjxurOpnDI2DRsKoLrNBTf5HoGfUqlf-4Y,503
81
+ sticker_convert/utils/files/metadata_handler.py,sha256=t3vqbsrB-Rf43bGYvvdFsKPMcfTREC8DocBmMH0rkNI,8338
82
+ sticker_convert/utils/files/run_bin.py,sha256=4c8y5c_2wUfm0hbJSOGFcezpW5BVqM5_e9aliPbxvwo,1632
83
+ sticker_convert/utils/media/apple_png_normalize.py,sha256=YGrZ8pZvgfhw8dW-0gf7XcXk_R82lJTX-oTo6SsB7uY,3719
84
+ sticker_convert/utils/media/codec_info.py,sha256=PjUPlyKKXRW57mteGQMvTlVVB2S7eHGiTfgtMrFbVK4,3690
85
+ sticker_convert/utils/media/decrypt_kakao.py,sha256=gMz64vIGEIPAl4FFWuUbPMHE7vExr46ZFpzMoukvwws,1918
86
+ sticker_convert/utils/media/format_verify.py,sha256=7WvvDSFDkyG1WlkXKqVbmPjKiyEedtqivZcCqSNziD8,6179
87
+ sticker_convert-2.1.7.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
88
+ sticker_convert-2.1.7.dist-info/METADATA,sha256=VcqJRNpLptWSphB0SvnRm9rx63EGaLME36CCKoaEw_w,44696
89
+ sticker_convert-2.1.7.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
90
+ sticker_convert-2.1.7.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
91
+ sticker_convert-2.1.7.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
92
+ sticker_convert-2.1.7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.2)
2
+ Generator: bdist_wheel (0.42.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5