sticker-convert 2.8.9__py3-none-any.whl → 2.8.10__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 CHANGED
@@ -136,7 +136,7 @@ class CLI:
136
136
  "scale_filter",
137
137
  "quantize_method",
138
138
  )
139
- flags_comp_bool = ("fake_vid", "force_pywebp")
139
+ flags_comp_bool = ("fake_vid",)
140
140
  keyword_args: Dict[str, Any]
141
141
  for k, v in self.help["comp"].items():
142
142
  if k in flags_comp_int:
@@ -390,9 +390,6 @@ class CLI:
390
390
  fake_vid=self.compression_presets[preset]["fake_vid"]
391
391
  if args.fake_vid is None
392
392
  else args.fake_vid,
393
- force_pywebp=self.compression_presets[preset]["force_pywebp"]
394
- if args.force_pywebp is None
395
- else args.force_pywebp,
396
393
  cache_dir=args.cache_dir,
397
394
  scale_filter=self.compression_presets[preset]["scale_filter"]
398
395
  if args.scale_filter is None
@@ -33,19 +33,6 @@ MSG_FAIL_COMP = (
33
33
  "[F] Failed Compression {} -> {}, "
34
34
  "cannot get below limit {} with lowest quality under current settings (Best size: {})"
35
35
  )
36
- MSG_PYWEBP_FLAG_SET = "`--force-pywebp` was set\n"
37
- MSG_PYWEBP_NO_LIBWEBP = "system WebP>=0.5.0 was not found.\n"
38
- MSG_PYWEBP_DUPFRAME = (
39
- "[W] {} contains duplicated frame.\n"
40
- " Using pywebp instead of Pillow as {}"
41
- " This is faster, but known to collapse same frames into single frame,\n"
42
- " causing problem with animation timing."
43
- )
44
- MSG_WEBP_PIL_DUPFRAME = (
45
- "[W] {} contains duplicated frame.\n"
46
- " Using Pillow to create animated webp to avoid same frames collapse\n"
47
- " into single frame, but this is slower."
48
- )
49
36
 
