sticker-convert 2.7.3__py3-none-any.whl → 2.7.4__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 (52) hide show
  1. sticker_convert/cli.py +12 -16
  2. sticker_convert/converter.py +46 -50
  3. sticker_convert/definitions.py +8 -12
  4. sticker_convert/downloaders/download_base.py +13 -30
  5. sticker_convert/downloaders/download_kakao.py +19 -25
  6. sticker_convert/downloaders/download_line.py +7 -8
  7. sticker_convert/downloaders/download_signal.py +4 -5
  8. sticker_convert/downloaders/download_telegram.py +4 -5
  9. sticker_convert/gui.py +28 -29
  10. sticker_convert/gui_components/frames/comp_frame.py +7 -7
  11. sticker_convert/gui_components/frames/config_frame.py +7 -7
  12. sticker_convert/gui_components/frames/control_frame.py +1 -1
  13. sticker_convert/gui_components/frames/cred_frame.py +8 -8
  14. sticker_convert/gui_components/frames/input_frame.py +6 -6
  15. sticker_convert/gui_components/frames/output_frame.py +6 -6
  16. sticker_convert/gui_components/frames/progress_frame.py +6 -6
  17. sticker_convert/gui_components/gui_utils.py +2 -4
  18. sticker_convert/gui_components/windows/advanced_compression_window.py +13 -11
  19. sticker_convert/gui_components/windows/base_window.py +3 -3
  20. sticker_convert/gui_components/windows/kakao_get_auth_window.py +2 -2
  21. sticker_convert/gui_components/windows/line_get_auth_window.py +2 -2
  22. sticker_convert/gui_components/windows/signal_get_auth_window.py +1 -1
  23. sticker_convert/job.py +66 -75
  24. sticker_convert/job_option.py +1 -1
  25. sticker_convert/resources/help.json +1 -1
  26. sticker_convert/uploaders/compress_wastickers.py +3 -3
  27. sticker_convert/uploaders/upload_base.py +2 -3
  28. sticker_convert/uploaders/upload_signal.py +5 -5
  29. sticker_convert/uploaders/upload_telegram.py +5 -4
  30. sticker_convert/uploaders/xcode_imessage.py +14 -69
  31. sticker_convert/utils/auth/get_kakao_auth.py +4 -5
  32. sticker_convert/utils/auth/get_line_auth.py +1 -2
  33. sticker_convert/utils/auth/get_signal_auth.py +4 -4
  34. sticker_convert/utils/callback.py +25 -17
  35. sticker_convert/utils/files/cache_store.py +4 -6
  36. sticker_convert/utils/files/json_manager.py +3 -4
  37. sticker_convert/utils/files/json_resources_loader.py +12 -0
  38. sticker_convert/utils/files/metadata_handler.py +83 -74
  39. sticker_convert/utils/files/run_bin.py +8 -7
  40. sticker_convert/utils/files/sanitize_filename.py +30 -28
  41. sticker_convert/utils/media/apple_png_normalize.py +2 -2
  42. sticker_convert/utils/media/codec_info.py +22 -29
  43. sticker_convert/utils/media/decrypt_kakao.py +3 -5
  44. sticker_convert/utils/media/format_verify.py +6 -8
  45. sticker_convert/utils/url_detect.py +4 -5
  46. sticker_convert/version.py +1 -1
  47. {sticker_convert-2.7.3.dist-info → sticker_convert-2.7.4.dist-info}/METADATA +16 -14
  48. {sticker_convert-2.7.3.dist-info → sticker_convert-2.7.4.dist-info}/RECORD +52 -51
  49. {sticker_convert-2.7.3.dist-info → sticker_convert-2.7.4.dist-info}/WHEEL +1 -1
  50. {sticker_convert-2.7.3.dist-info → sticker_convert-2.7.4.dist-info}/LICENSE +0 -0
  51. {sticker_convert-2.7.3.dist-info → sticker_convert-2.7.4.dist-info}/entry_points.txt +0 -0
  52. {sticker_convert-2.7.3.dist-info → sticker_convert-2.7.4.dist-info}/top_level.txt +0 -0
@@ -24,7 +24,7 @@ class CodecInfo:
24
24
  )
25
25
  self.codec = CodecInfo.get_file_codec(file)
