sticker-convert 2.8.9__py3-none-any.whl → 2.8.10__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
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,,