50
37
  YUV_RGB_MATRIX = np.array(
51
38
  [
@@ -197,8 +184,6 @@ class StickerConvert:
197
184
  self.result_step: Optional[int] = None
198
185
 
199
186
  self.apngasm = None
200
- self.msg_pywebp_dupframe_displayed = False
201
- self.msg_webp_pil_dupframe_displayed = False
202
187
 
203
188
  @staticmethod
204
189
  def convert(
@@ -698,11 +683,9 @@ class StickerConvert:
698
683
  self._frames_export_apng()
699
684
  else:
700
685
  self._frames_export_png()
701
- elif self.out_f.suffix == ".webp":
702
- self._frames_export_webp()
703
686
  elif self.out_f.suffix == ".gif":
704
687
  self._frames_export_pil_anim()
705
- elif self.out_f.suffix in (".webm", ".mp4", ".mkv") or is_animated:
688
+ elif self.out_f.suffix in (".webm", ".mp4", ".mkv", ".webp") or is_animated:
706
689
  self._frames_export_pyav()
707
690
  else:
708
691
  self._frames_export_pil()
@@ -719,46 +702,6 @@ class StickerConvert:
719
702
 
720
703
  return False
721
704
 
722
- def _frames_export_webp(self) -> None:
723
- # TODO: Encode webp with pyav when available
724
- # https://github.com/PyAV-Org/PyAV/issues/1352
725
- has_dup_frames = self._check_dup()
726
- if self.fps:
727
- # It was noted that pywebp would collapse all frames.
728
- # aed005b attempted to fix this by creating webp with
729
- # variable frame duration. However, the webp created would
730
- # not be accepted by WhatsApp.
731
- # Therefore, we are preferring Pillow over pywebp.
732
- if has_dup_frames:
733
- if self.opt_comp.force_pywebp:
734
- if not self.msg_pywebp_dupframe_displayed:
735
- self.cb.put(
736
- MSG_PYWEBP_DUPFRAME.format(
737
- self.in_f_name, MSG_PYWEBP_FLAG_SET
738
- )
739
- )
740
- self.msg_pywebp_dupframe_displayed = True
741
- self._frames_export_pywebp()
742
- elif not PIL_WEBP_ANIM:
743
- if not self.msg_pywebp_dupframe_displayed:
744
- self.cb.put(
745
- MSG_PYWEBP_DUPFRAME.format(
746
- self.in_f_name, MSG_PYWEBP_NO_LIBWEBP
747
- )
748
- )
749
- self.msg_pywebp_dupframe_displayed = True
750
- self._frames_export_pywebp()
751
- else:
752
- # Warn that using Pillow is slower
753
- if not self.msg_webp_pil_dupframe_displayed:
754
- self.cb.put(MSG_WEBP_PIL_DUPFRAME.format(self.in_f_name))
755
- self.msg_webp_pil_dupframe_displayed = True
756
- self._frames_export_pil_anim()
757
- else:
758
- self._frames_export_pywebp()
759
- else:
760
- self._frames_export_pil()
761
-
762
705
  def _frames_export_pil(self) -> None:
763
706
  with Image.fromarray(self.frames_processed[0]) as im: # type: ignore
764
707
  im.save(
@@ -771,30 +714,38 @@ class StickerConvert:
771
714
  import av
772
715
  from av.video.stream import VideoStream
773
716
 
774
- options: Dict[str, str] = {}
717
+ options_container: Dict[str, str] = {}
718
+ options_stream: Dict[str, str] = {}
775
719
 
776
720
  if isinstance(self.quality, int):
777
721
  # Seems not actually working
778
- options["quality"] = str(self.quality)
779
- options["lossless"] = "0"
722
+ options_stream["quality"] = str(self.quality)
723
+ options_stream["lossless"] = "0"
780
724
 
781
725
  if self.out_f.suffix in (".apng", ".png"):
782
726
  codec = "apng"
783
727
  pixel_format = "rgba"
784
- options["plays"] = "0"
728
+ options_container["plays"] = "0"
785
729
  elif self.out_f.suffix in (".webm", ".mkv"):
786
730
  codec = "libvpx-vp9"
787
731
  pixel_format = "yuva420p"
788
- options["loop"] = "0"
732
+ options_container["loop"] = "0"
733
+ elif self.out_f.suffix == ".webp":
734
+ codec = "webp"
735
+ pixel_format = "yuva420p"
736
+ options_container["loop"] = "0"
789
737
  else:
790
738
  codec = "libvpx-vp9"
791
739
  pixel_format = "yuv420p"
792
- options["loop"] = "0"
740
+ options_container["loop"] = "0"
793
741
 
794
742
  with av.open(
795
- self.tmp_f, "w", format=self.out_f.suffix.replace(".", "")
743
+ self.tmp_f,
744
+ "w",
745
+ format=self.out_f.suffix.replace(".", ""),
746
+ options=options_container,
796
747
  ) as output:
797
- out_stream = output.add_stream(codec, rate=self.fps, options=options)
748
+ out_stream = output.add_stream(codec, rate=self.fps, options=options_stream)
798
749
  out_stream = cast(VideoStream, out_stream)
799
750
  assert isinstance(self.res_w, int) and isinstance(self.res_h, int)
800
751
  out_stream.width = self.res_w
@@ -858,21 +809,6 @@ class StickerConvert:
858
809
  **extra_kwargs,
859
810
  )
860
811
 
861
- def _frames_export_pywebp(self) -> None:
862
- import webp # type: ignore
863
-
864
- assert self.fps
865
-
866
- config = webp.WebPConfig.new(quality=self.quality) # type: ignore
867
- enc = webp.WebPAnimEncoder.new(self.res_w, self.res_h) # type: ignore
868
- timestamp_ms = 0
869
- for frame in self.frames_processed:
870
- pic = webp.WebPPicture.from_numpy(frame) # type: ignore
871
- enc.encode_frame(pic, timestamp_ms, config=config) # type: ignore
872
- timestamp_ms += int(1000 / self.fps)
873
- anim_data = enc.assemble(timestamp_ms) # type: ignore
874
- self.tmp_f.write(anim_data.buffer()) # type: ignore
875
-
876
812
  def _frames_export_png(self) -> None:
877
813
  with Image.fromarray(self.frames_processed[0], "RGBA") as image: # type: ignore
878
814
  image_quant = self.quantize(image)
sticker_convert/gui.py CHANGED
@@ -135,7 +135,6 @@ class GUI(Window):
135
135
  self.fake_vid_var = BooleanVar()
136
136
  self.scale_filter_var = StringVar(self)
137
137
  self.quantize_method_var = StringVar(self)
138
- self.force_pywebp_var = BooleanVar()
139
138
  self.cache_dir_var = StringVar(self)
140
139
  self.default_emoji_var = StringVar(self)
141
140
  self.steps_var = IntVar(self)
@@ -526,7 +525,6 @@ class GUI(Window):
526
525
  fake_vid=self.fake_vid_var.get(),
527
526
  scale_filter=self.scale_filter_var.get(),
528
527
  quantize_method=self.quantize_method_var.get(),
529
- force_pywebp=self.force_pywebp_var.get(),
530
528
  cache_dir=self.cache_dir_var.get()
531
529
  if self.cache_dir_var.get() != ""
532
530
  else None,
@@ -135,7 +135,6 @@ class CompFrame(LabelFrame):
135
135
  self.gui.fake_vid_var.set(preset.get("fake_vid"))
136
136
  self.gui.scale_filter_var.set(preset.get("scale_filter"))
137
137
  self.gui.quantize_method_var.set(preset.get("quantize_method"))
138
- self.gui.force_pywebp_var.set(preset.get("force_pywebp"))
139
138
  self.gui.default_emoji_var.set(preset.get("default_emoji"))
140
139
  self.gui.steps_var.set(preset.get("steps"))
141
140
 
@@ -293,18 +293,6 @@ class AdvancedCompressionWindow(BaseWindow):
293
293
  bootstyle="secondary", # type: ignore
294
294
  )
295
295
 
296
- self.force_pywebp_help_btn = self.add_help_btn(
297
- self.gui.help["comp"]["force_pywebp"]
298
- )
299
- self.force_pywebp_lbl = Label(self.frame_advcomp, text="Force pywebp")
300
- self.force_pywebp_cbox = Checkbutton(
301
- self.frame_advcomp,
302
- variable=self.gui.force_pywebp_var,
303
- onvalue=True,
304
- offvalue=False,
305
- bootstyle="success-round-toggle", # type: ignore
306
- )
307
-
308
296
  self.cache_dir_help_btn = self.add_help_btn(self.gui.help["comp"]["cache_dir"])
309
297
  self.cache_dir_lbl = Label(self.frame_advcomp, text="Custom cache directory")
310
298
  self.cache_dir_entry = Entry(
@@ -424,10 +412,6 @@ class AdvancedCompressionWindow(BaseWindow):
424
412
  column=2, row=r, columnspan=4, sticky="nes", padx=3, pady=3
425
413
  )
426
414
  r += 1
427
- self.force_pywebp_help_btn.grid(column=0, row=r, sticky="w", padx=3, pady=3)
428
- self.force_pywebp_lbl.grid(column=1, row=r, sticky="w", padx=3, pady=3)
429
- self.force_pywebp_cbox.grid(column=6, row=r, sticky="nes", padx=3, pady=3)
430
- r += 1
431
415
  self.cache_dir_help_btn.grid(column=0, row=r, sticky="w", padx=3, pady=3)
432
416
  self.cache_dir_lbl.grid(column=1, row=r, sticky="w", padx=3, pady=3)
433
417
  self.cache_dir_entry.grid(
@@ -74,7 +74,6 @@ class CompOption(BaseOption):
74
74
  steps: int = 1
75
75
  fake_vid: Optional[bool] = None
76
76
  quantize_method: Optional[str] = None
77
- force_pywebp: Optional[bool] = None
78
77
  scale_filter: Optional[str] = None
79
78
  cache_dir: Optional[str] = None
80
79
  default_emoji: str = "😀"
@@ -44,7 +44,6 @@
44
44
  "fake_vid": false,
45
45
  "scale_filter": "bicubic",
46
46
  "quantize_method": "imagequant",
47
- "force_pywebp": false,
48
47
  "default_emoji": "😀"
49
48
  },
50
49
  "signal": {
@@ -92,7 +91,6 @@
92
91
  "fake_vid": false,
93
92
  "scale_filter": "bicubic",
94
93
  "quantize_method": "imagequant",
95
- "force_pywebp": false,
96
94
  "default_emoji": "😀"
97
95
  },
98
96
  "telegram": {
@@ -140,7 +138,6 @@
140
138
  "fake_vid": false,
141
139
  "scale_filter": "bicubic",
142
140
  "quantize_method": "imagequant",
143
- "force_pywebp": false,
144
141
  "default_emoji": "😀"
145
142
  },
146
143
  "telegram_emoji": {
@@ -188,7 +185,6 @@
188
185
  "fake_vid": false,
189
186
  "scale_filter": "bicubic",
190
187
  "quantize_method": "imagequant",
191
- "force_pywebp": false,
192
188
  "default_emoji": "😀"
193
189
  },
194
190
  "whatsapp": {
@@ -236,7 +232,6 @@
236
232
  "fake_vid": true,
237
233
  "scale_filter": "bicubic",
238
234
  "quantize_method": "imagequant",
239
- "force_pywebp": false,
240
235
  "default_emoji": "😀"
241
236
  },
242
237
  "line": {
@@ -284,7 +279,6 @@
284
279
  "fake_vid": false,
285
280
  "scale_filter": "bicubic",
286
281
  "quantize_method": "imagequant",
287
- "force_pywebp": false,
288
282
  "default_emoji": "😀"
289
283
  },
290
284
  "kakao": {
@@ -332,7 +326,6 @@
332
326
  "fake_vid": false,
333
327
  "scale_filter": "bicubic",
334
328
  "quantize_method": "imagequant",
335
- "force_pywebp": false,
336
329
  "default_emoji": "😀"
337
330
  },
338
331
  "viber": {
@@ -380,7 +373,6 @@
380
373
  "fake_vid": false,
381
374
  "scale_filter": "bicubic",
382
375
  "quantize_method": "imagequant",
383
- "force_pywebp": false,
384
376
  "default_emoji": "😀"
385
377
  },
386
378
  "imessage_small": {
@@ -428,7 +420,6 @@
428
420
  "fake_vid": false,
429
421
  "scale_filter": "bicubic",
430
422
  "quantize_method": "imagequant",
431
- "force_pywebp": false,
432
423
  "default_emoji": "😀"
433
424
  },
434
425
  "imessage_medium": {
@@ -476,7 +467,6 @@
476
467
  "fake_vid": false,
477
468
  "scale_filter": "bicubic",
478
469
  "quantize_method": "imagequant",
479
- "force_pywebp": false,
480
470
  "default_emoji": "😀"
481
471
  },
482
472
  "imessage_large": {
@@ -524,7 +514,6 @@
524
514
  "fake_vid": false,
525
515
  "scale_filter": "bicubic",
526
516
  "quantize_method": "imagequant",
527
- "force_pywebp": false,
528
517
  "default_emoji": "😀"
529
518
  },
530
519
  "custom": {
@@ -572,7 +561,6 @@
572
561
  "fake_vid": false,
573
562
  "scale_filter": "bicubic",
574
563
  "quantize_method": "imagequant",
575
- "force_pywebp": false,
576
564
  "default_emoji": "😀"
577
565
  }
578
566
  }
@@ -51,7 +51,6 @@
51
51
  "fake_vid": "Convert (faking) image to video.\nUseful if:\n(1) Size limit for video is larger than image;\n(2) Mix image and video into same pack.",
52
52
  "scale_filter": "Set scale filter. Default as bicubic. Valid options are:\n- nearest = Use nearest neighbour (Suitable for pixel art)\n- box = Similar to nearest, but better downscaling\n- bilinear = Linear interpolation\n- hamming = Similar to bilinear, but better downscaling\n- bicubic = Cubic spline interpolation\n- lanczos = A high-quality downsampling filter",
53
53
  "quantize_method": "Set method for quantizing image. Default as imagequant. Valid options are:\n- imagequant = Best quality but slow\n- fastoctree = Fast but image looks chunky\n- none = No image quantizing, large image size as result",
54
- "force_pywebp": "Force using pywebp for encoding webp files instead of Pillow.",
55
54
  "cache_dir": "Set custom cache directory.\nUseful for debugging, or speed up conversion if cache_dir is on RAM disk.",
56
55
  "default_emoji": "Set the default emoji for uploading Signal and Telegram sticker packs."
57
56
  },
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- __version__ = "2.8.9"
3
+ __version__ = "2.8.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sticker-convert
3
- Version: 2.8.9
3
+ Version: 2.8.10
4
4
  Summary: Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, Viber, iMessage. Written in Python.