26
26
  self.res = CodecInfo.get_file_res(file)
27
- self.is_animated = True if self.fps > 1 else False
27
+ self.is_animated = self.fps > 1
28
28
 
29
29
  @staticmethod
30
30
  def get_file_fps_frames_duration(
@@ -63,7 +63,7 @@ class CodecInfo:
63
63
 
64
64
  if file_ext == ".tgs":
65
65
  return CodecInfo._get_file_fps_tgs(file)
66
- elif file_ext == ".webp":
66
+ if file_ext == ".webp":
67
67
  frames, duration = CodecInfo._get_file_frames_duration_webp(file)
68
68
  elif file_ext in (".gif", ".apng", ".png"):
69
69
  frames, duration = CodecInfo._get_file_frames_duration_pillow(file)
@@ -74,8 +74,7 @@ class CodecInfo:
74
74
 
75
75
  if duration > 0:
76
76
  return frames / duration * 1000
77
- else:
78
- return 0
77
+ return 0
79
78
 
80
79
  @staticmethod
81
80
  def get_file_frames(
@@ -89,7 +88,7 @@ class CodecInfo:
89
88
 
90
89
  if file_ext == ".tgs":
91
90
  return CodecInfo._get_file_frames_tgs(file)
92
- elif file_ext in (".gif", ".webp", ".png", ".apng"):
91
+ if file_ext in (".gif", ".webp", ".png", ".apng"):
93
92
  frames, _ = CodecInfo._get_file_frames_duration_pillow(
94
93
  file, frames_only=True
95
94
  )
@@ -183,7 +182,7 @@ class CodecInfo:
183
182
  total_duration = 0
184
183
 
185
184
  with Image.open(file) as im:
186
- if "n_frames" in im.__dir__():
185
+ if "n_frames" in dir(im):
187
186
  frames = im.n_frames
188
187
  if frames_only is True:
189
188
  return frames, 1
@@ -191,8 +190,8 @@ class CodecInfo:
191
190
  im.seek(i)
192
191
  total_duration += im.info.get("duration", 1000)
193
192
  return frames, total_duration
194
- else:
195
- return 1, 0
193
+
194
+ return 1, 0
196
195
 
197
196
  @staticmethod
198
197
  def _get_file_frames_duration_webp(
@@ -201,13 +200,12 @@ class CodecInfo:
201
200
  total_duration = 0
202
201
  frames = 0
203
202
 
204
- f: BinaryIO
205
- if isinstance(file, Path):
206
- f = open(file, "r+b")
207
- else:
208
- f = BytesIO(file)
203
+ def _open_f(file: Union[Path, bytes]) -> BinaryIO:
204
+ if isinstance(file, Path):
205
+ return open(file, "r+b")
206
+ return BytesIO(file)
209
207
 
210
- try:
208
+ with _open_f(file) as f:
211
209
  with mmap.mmap(f.fileno(), 0) as mm:
212
210
  while True:
213
211
  anmf_pos = mm.find(b"ANMF")
@@ -220,13 +218,11 @@ class CodecInfo:
220
218
  )
221
219
  total_duration += int.from_bytes(frame_duration, "little")
222
220
  frames += 1
223
- finally:
224
- f.close()
225
221
 
226
222
  if frames == 0:
227
223
  return 1, 0
228
- else:
229
- return frames, total_duration
224
+
225
+ return frames, total_duration
230
226
 
231
227
  @staticmethod
232
228
  def _get_file_frames_duration_av(
@@ -274,11 +270,10 @@ class CodecInfo:
274
270
  )
275
271
  if frame_count <= 1 or duration_metadata != 0:
276
272
  return frame_count, duration_metadata
277
- else:
278
- duration_n_minus_one = last_frame.pts * time_base_ms
279
- ms_per_frame = duration_n_minus_one / (frame_count - 1)
280
- duration = frame_count * ms_per_frame
281
- return frame_count, int(Decimal(duration).quantize(0, ROUND_HALF_UP))
273
+ duration_n_minus_one = last_frame.pts * time_base_ms
274
+ ms_per_frame = duration_n_minus_one / (frame_count - 1)
275
+ duration = frame_count * ms_per_frame
276
+ return frame_count, int(Decimal(duration).quantize(0, ROUND_HALF_UP))
282
277
 
283
278
  return 0, 0
284
279
 
@@ -300,7 +295,7 @@ class CodecInfo:
300
295
  try:
301
296
  with Image.open(file) as im:
302
297
  codec = im.format
303
- if "is_animated" in im.__dir__():
298
+ if "is_animated" in dir(im):
304
299
  animated = im.is_animated
305
300
  else:
306
301
  animated = False
@@ -311,9 +306,8 @@ class CodecInfo:
311
306
  # Unable to distinguish apng and png
312
307
  if animated:
313
308
  return "apng"
314
- else:
315
- return "png"
316
- elif codec is not None:
309
+ return "png"
310
+ if codec is not None:
317
311
  return codec.lower()
318
312
 
319
313
  import av # type: ignore
@@ -375,5 +369,4 @@ class CodecInfo:
375
369
  def is_anim(file: Union[Path, bytes]) -> bool:
376
370
  if CodecInfo.get_file_frames(file, check_anim=True) > 1:
377
371
  return True
378
- else:
379
- return False
372
+ return False
@@ -3,11 +3,9 @@ from __future__ import annotations
3
3
 
4
4
  from typing import List
5
5
 
6
- """
7
- References:
8
- https://github.com/blluv/KakaoTalkEmoticonDownloader
9
- https://github.com/star-39/moe-sticker-bot
10
- """
6
+ # References:
7
+ # https://github.com/blluv/KakaoTalkEmoticonDownloader
8
+ # https://github.com/star-39/moe-sticker-bot
11
9
 
12
10
 
13
11
  class DecryptKakao:
@@ -40,8 +40,7 @@ class FormatVerify:
40
40
  def check_presence(file: Union[Path, bytes]) -> bool:
41
41
  if isinstance(file, Path):
42
42
  return Path(file).is_file()
43
- else:
44
- return True
43
+ return True
45
44
 
46
45
  @staticmethod
47
46
  def check_file_res(
@@ -163,7 +162,7 @@ class FormatVerify:
163
162
  file: Union[Path, bytes],
164
163
  fmt: Tuple[Tuple[str, ...], Tuple[str, ...]],
165
164
  file_info: Optional[CodecInfo] = None,
166
- ):
165
+ ) -> bool:
167
166
  if file_info:
168
167
  file_animated = file_info.is_animated
169
168
  file_ext = file_info.file_ext
@@ -184,11 +183,10 @@ class FormatVerify:
184
183
 
185
184
  if len(valid_fmt) == 0:
186
185
  return True
187
- elif file_ext in valid_fmt:
186
+ if file_ext in valid_fmt:
188
187
  return True
189
- elif file_ext in jpg_exts and (".jpg" in valid_fmt or ".jpeg" in valid_fmt):
188
+ if file_ext in jpg_exts and (".jpg" in valid_fmt or ".jpeg" in valid_fmt):
190
189
  return True
191
- elif file_ext in png_exts and (".png" in valid_fmt or ".apng" in valid_fmt):
190
+ if file_ext in png_exts and (".png" in valid_fmt or ".apng" in valid_fmt):
192
191
  return True
193
- else:
194
- return False
192
+ return False
@@ -12,20 +12,19 @@ class UrlDetect:
12
12
  if domain == "signal.art":
13
13
  return "signal"
14
14
 
15
- elif domain in ("telegram.me", "t.me"):
15
+ if domain in ("telegram.me", "t.me"):
16
16
  return "telegram"
17
17
 
18
- elif (
18
+ if (
19
19
  domain in ("store.line.me", "line.me")
20
20
  or url.startswith("line://shop/detail/")
21
21
  or (len(url) == 24 and all(c in string.hexdigits for c in url))
22
22
  ):
23
23
  return "line"
24
24
 
25
- elif domain in ("e.kakao.com", "emoticon.kakao.com") or url.startswith(
25
+ if domain in ("e.kakao.com", "emoticon.kakao.com") or url.startswith(
26
26
  "kakaotalk://store/emoticon/"
27
27
  ):
28
28
  return "kakao"
29
29
 
30
- else:
31
- return None
30
+ return None
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- __version__ = "2.7.3"
3
+ __version__ = "2.7.4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sticker-convert
3
- Version: 2.7.3
3
+ Version: 2.7.4
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>
@@ -478,20 +478,20 @@ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--input-dir INPUT_DIR
478
478
  [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
479
479
  [--no-compress]
480
480
  [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,imessage_small,imessage_medium,imessage_large,custom}]
481
- [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER]
482
- [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX]
483
- [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER] [--quality-min QUALITY_MIN]
484
- [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER] [--color-min COLOR_MIN]
485
- [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN]
486
- [--duration-max DURATION_MAX] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
487
- [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
488
- [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
489
- [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
490
- [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
481
+ [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
482
+ [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
483
+ [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
484
+ [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
485
+ [--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER]
486
+ [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--vid-size-max VID_SIZE_MAX]
487
+ [--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid]
488
+ [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR]
489
+ [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD]
490
+ [--signal-get-auth] [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
491
491
  [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
492
492
  [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
493
- [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth]
494
- [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
493
+ [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
494
+ [--line-get-auth] [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
495
495
 
496
496
  CLI for stickers-convert
497
497
 
@@ -592,7 +592,9 @@ Compression options:
592
592
  --scale-filter SCALE_FILTER
593
593
  Set scale filter. Default as lanczos. Valid options are:
594
594
  - nearest = Use nearest neighbour (Suitable for pixel art)
595
- - bilinear = linear interpolation
595
+ -box = Similar to nearest, but better downscaling
596
+ - bilinear = Linear interpolation
597
+ - hamming = Similar to bilinear, but better downscaling
596
598
  - bicubic = Cubic spline interpolation
597
599
  - lanczos = A high-quality downsampling filter
598
600
  --quantize-method QUANTIZE_METHOD
@@ -1,35 +1,35 @@
1
1
  sticker_convert/__init__.py,sha256=iQnv6UOOA69c3soAn7ZOnAIubTIQSUxtq1Uhh8xRWvU,102
2
2
  sticker_convert/__main__.py,sha256=6RJauR-SCSSTT3TU7FFB6B6PVwsCxO2xZXtmZ3jc2Is,463
3
- sticker_convert/cli.py,sha256=eTJ-A0_zbdI7Z1ZPQVWmsEs80gX0TfainBiUDoIUKmk,17739
4
- sticker_convert/converter.py,sha256=5M1hL3wL8OqEnhyJ1GNUbyBORCFhvaR9RPGzY2O34VI,31289
5
- sticker_convert/definitions.py,sha256=Cci0bh9zSnoNKBmGreT7mkzUoM8SLj_92LqV5ByrkOw,2153
6
- sticker_convert/gui.py,sha256=B5EbxC_x134Qzreg_HIDpBjtutYEcuPsAUnCk_9NeXw,30394
7
- sticker_convert/job.py,sha256=Y44R75P9hB8PaxB7Jr_m57FaoVVLyUf-nkTJnMMiARg,26090
8
- sticker_convert/job_option.py,sha256=SKjI5YXeJvUbeWm4RLjDPpdkPGbpmAuG3Wkgn3ZPvkk,7525
9
- sticker_convert/version.py,sha256=8fxGHY0RnbcY2ouHz2CrOTxCFFSeNN-uA-XEQnQ4dwI,46
3
+ sticker_convert/cli.py,sha256=9juw31O8oVRWHMs8YgUtzX0bLamouDiO4xiqFkjWNP8,17575
4
+ sticker_convert/converter.py,sha256=ZAuRO6Ic6e1nhJc_pBsBlPMVyHZzy87q5Gk_naCRShI,31241
5
+ sticker_convert/definitions.py,sha256=ZhP2ALCEud-w9ZZD4c3TDG9eHGPZyaAL7zPUsJAbjtE,2073
6
+ sticker_convert/gui.py,sha256=5nl_OYmYTIHgmgX_ctrh-Xjys0geCntVtJj2OWQWoY4,30253
7
+ sticker_convert/job.py,sha256=sibFn95LenFa4CR29txM9FImP6Ib4fUffILGd_r6kK0,25931
8
+ sticker_convert/job_option.py,sha256=niPTGZ4X1iUdkxyVc29oM67bpsUNBX9Um7OOJNa3piE,7521
9
+ sticker_convert/version.py,sha256=BgvWx-3rkv80bo8ilxFsN4mqSAsTcZt0QXEqm7n2uK0,46
10
10
  sticker_convert/downloaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- sticker_convert/downloaders/download_base.py,sha256=iUPcMmlncEnBFzE3v9Nr-buMN5yaByYL2nPHQ_3gW7w,3308
12
- sticker_convert/downloaders/download_kakao.py,sha256=UDA2Rv7s4VJJwuN6t00l06qMkANyGe7YlshsVlTX4Js,8791
13
- sticker_convert/downloaders/download_line.py,sha256=nf_aaODj8aXV69rVfaZ3eBad5ClExp4JV-k8LeQ8hMU,17983
14
- sticker_convert/downloaders/download_signal.py,sha256=XJC-mxMM1OPOB946XGvkGSIyfm4X2NOa_tVk31Sxl_Y,3283
15
- sticker_convert/downloaders/download_telegram.py,sha256=rt_Yj58-sTwB-LONvL2G3RLEYfGqx81NQeNonbmxAs8,4300
11
+ sticker_convert/downloaders/download_base.py,sha256=5R7c8kwahAflOOYrtSQPnBVQ4T-DsprPUMP7G9wcJX4,2824
12
+ sticker_convert/downloaders/download_kakao.py,sha256=RYrebTxEjKjXAr9xw18r0dMW0dFjSqZxzi8dpaq56TY,8581
13
+ sticker_convert/downloaders/download_line.py,sha256=iQwCWqZBnoKFuQqgTR2JPnxE1RJWMu9eRmg38wST-kM,17918
14
+ sticker_convert/downloaders/download_signal.py,sha256=HMV5SV-WnfJkZ0lC65yY45xlE7_GK1b_ELOPwNTptG8,3225
15
+ sticker_convert/downloaders/download_telegram.py,sha256=ImGveyYoS2NtPiYHUQPEUOXciG76MD9iGAwvC_akXYw,4240
16
16
  sticker_convert/gui_components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- sticker_convert/gui_components/gui_utils.py,sha256=CZ3_SipDN4xK7SKn5p3fBE4MOliq2FXahGMyMyb9Z-Y,3482
17
+ sticker_convert/gui_components/gui_utils.py,sha256=okho2cA1Scem_m6rPiYifreFzpFrM21-yUkiAv64EUI,3431
18
18
  sticker_convert/gui_components/frames/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- sticker_convert/gui_components/frames/comp_frame.py,sha256=1_M6khQgIi1MkDo9r4oZ90O3Po4rghZLjgUlxhdPLgk,8161
20
- sticker_convert/gui_components/frames/config_frame.py,sha256=PFVOHs30V7nTN_NHaL3Z6EQVru3VlQlAUAzqkoFomdY,4350
21
- sticker_convert/gui_components/frames/control_frame.py,sha256=lNWA16DWG5WYKyEmZVm63GVQZ966MOQirijD62NWb9w,853
22
- sticker_convert/gui_components/frames/cred_frame.py,sha256=hpZAhiiwQo12NpzLsMRzdMPtah0cuGxeK6A1C8w1WlI,6526
23
- sticker_convert/gui_components/frames/input_frame.py,sha256=5VKUhEC7tdJ0V3cqQ0wuyDyuK5C8ALIFvJfhZP5O6p4,5058
24
- sticker_convert/gui_components/frames/output_frame.py,sha256=qOtEX4i7cUnwYw1W1al4taFg6Zc7-k2hWCF5iOp4R6k,4279
25
- sticker_convert/gui_components/frames/progress_frame.py,sha256=fTokpQIANBiKwDAsBK-DbiCeM4G-4tR_tvnnb6mWdYY,3491
19
+ sticker_convert/gui_components/frames/comp_frame.py,sha256=Bqdw1cRVIq1ub0TanXN7zBhQdxGuRzR9UvOgOMG5oWA,8137
20
+ sticker_convert/gui_components/frames/config_frame.py,sha256=I2mHL8vJe5E0YKXuN9rb9sXtNq7grpLuvud6g-Aaac8,4324
21
+ sticker_convert/gui_components/frames/control_frame.py,sha256=_XiOJ9JPUfiysDghGG04sEVLrXG9TMVlDZ60W0LhYVI,835
22
+ sticker_convert/gui_components/frames/cred_frame.py,sha256=I3XrOv7kUOsvFWquuzWWpZWbLclqKQXgD7dx5pcTuY4,6499
23
+ sticker_convert/gui_components/frames/input_frame.py,sha256=5Vz1d6J1jkofvvzm43DxeIW_CjWfxa2QPYFnkAAiAfM,5040
24
+ sticker_convert/gui_components/frames/output_frame.py,sha256=n2WLk22h61DoZli8WbFhd-h2CqWAebDXnBa051JBuOc,4260
25
+ sticker_convert/gui_components/frames/progress_frame.py,sha256=UpEPdxsV6knL1d5Y7k2BXKdkav2LAiv6lDFqNSQ-7_U,3474
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
- sticker_convert/gui_components/windows/advanced_compression_window.py,sha256=aH5ExH9GW53o7sgorc07ZpYTr7Lj9UFL7abhJwrQiOs,32124
29
- sticker_convert/gui_components/windows/base_window.py,sha256=zug3dJgO8n0knzZS7u6nIUflO-bHjy-vtEcbXobt424,1124
30
- sticker_convert/gui_components/windows/kakao_get_auth_window.py,sha256=mGwS_VYAEcIcHnwOcTHPNg7slRklCj1g06XLUrl2lfE,7142
31
- sticker_convert/gui_components/windows/line_get_auth_window.py,sha256=2nMd3rv9UNonuBMxFz0TvSOM4Nuk9JEuHyXQMyXRC7A,3401
32
- sticker_convert/gui_components/windows/signal_get_auth_window.py,sha256=9k11p18T5E9rBL5P0Fkgf3larp_MydrNj-MiOxLTqkE,4447
28
+ sticker_convert/gui_components/windows/advanced_compression_window.py,sha256=1UulI_3ZtXdc34aq-hzFyV2WBZOC5OWGFUAMdf7ipU0,32105
29
+ sticker_convert/gui_components/windows/base_window.py,sha256=xBE1peGMPvWsdrFej0CJUVhmQ57GJGvz-cX03nIIhkE,1108
30
+ sticker_convert/gui_components/windows/kakao_get_auth_window.py,sha256=AvXB2Q8pAPkKILHTvlLGV9jfBcvskCA4arko4nvBTdo,7115
31
+ sticker_convert/gui_components/windows/line_get_auth_window.py,sha256=S4ES_lk2-GDvPokZtYALnUc5zW1VbS4WulNqO9K1aSs,3375
32
+ sticker_convert/gui_components/windows/signal_get_auth_window.py,sha256=oucmrXushgFqIk7qLhFO1toBZ47D_2ciGoQ4jWc8YvI,4422
33
33
  sticker_convert/ios-message-stickers-template/.gitignore,sha256=4uuTph_9eHfqXHUavLOmGOji6aIHOif2bUEU_hCBn4Y,9
34
34
  sticker_convert/ios-message-stickers-template/README.md,sha256=oN0FvJkCWWjSZ3PMrCvY3T1zCsdkZYFgGHAoFh0Kmt8,467
35
35
  sticker_convert/ios-message-stickers-template/.github/FUNDING.yml,sha256=3LlmdSAGDsBA2o_C1iBYTNLwkABnyZuN0zxgPPyd-f8,70
@@ -68,32 +68,33 @@ sticker_convert/resources/appicon.ico,sha256=-ldugcl2Yq2pBRTktnhGKWInpKyWzRjCiPv
68
68
  sticker_convert/resources/appicon.png,sha256=6XBEQz7PnerqS43aRkwpWolFG4WvKMuQ-st1ly-_JPg,5265
69
69
  sticker_convert/resources/compression.json,sha256=WxC_KejpEreXrd_3YfW0NhDKn6xqBSaRqalVohLq5eI,10569
70
70
  sticker_convert/resources/emoji.json,sha256=sXSuKusyG1L2Stuf9BL5ZqfzOIOdeAeE3RXcrXAsLdY,413367
71
- sticker_convert/resources/help.json,sha256=-1qYNbjk_APMn-WF0n01PhbMWdYZXv6Lgc_4k366Vz4,5880
71
+ sticker_convert/resources/help.json,sha256=PQcISwdoGTZhyxgOBhNJ47z8t3rCiawewbDFHE53f3k,5988
72
72
  sticker_convert/resources/input.json,sha256=sRz8qWaLh2KTjjlPIxz2UfynVn2Bn0olywbb8-qT_Hc,2251
73
73
  sticker_convert/resources/output.json,sha256=QYP2gqDvEaAm5I9bH4NReaB1XMLboevv69u-V8YdZUs,1373
74
74
  sticker_convert/uploaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- sticker_convert/uploaders/compress_wastickers.py,sha256=TMBatfW1EvxT8hEZpudr1v4IDTboVXSXyhCqM1ACM5M,6086
76
- sticker_convert/uploaders/upload_base.py,sha256=IwsfuSP94nn-5RkzYjSJJkCgc8EWJr-TiRrZNzvUCDM,1415
77
- sticker_convert/uploaders/upload_signal.py,sha256=pEHaMj0G_SO8IwZYcNIFdJYHjcudHVQ4ytBXn5OX38c,6610
78
- sticker_convert/uploaders/upload_telegram.py,sha256=IYBg3BbVZERwuBa2bF0QB-_sQdckcU_aiCTQVIaCfcI,11690
79
- sticker_convert/uploaders/xcode_imessage.py,sha256=Pk4j8pS6dZwdmDCoIRZu2zb6d8FDp4mN3cZDIV8su18,13462
80
- sticker_convert/utils/callback.py,sha256=DIn2MGQk1-9bKUEgVH1pQikD6bIz2GuoTXAJF8hPYAM,5405
81
- sticker_convert/utils/url_detect.py,sha256=qu4Yav6r5Ca1X5seFiu--gnMX3VASRSbkBnlljHgCYI,793
82
- sticker_convert/utils/auth/get_kakao_auth.py,sha256=pIByRSAky_1zVujb6gXDpavoKUNR4P8-MgMe1B1hsTk,9845
83
- sticker_convert/utils/auth/get_line_auth.py,sha256=OOAioUyEOfDiYHFsddOl3c7ztUBhoO2OVAWbo-IjeXE,2454
84
- sticker_convert/utils/auth/get_signal_auth.py,sha256=LrCk1quFk4KNdp7aoJEK9hgI_rdTwoeWx0Dmh7h6Ysw,4794
85
- sticker_convert/utils/files/cache_store.py,sha256=7WrSTKdUaw_Ahn9fhXlmJfUNhUl20nN3xTQ95PLtKXk,1066
86
- sticker_convert/utils/files/json_manager.py,sha256=T-9Kaa4E3EipjZqITjHw0VDNJ1GgG0QuilqOCpC5x3w,567
87
- sticker_convert/utils/files/metadata_handler.py,sha256=mz618uDn-he7iojDyEIfuEDm7bM3qvhWLDBFQKX01DY,9811
88
- sticker_convert/utils/files/run_bin.py,sha256=vpOHNEiNjdhNlxab6CnLAIvYcpczDuRH9A7ytv52_Ds,1671
89
- sticker_convert/utils/files/sanitize_filename.py,sha256=xhwqhRc7vqDMLSaPfmmS-GX6n_uXRfRbKaTBUj_-_mM,2228
90
- sticker_convert/utils/media/apple_png_normalize.py,sha256=TOdZh2BE1oFOyREJQFyt5QynRTy3jkAGYN0p2cwP88I,3655
91
- sticker_convert/utils/media/codec_info.py,sha256=9SS8L6nditoXrwdiJ1qo_KRuqUvbvRKNMO5KSRiWXrY,13133
92
- sticker_convert/utils/media/decrypt_kakao.py,sha256=LeDe_obyE65DTgl2-4DadMcWqPYoaOKJ7o59NR9oUvI,1949
93
- sticker_convert/utils/media/format_verify.py,sha256=JU4hp3u6UIJpLwfhDt0brdfJLKYLhpPLrmHbM0DNKFg,5766
94
- sticker_convert-2.7.3.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
95
- sticker_convert-2.7.3.dist-info/METADATA,sha256=8heQ23OBsOWMg9EA7cqBF08moRu1PQm36FE2qotvH7A,48162
96
- sticker_convert-2.7.3.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
97
- sticker_convert-2.7.3.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
98
- sticker_convert-2.7.3.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
99
- sticker_convert-2.7.3.dist-info/RECORD,,
75
+ sticker_convert/uploaders/compress_wastickers.py,sha256=vrrd2huRGEw0Dbd3EqS162MsQHuzFk5rhB6GnD9zhfU,6062
76
+ sticker_convert/uploaders/upload_base.py,sha256=FDNZdMUcamLtnxy1XNMHk1N1MJapTlODLDhod5wqo7g,1386
77
+ sticker_convert/uploaders/upload_signal.py,sha256=6H4GT10d_J9rEA0Ov1CTdNagxuRDjGYtuQYZADV05Lo,6606
78
+ sticker_convert/uploaders/upload_telegram.py,sha256=HC6G5vgOqwoabA-VYSxeQHDg_8SgAcCCaG9iZScuAvo,11716
79
+ sticker_convert/uploaders/xcode_imessage.py,sha256=mwnUTNclq4SFGX8JgFoM-bsvAtsYtrjg6gFPNdRgbWk,11319
80
+ sticker_convert/utils/callback.py,sha256=qMGboov4bd6MnrMrQkIlS4TadgbKaF9R8yeR5twMItU,5450
81
+ sticker_convert/utils/url_detect.py,sha256=Cw3SzHj0xQTgCY8KvXbgFGRn_VhDJuZvH0mWsiQOg5s,769
82
+ sticker_convert/utils/auth/get_kakao_auth.py,sha256=ipAZ1DUd5CMTpUoxRXHVOFC3DKIpxwxpTYAfrOJ6UZ8,9829
83
+ sticker_convert/utils/auth/get_line_auth.py,sha256=WzO5aGL1-_KHTcBA6ymOZLD3vLp35MUj0pG7w08K5Wo,2436
84
+ sticker_convert/utils/auth/get_signal_auth.py,sha256=xTNRouhWIYysNYz13H9nBZr6QzVUjwrhdJAH70CzwzU,4793
85
+ sticker_convert/utils/files/cache_store.py,sha256=etfe614OAhAyrnM5fGeESKq6R88YLNqkqkxSzEmZ0V0,1047
86
+ sticker_convert/utils/files/json_manager.py,sha256=Vr6pZJdLMkrJJWN99210aduVHb0ILyf0SSTaw4TZqgc,541
87
+ sticker_convert/utils/files/json_resources_loader.py,sha256=H3uMn-77wtALwiGAPhA31OIohcZtWvvzXO7rFmM8EMg,535
88
+ sticker_convert/utils/files/metadata_handler.py,sha256=TJpQ-7KdnqQh09hwR6xB_scRLhbJ6D3zgORy3dkf858,9933
89
+ sticker_convert/utils/files/run_bin.py,sha256=QalA9je6liHxiOtxsjsFsIkc2t59quhcJCVpP1X3p50,1743
90
+ sticker_convert/utils/files/sanitize_filename.py,sha256=HBklPGsHRJjFQUIC5rYTQsUrsuTtezZXIEA8CPhLP8A,2156
91
+ sticker_convert/utils/media/apple_png_normalize.py,sha256=LbrQhc7LlYX4I9ek4XJsZE4l0MygBA1jB-PFiYLEkzk,3657
92
+ sticker_convert/utils/media/codec_info.py,sha256=slKvwLxgJz1txJIN4gJ5dAFDLvZLhnTP29Pm8GYveSM,12984
93
+ sticker_convert/utils/media/decrypt_kakao.py,sha256=4wq9ZDRnFkx1WmFZnyEogBofiLGsWQM_X69HlA36578,1947
94
+ sticker_convert/utils/media/format_verify.py,sha256=Xf94jyqk_6M9IlFGMy0wYIgQKn_yg00nD4XW0CgAbew,5732
95
+ sticker_convert-2.7.4.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
96
+ sticker_convert-2.7.4.dist-info/METADATA,sha256=cHUc7sVAVAmcq5oRqssPho1AfmSXCVaPrEfl8ot1hnk,48316
97
+ sticker_convert-2.7.4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
98
+ sticker_convert-2.7.4.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
99
+ sticker_convert-2.7.4.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
100
+ sticker_convert-2.7.4.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5