5
5
  Author-email: laggykiller <chaudominic2@gmail.com>
6
6
  Maintainer-email: laggykiller <chaudominic2@gmail.com>
@@ -365,9 +365,9 @@ Requires-Python: >=3.8
365
365
  Description-Content-Type: text/markdown
366
366
  License-File: LICENSE
367
367
  Requires-Dist: aiolimiter ~=1.1.0
368
- Requires-Dist: anyio ~=4.3.0
369
- Requires-Dist: apngasm-python ~=1.2.3
370
- Requires-Dist: av ~=12.0.0
368
+ Requires-Dist: anyio ~=4.4.0
369
+ Requires-Dist: apngasm-python ~=1.3.1
370
+ Requires-Dist: av ~=12.1.0
371
371
  Requires-Dist: beautifulsoup4 ~=4.12.3
372
372
  Requires-Dist: rookiepy ~=0.5.1
373
373
  Requires-Dist: imagequant ~=1.1.1
@@ -376,14 +376,13 @@ Requires-Dist: mergedeep ~=1.3.4
376
376
  Requires-Dist: numpy >=1.22.4
377
377
  Requires-Dist: Pillow ~=10.3.0
378
378
  Requires-Dist: pyoxipng ~=9.0.0
379
- Requires-Dist: python-telegram-bot ~=21.1
380
- Requires-Dist: requests ~=2.31.0
379
+ Requires-Dist: python-telegram-bot ~=21.2
380
+ Requires-Dist: requests ~=2.32.2
381
381
  Requires-Dist: rlottie-python ~=1.3.4
382
382
  Requires-Dist: signalstickers-client-fork-laggykiller ~=3.3.0.post1
383
383
  Requires-Dist: sqlcipher3-wheels ~=0.5.2.post1
384
384
  Requires-Dist: tqdm ~=4.66.4
385
385
  Requires-Dist: ttkbootstrap-fork-laggykiller ~=1.5.1
386
- Requires-Dist: webp ~=0.3.0
387
386
 
388
387
  # sticker-convert
389
388
  ![imgs/banner.png](imgs/banner.png)
@@ -479,22 +478,28 @@ Requires-Dist: webp ~=0.3.0
479
478
  To run in CLI mode, pass on any arguments
480
479
 
481
480
  ```
482
- usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
481
+ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS]
482
+ [--input-dir INPUT_DIR]
483
483
  [--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-viber DOWNLOAD_VIBER]
484
484
  [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
485
- [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage] [--no-compress]
485
+ [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
486
+ [--no-compress]
486
487
  [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}]
487
- [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER] [--res-min RES_MIN]
488
- [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX]
489
- [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER] [--color-min COLOR_MIN]
490
- [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX]
491
- [--padding-percent PADDING_PERCENT] [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
492
- [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD]
493
- [--force-pywebp] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD]
494
- [--signal-get-auth] [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID]
495
- [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
496
- [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth] [--line-cookies LINE_COOKIES]
497
- [--save-cred SAVE_CRED]
488
+ [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
489
+ [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
490
+ [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
491
+ [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
492
+ [--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER]
493
+ [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
494
+ [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
495
+ [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
496
+ [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
497
+ [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
498
+ [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
499
+ [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
500
+ [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
501
+ [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
502
+ [--line-get-auth] [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
498
503
 
499
504
  CLI for stickers-convert
500
505
 
@@ -620,7 +625,6 @@ Compression options:
620
625
  - imagequant = Best quality but slow
621
626
  - fastoctree = Fast but image looks chunky
622
627
  - none = No image quantizing, large image size as result
623
- --force-pywebp Force using pywebp for encoding webp files instead of Pillow.
624
628
  --cache-dir CACHE_DIR
625
629
  Set custom cache directory.
626
630
  Useful for debugging, or speed up conversion if cache_dir is on RAM disk.
@@ -1,12 +1,12 @@
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=ThoWSx6C-_k4T_wcYirxNHC6f7YXZD9-UaKbEbW0a8g,19020
4
- sticker_convert/converter.py,sha256=4YhQkYyq_rOnCPyu22dG6iztdf5xxluOmeUfzuHh0pw,38099
3
+ sticker_convert/cli.py,sha256=DUPaI0Vw-a63TxxC2SSskLd1PlAuQtFOklggMo04IJc,18854
4
+ sticker_convert/converter.py,sha256=hXJ1bS2e1DNShGOVbic0rvbW9WWdI9xFs2LfQY0F5ck,35142
5
5
  sticker_convert/definitions.py,sha256=ZhP2ALCEud-w9ZZD4c3TDG9eHGPZyaAL7zPUsJAbjtE,2073
6
- sticker_convert/gui.py,sha256=2mZkhRKi_4tTPxUTAVo5lPFvWixy__uyyyZFOTsOc3M,30806
6
+ sticker_convert/gui.py,sha256=TRPGwMhSMPHnZppHmw2OWHKTJtGoeLpGWD0eRYi4_yk,30707
7
7
  sticker_convert/job.py,sha256=vKv1--y4MVmZV_IBpUhEfNEiUeEqrTR1umzlALPXKdw,25775
8
- sticker_convert/job_option.py,sha256=s5M_BR0U5yWN-ZEz2rvch8ZYl109p5m4PvFHEjKu1Pw,7772
9
- sticker_convert/version.py,sha256=1NQeivze43jfPeBfR4EWVX8KQSH7hKktUzqmKSdZQT8,46
8
+ sticker_convert/job_option.py,sha256=JHAFCxp7-dDwD-1PbpYLAFRF3OoJu8cj_BjOm5r8Gp8,7732
9
+ sticker_convert/version.py,sha256=UtJ9dsXpGqw7NMojAfGIj-YUjczQKkZ2Tj8O0zGVRM4,47
10
10
  sticker_convert/downloaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  sticker_convert/downloaders/download_base.py,sha256=x18bI2mPpbXRnSmStBHEb1IvN-VPCilOHLQUs6YPUEU,4041
12
12
  sticker_convert/downloaders/download_kakao.py,sha256=UFp7EpMea62fIePY5DfhH4jThAwdeazfoC5iW1g4dAo,8516
@@ -17,7 +17,7 @@ sticker_convert/downloaders/download_viber.py,sha256=mrM1XIuXuon4hlkYQc8vYqjYr1K
17
17
  sticker_convert/gui_components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  sticker_convert/gui_components/gui_utils.py,sha256=okho2cA1Scem_m6rPiYifreFzpFrM21-yUkiAv64EUI,3431
19
19
  sticker_convert/gui_components/frames/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- sticker_convert/gui_components/frames/comp_frame.py,sha256=L4CCr_D5K-hieLqvGJ8fz532ETzI2LymbCDHtDFBNTM,7323
20
+ sticker_convert/gui_components/frames/comp_frame.py,sha256=9k_UntKKi2G_g0byzoj1rdTqOq7q9mcnXiy799bYnr0,7257
21
21
  sticker_convert/gui_components/frames/config_frame.py,sha256=b3X4QAnGpde0OhthXHmjSyU_Yb5tYRUFXmy04Yi8Zmo,4316
22
22
  sticker_convert/gui_components/frames/control_frame.py,sha256=_XiOJ9JPUfiysDghGG04sEVLrXG9TMVlDZ60W0LhYVI,835
23
23
  sticker_convert/gui_components/frames/cred_frame.py,sha256=I3XrOv7kUOsvFWquuzWWpZWbLclqKQXgD7dx5pcTuY4,6499
@@ -26,7 +26,7 @@ sticker_convert/gui_components/frames/output_frame.py,sha256=n2WLk22h61DoZli8WbF
26
26
  sticker_convert/gui_components/frames/progress_frame.py,sha256=LWUZg_iL7iiNTfu7N5Ct_pklZdghxihENi7DP9YozOE,4915
27
27
  sticker_convert/gui_components/frames/right_clicker.py,sha256=dGIvSzEChrkguR80pzUemBNJ39uzJjVJQKeDNUoW3Gk,721
28
28
  sticker_convert/gui_components/windows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- sticker_convert/gui_components/windows/advanced_compression_window.py,sha256=6PYo_IPHbddy6ncob3Xt44_wZ8m6bEQJ5l1mkKrcT7k,32675
29
+ sticker_convert/gui_components/windows/advanced_compression_window.py,sha256=DT5SgSWWKXRbOD8fJK-9kch9U_P1N3ox6-bphlPr0Ss,31964
30
30
  sticker_convert/gui_components/windows/base_window.py,sha256=xBE1peGMPvWsdrFej0CJUVhmQ57GJGvz-cX03nIIhkE,1108
31
31
  sticker_convert/gui_components/windows/kakao_get_auth_window.py,sha256=AvXB2Q8pAPkKILHTvlLGV9jfBcvskCA4arko4nvBTdo,7115
32
32
  sticker_convert/gui_components/windows/line_get_auth_window.py,sha256=S4ES_lk2-GDvPokZtYALnUc5zW1VbS4WulNqO9K1aSs,3375
@@ -67,9 +67,9 @@ sticker_convert/resources/NotoColorEmoji.ttf,sha256=LurIVaCIA8bSCfjrdO1feYr0bhKL
67
67
  sticker_convert/resources/appicon.icns,sha256=FB2DVTOQcFfQNZ9RcyG3z9c9k7eOiI1qw0IJhXMRFg4,5404
68
68
  sticker_convert/resources/appicon.ico,sha256=-ldugcl2Yq2pBRTktnhGKWInpKyWzRjCiPvMr3XPTlc,38078
69
69
  sticker_convert/resources/appicon.png,sha256=6XBEQz7PnerqS43aRkwpWolFG4WvKMuQ-st1ly-_JPg,5265
70
- sticker_convert/resources/compression.json,sha256=brKB2wP7DSFTF5KMAD9SmiRR0nVQeyTIhcn82sKzSpM,12528
70
+ sticker_convert/resources/compression.json,sha256=8SAv5m7_R2QFaU656W7gpliCJF9ZmGdE_XfnJU3D0ZE,12156
71
71
  sticker_convert/resources/emoji.json,sha256=sXSuKusyG1L2Stuf9BL5ZqfzOIOdeAeE3RXcrXAsLdY,413367
72
- sticker_convert/resources/help.json,sha256=0EU_PDfireayHb052lTIQxOP-xK14z1iBNQkmEZmviA,6723
72
+ sticker_convert/resources/help.json,sha256=9A7zXYrHMkIE75MhDD3xoFuk9jofFRGCVVXH_g_h9bk,6634
73
73
  sticker_convert/resources/input.json,sha256=S3CkInBMLrk5OS9aJfuTCDsf_64NOjNT3IKQr7d1hM0,2665
74
74
  sticker_convert/resources/output.json,sha256=QYP2gqDvEaAm5I9bH4NReaB1XMLboevv69u-V8YdZUs,1373
75
75
  sticker_convert/uploaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -93,9 +93,9 @@ sticker_convert/utils/media/apple_png_normalize.py,sha256=LbrQhc7LlYX4I9ek4XJsZE
93
93
  sticker_convert/utils/media/codec_info.py,sha256=SJSFvQzXHnGkj7MH9xJ5xiC4cqiOjFKckFKE_FICdT4,15562
94
94
  sticker_convert/utils/media/decrypt_kakao.py,sha256=4wq9ZDRnFkx1WmFZnyEogBofiLGsWQM_X69HlA36578,1947
95
95
  sticker_convert/utils/media/format_verify.py,sha256=Xf94jyqk_6M9IlFGMy0wYIgQKn_yg00nD4XW0CgAbew,5732
96
- sticker_convert-2.8.9.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
97
- sticker_convert-2.8.9.dist-info/METADATA,sha256=xAKxvEPCrY5S_dYZlwSies5pzYDYldeY9i-5Y75RpIE,50350
98
- sticker_convert-2.8.9.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
99
- sticker_convert-2.8.9.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
100
- sticker_convert-2.8.9.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
101
- sticker_convert-2.8.9.dist-info/RECORD,,
96
+ sticker_convert-2.8.10.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
97
+ sticker_convert-2.8.10.dist-info/METADATA,sha256=wH0_wi0emJzWMyoaa2SkkpCUnN_VIQ6gvQu0Pp4XpF0,50376
98
+ sticker_convert-2.8.10.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
99
+ sticker_convert-2.8.10.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
100
+ sticker_convert-2.8.10.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
101
+ sticker_convert-2.8.10.dist-info/RECORD,,