sticker-convert 2.7.11__py3-none-any.whl → 2.7.13__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 +18 -0
- sticker_convert/converter.py +38 -18
- sticker_convert/resources/help.json +3 -2
- sticker_convert/utils/auth/get_line_auth.py +6 -0
- sticker_convert/utils/files/json_resources_loader.py +18 -3
- sticker_convert/version.py +1 -1
- {sticker_convert-2.7.11.dist-info → sticker_convert-2.7.13.dist-info}/METADATA +14 -10
- {sticker_convert-2.7.11.dist-info → sticker_convert-2.7.13.dist-info}/RECORD +12 -12
- {sticker_convert-2.7.11.dist-info → sticker_convert-2.7.13.dist-info}/LICENSE +0 -0
- {sticker_convert-2.7.11.dist-info → sticker_convert-2.7.13.dist-info}/WHEEL +0 -0
- {sticker_convert-2.7.11.dist-info → sticker_convert-2.7.13.dist-info}/entry_points.txt +0 -0
- {sticker_convert-2.7.11.dist-info → sticker_convert-2.7.13.dist-info}/top_level.txt +0 -0
sticker_convert/cli.py
CHANGED
@@ -9,6 +9,8 @@ from multiprocessing import cpu_count
|
|
9
9
|
from pathlib import Path
|
10
10
|
from typing import Any, Dict
|
11
11
|
|
12
|
+
from mergedeep import merge # type: ignore
|
13
|
+
|
12
14
|
from sticker_convert.definitions import CONFIG_DIR, DEFAULT_DIR
|
13
15
|
from sticker_convert.job import Job
|
14
16
|
from sticker_convert.job_option import CompOption, CredOption, InputOption, OutputOption
|
@@ -50,6 +52,12 @@ class CLI:
|
|
50
52
|
action="store_true",
|
51
53
|
help=self.help["global"]["no_confirm"],
|
52
54
|
)
|
55
|
+
parser.add_argument(
|
56
|
+
"--custom-presets",
|
57
|
+
dest="custom_presets",
|
58
|
+
default=None,
|
59
|
+
help=self.help["global"]["custom_presets"],
|
60
|
+
)
|
53
61
|
|
54
62
|
parser_input = parser.add_argument_group("Input options")
|
55
63
|
for k, v_str in self.help["input"].items():
|
@@ -162,6 +170,16 @@ class CLI:
|
|
162
170
|
|
163
171
|
args = parser.parse_args()
|
164
172
|
|
173
|
+
if args.custom_presets:
|
174
|
+
try:
|
175
|
+
custom_presets = JsonManager.load_json(Path(args.custom_presets))
|
176
|
+
self.compression_presets: Dict[Any, Any] = merge( # type: ignore
|
177
|
+
self.compression_presets, # type: ignore
|
178
|
+
custom_presets,
|
179
|
+
)
|
180
|
+
except RuntimeError:
|
181
|
+
print(f"Error: Cannot load custom presets from {args.custom_presets}")
|
182
|
+
|
165
183
|
self.cb.no_confirm = args.no_confirm
|
166
184
|
|
167
185
|
self.opt_input = self.get_opt_input(args)
|
sticker_convert/converter.py
CHANGED
@@ -19,8 +19,8 @@ from sticker_convert.utils.media.codec_info import CodecInfo
|
|
19
19
|
from sticker_convert.utils.media.format_verify import FormatVerify
|
20
20
|
|
21
21
|
if TYPE_CHECKING:
|
22
|
-
from av.video.frame import VideoFrame
|
23
|
-
from av.video.plane import VideoPlane
|
22
|
+
from av.video.frame import VideoFrame
|
23
|
+
from av.video.plane import VideoPlane
|
24
24
|
|
25
25
|
MSG_START_COMP = "[I] Start compressing {} -> {}"
|
26
26
|
MSG_SKIP_COMP = "[S] Compatible file found, skip compress and just copy {} -> {}"
|
@@ -264,14 +264,21 @@ class StickerConvert:
|
|
264
264
|
self.result_size = self.size
|
265
265
|
self.result_step = step_current
|
266
266
|
|
267
|
-
if
|
267
|
+
if (
|
268
|
+
step_upper - step_lower > 0
|
269
|
+
and step_current != step_lower
|
270
|
+
and self.size_max
|
271
|
+
):
|
268
272
|
if self.size <= self.size_max:
|
269
273
|
sign = "<"
|
270
274
|
step_upper = step_current
|
271
275
|
else:
|
272
276
|
sign = ">"
|
273
277
|
step_lower = step_current
|
274
|
-
step_current
|
278
|
+
if step_current == step_lower + 1:
|
279
|
+
step_current = step_lower
|
280
|
+
else:
|
281
|
+
step_current = int(rounding((step_lower + step_upper) / 2))
|
275
282
|
self.recompress(sign)
|
276
283
|
elif self.result:
|
277
284
|
return self.compress_done(self.result, self.result_step)
|
@@ -409,7 +416,7 @@ class StickerConvert:
|
|
409
416
|
|
410
417
|
if suffix in (".tgs", ".lottie", ".json"):
|
411
418
|
self._frames_import_lottie()
|
412
|
-
elif suffix in (".webp", ".apng", "png"):
|
419
|
+
elif suffix in (".webp", ".apng", ".png", ".gif"):
|
413
420
|
# ffmpeg do not support webp decoding (yet)
|
414
421
|
# ffmpeg could fail to decode apng if file is buggy
|
415
422
|
self._frames_import_pillow()
|
@@ -431,6 +438,7 @@ class StickerConvert:
|
|
431
438
|
from av.codec.context import CodecContext
|
432
439
|
from av.container.input import InputContainer
|
433
440
|
from av.video.codeccontext import VideoCodecContext
|
441
|
+
from av.video.frame import VideoFrame
|
434
442
|
|
435
443
|
# Crashes when handling some webm in yuv420p and convert to rgba
|
436
444
|
# https://github.com/PyAV-Org/PyAV/issues/1166
|
@@ -451,19 +459,31 @@ class StickerConvert:
|
|
451
459
|
|
452
460
|
for packet in container.demux(container.streams.video):
|
453
461
|
for frame in context.decode(packet):
|
454
|
-
|
455
|
-
|
456
|
-
else:
|
457
|
-
width = frame.width
|
462
|
+
width_orig = frame.width
|
463
|
+
height_orig = frame.height
|
458
464
|
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
465
|
+
# Need to pad frame to even dimension first
|
466
|
+
if width_orig % 2 == 1 or height_orig % 2 == 1:
|
467
|
+
from av.filter import Graph
|
468
|
+
|
469
|
+
width_new = width_orig + width_orig % 2
|
470
|
+
height_new = height_orig + height_orig % 2
|
471
|
+
|
472
|
+
graph = Graph()
|
473
|
+
in_src = graph.add_buffer(template=container.streams.video[0])
|
474
|
+
pad = graph.add(
|
475
|
+
"pad", f"{width_new}:{height_new}:0:0:color=#00000000"
|
476
|
+
)
|
477
|
+
in_src.link_to(pad)
|
478
|
+
sink = graph.add("buffersink")
|
479
|
+
pad.link_to(sink)
|
480
|
+
graph.configure()
|
481
|
+
|
482
|
+
graph.push(frame)
|
483
|
+
frame = cast(VideoFrame, graph.pull())
|
463
484
|
|
464
485
|
if frame.format.name == "yuv420p":
|
465
486
|
rgb_array = frame.to_ndarray(format="rgb24")
|
466
|
-
cast("np.ndarray[Any, Any]", rgb_array)
|
467
487
|
rgba_array = np.dstack(
|
468
488
|
(
|
469
489
|
rgb_array,
|
@@ -475,13 +495,13 @@ class StickerConvert:
|
|
475
495
|
# Not safe to directly call frame.to_ndarray(format="rgba")
|
476
496
|
# https://github.com/laggykiller/sticker-convert/issues/114
|
477
497
|
frame = frame.reformat(
|
478
|
-
width=width,
|
479
|
-
height=height,
|
480
498
|
format="yuva420p",
|
481
499
|
dst_colorspace=1,
|
482
500
|
)
|
483
501
|
rgba_array = yuva_to_rgba(frame)
|
484
502
|
|
503
|
+
# Remove pixels that was added to make dimensions even
|
504
|
+
rgba_array = rgba_array[0:width_orig, 0:height_orig]
|
485
505
|
self.frames_raw.append(rgba_array)
|
486
506
|
|
487
507
|
def _frames_import_lottie(self) -> None:
|
@@ -727,10 +747,10 @@ class StickerConvert:
|
|
727
747
|
if 0 in alpha:
|
728
748
|
extra_kwargs["transparency"] = 0
|
729
749
|
extra_kwargs["disposal"] = 2
|
730
|
-
im_out = [self.quantize(Image.fromarray(i)) for i in frames_processed]
|
750
|
+
im_out = [self.quantize(Image.fromarray(i)) for i in frames_processed] # type: ignore
|
731
751
|
else:
|
732
752
|
im_out = [
|
733
|
-
self.quantize(Image.fromarray(i).convert("RGB")).convert("RGB")
|
753
|
+
self.quantize(Image.fromarray(i).convert("RGB")).convert("RGB") # type: ignore
|
734
754
|
for i in frames_processed
|
735
755
|
]
|
736
756
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"global": {
|
3
|
-
"no_confirm": "Do not ask any questions."
|
3
|
+
"no_confirm": "Do not ask any questions.",
|
4
|
+
"custom_presets": "Specify a json file containing custom compression presets.\nSee compression.json for format.\nNote that if present, 'custom_preset.json' from config directory would be auto loaded."
|
4
5
|
},
|
5
6
|
"input": {
|
6
7
|
"input_dir": "Specify input directory."
|
@@ -46,7 +47,7 @@
|
|
46
47
|
"vid_format": "Set file format if input is animated.",
|
47
48
|
"img_format": "Set file format if input is static.",
|
48
49
|
"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.",
|
49
|
-
"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",
|
50
|
+
"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",
|
50
51
|
"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",
|
51
52
|
"cache_dir": "Set custom cache directory.\nUseful for debugging, or speed up conversion if cache_dir is on RAM disk.",
|
52
53
|
"default_emoji": "Set the default emoji for uploading Signal and Telegram sticker packs."
|
@@ -22,6 +22,12 @@ class GetLineAuth:
|
|
22
22
|
rookiepy.vivaldi, # type: ignore
|
23
23
|
]
|
24
24
|
|
25
|
+
# https://github.com/thewh1teagle/rookie/pull/24
|
26
|
+
if "libre_wolf" in rookiepy.__all__:
|
27
|
+
browsers.extend(rookiepy.libre_wolf) # type: ignore
|
28
|
+
else:
|
29
|
+
browsers.extend(rookiepy.librewolf) # type: ignore
|
30
|
+
|
25
31
|
if platform.system() == "Windows":
|
26
32
|
browsers.extend(
|
27
33
|
[
|
@@ -1,12 +1,27 @@
|
|
1
|
-
from typing import Dict
|
1
|
+
from typing import Any, Dict
|
2
2
|
|
3
|
-
from
|
3
|
+
from mergedeep import merge # type: ignore
|
4
|
+
|
5
|
+
from sticker_convert.definitions import CONFIG_DIR, ROOT_DIR
|
4
6
|
from sticker_convert.utils.files.json_manager import JsonManager
|
5
7
|
|
8
|
+
|
9
|
+
def _load_compression() -> Dict[Any, Any]:
|
10
|
+
compression_json = JsonManager.load_json(ROOT_DIR / "resources/compression.json")
|
11
|
+
custom_preset_json_path = CONFIG_DIR / "custom_preset.json"
|
12
|
+
if custom_preset_json_path.exists():
|
13
|
+
custom_preset_json = JsonManager.load_json(custom_preset_json_path)
|
14
|
+
compression_json: Dict[Any, Any] = merge( # type: ignore
|
15
|
+
compression_json, # type: ignore
|
16
|
+
custom_preset_json,
|
17
|
+
)
|
18
|
+
return compression_json
|
19
|
+
|
20
|
+
|
6
21
|
HELP_JSON: Dict[str, Dict[str, str]] = JsonManager.load_json(
|
7
22
|
ROOT_DIR / "resources/help.json"
|
8
23
|
)
|
9
24
|
INPUT_JSON = JsonManager.load_json(ROOT_DIR / "resources/input.json")
|
10
|
-
COMPRESSION_JSON =
|
25
|
+
COMPRESSION_JSON = _load_compression()
|
11
26
|
OUTPUT_JSON = JsonManager.load_json(ROOT_DIR / "resources/output.json")
|
12
27
|
EMOJI_JSON = JsonManager.load_json(ROOT_DIR / "resources/emoji.json")
|
sticker_convert/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.7.
|
3
|
+
Version: 2.7.13
|
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>
|
@@ -475,7 +475,7 @@ Requires-Dist: webp ~=0.3.0
|
|
475
475
|
To run in CLI mode, pass on any arguments
|
476
476
|
|
477
477
|
```
|
478
|
-
usage: sticker-convert.py [-h] [--version] [--no-confirm] [--input-dir INPUT_DIR]
|
478
|
+
usage: sticker-convert.py [-h] [--version] [--no-confirm] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
|
479
479
|
[--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO]
|
480
480
|
[--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
|
481
481
|
[--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
|
@@ -483,7 +483,7 @@ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--input-dir INPUT_DIR
|
|
483
483
|
[--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,imessage_small,imessage_medium,imessage_large,custom}]
|
484
484
|
[--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
|
485
485
|
[--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
|
486
|
-
[--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
|
486
|
+
[--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
|
487
487
|
[--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
|
488
488
|
[--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER]
|
489
489
|
[--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--bg-color BG_COLOR]
|
@@ -494,15 +494,19 @@ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--input-dir INPUT_DIR
|
|
494
494
|
[--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
|
495
495
|
[--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
|
496
496
|
[--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
|
497
|
-
[--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth]
|
497
|
+
[--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth]
|
498
498
|
[--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
|
499
499
|
|
500
500
|
CLI for stickers-convert
|
501
501
|
|
502
|
-
|
502
|
+
optional arguments:
|
503
503
|
-h, --help show this help message and exit
|
504
504
|
--version show program's version number and exit
|
505
505
|
--no-confirm Do not ask any questions.
|
506
|
+
--custom-presets CUSTOM_PRESETS
|
507
|
+
Specify a json file containing custom compression presets.
|
508
|
+
See compression.json for format.
|
509
|
+
Note that if present, 'custom_preset.json' from config directory would be auto loaded.
|
506
510
|
|
507
511
|
Input options:
|
508
512
|
--input-dir INPUT_DIR
|
@@ -540,7 +544,7 @@ Output options:
|
|
540
544
|
|
541
545
|
Compression options:
|
542
546
|
--no-compress Do not compress files. Useful for only downloading stickers.
|
543
|
-
--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,imessage_small,imessage_medium,imessage_large,custom}
|
547
|
+
--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,imessage_small,imessage_medium,imessage_large,custom}
|
544
548
|
Apply preset for compression.
|
545
549
|
--steps STEPS Set number of divisions between min and max settings.
|
546
550
|
Steps higher = Slower but yields file more closer to the specified file size limit.
|
@@ -600,7 +604,7 @@ Compression options:
|
|
600
604
|
--scale-filter SCALE_FILTER
|
601
605
|
Set scale filter. Default as bicubic. Valid options are:
|
602
606
|
- nearest = Use nearest neighbour (Suitable for pixel art)
|
603
|
-
-box = Similar to nearest, but better downscaling
|
607
|
+
- box = Similar to nearest, but better downscaling
|
604
608
|
- bilinear = Linear interpolation
|
605
609
|
- hamming = Similar to bilinear, but better downscaling
|
606
610
|
- bicubic = Cubic spline interpolation
|
@@ -628,10 +632,10 @@ Credentials options:
|
|
628
632
|
--telegram-token TELEGRAM_TOKEN
|
629
633
|
Set Telegram token. Required for uploading and downloading Telegram stickers.
|
630
634
|
--telegram-userid TELEGRAM_USERID
|
631
|
-
Set telegram user_id (From real account, not bot account). Required for uploading Telegram stickers.
|
635
|
+
Set telegram user_id (From real account, not bot account). Required for uploading Telegram stickers.
|
632
636
|
--kakao-auth-token KAKAO_AUTH_TOKEN
|
633
|
-
Set Kakao auth_token. Required for downloading animated stickers from https://e.kakao.com/t/xxxxx
|
634
|
-
--kakao-get-auth Generate Kakao auth_token. Kakao username, password, country code and phone number are also required.
|
637
|
+
Set Kakao auth_token. Required for downloading animated stickers from https://e.kakao.com/t/xxxxx
|
638
|
+
--kakao-get-auth Generate Kakao auth_token. Kakao username, password, country code and phone number are also required.
|
635
639
|
--kakao-username KAKAO_USERNAME
|
636
640
|
Set Kakao username, which is email or phone number used for signing up Kakao account
|
637
641
|
Example: +447700900142
|
@@ -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=
|
4
|
-
sticker_convert/converter.py,sha256
|
3
|
+
sticker_convert/cli.py,sha256=kyfhvMoHq42uLZsYYLrr6b30xsNE93GVZlbGYPFjC2I,18385
|
4
|
+
sticker_convert/converter.py,sha256=XqJyHPWaZCZEbUK_-0CUYmumeUzgOS4lg7zTPH9JYA8,33821
|
5
5
|
sticker_convert/definitions.py,sha256=ZhP2ALCEud-w9ZZD4c3TDG9eHGPZyaAL7zPUsJAbjtE,2073
|
6
6
|
sticker_convert/gui.py,sha256=TqdgFbHBRYgcXWWrsfxLUJ8Zu9WeE11vYyZMX6nalik,30599
|
7
7
|
sticker_convert/job.py,sha256=J4e7dZ48t5EhM3fG-xF1BEQ10WYljx3wWamKXAJjCa8,26000
|
8
8
|
sticker_convert/job_option.py,sha256=1YVhyTfu2cWz3qpAKbdIM11jbL0CJz0ksOYAeg8v6dc,7649
|
9
|
-
sticker_convert/version.py,sha256=
|
9
|
+
sticker_convert/version.py,sha256=jOLhRKwMOcmLYOtzpH73qVOpP1okliTWPuuIgfNT8xw,47
|
10
10
|
sticker_convert/downloaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
sticker_convert/downloaders/download_base.py,sha256=5R7c8kwahAflOOYrtSQPnBVQ4T-DsprPUMP7G9wcJX4,2824
|
12
12
|
sticker_convert/downloaders/download_kakao.py,sha256=RYrebTxEjKjXAr9xw18r0dMW0dFjSqZxzi8dpaq56TY,8581
|
@@ -68,7 +68,7 @@ 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=vwn6wLsfsPnNnpjhJHRvzozBI4F_kkb9-eBR8IlyYLo,10833
|
70
70
|
sticker_convert/resources/emoji.json,sha256=sXSuKusyG1L2Stuf9BL5ZqfzOIOdeAeE3RXcrXAsLdY,413367
|
71
|
-
sticker_convert/resources/help.json,sha256=
|
71
|
+
sticker_convert/resources/help.json,sha256=TUZi_70uVmgImApBUtKieDGEMtu8syVjE0ah8sKEcbk,6470
|
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
|
@@ -80,11 +80,11 @@ sticker_convert/uploaders/xcode_imessage.py,sha256=mwnUTNclq4SFGX8JgFoM-bsvAtsYt
|
|
80
80
|
sticker_convert/utils/callback.py,sha256=JnwrgaSNdl-74Nd-fz6EH-r6ePLLb-4a5C1P0OAPjNQ,5279
|
81
81
|
sticker_convert/utils/url_detect.py,sha256=Cw3SzHj0xQTgCY8KvXbgFGRn_VhDJuZvH0mWsiQOg5s,769
|
82
82
|
sticker_convert/utils/auth/get_kakao_auth.py,sha256=ipAZ1DUd5CMTpUoxRXHVOFC3DKIpxwxpTYAfrOJ6UZ8,9829
|
83
|
-
sticker_convert/utils/auth/get_line_auth.py,sha256=
|
83
|
+
sticker_convert/utils/auth/get_line_auth.py,sha256=CAg5oAyqnzyAr1sP0iaecJPpmreeERiZnVxIX9X_Ib0,2682
|
84
84
|
sticker_convert/utils/auth/get_signal_auth.py,sha256=6Sx-lMuyBHeX1RpjAWI8u03qnRu9fmO4p89pd7fowOE,4925
|
85
85
|
sticker_convert/utils/files/cache_store.py,sha256=etfe614OAhAyrnM5fGeESKq6R88YLNqkqkxSzEmZ0V0,1047
|
86
86
|
sticker_convert/utils/files/json_manager.py,sha256=Vr6pZJdLMkrJJWN99210aduVHb0ILyf0SSTaw4TZqgc,541
|
87
|
-
sticker_convert/utils/files/json_resources_loader.py,sha256=
|
87
|
+
sticker_convert/utils/files/json_resources_loader.py,sha256=flZFixUXRTrOAhvRQpuSQgmJ69yXL94sxukcowLT1JQ,1049
|
88
88
|
sticker_convert/utils/files/metadata_handler.py,sha256=TJpQ-7KdnqQh09hwR6xB_scRLhbJ6D3zgORy3dkf858,9933
|
89
89
|
sticker_convert/utils/files/run_bin.py,sha256=QalA9je6liHxiOtxsjsFsIkc2t59quhcJCVpP1X3p50,1743
|
90
90
|
sticker_convert/utils/files/sanitize_filename.py,sha256=HBklPGsHRJjFQUIC5rYTQsUrsuTtezZXIEA8CPhLP8A,2156
|
@@ -92,9 +92,9 @@ sticker_convert/utils/media/apple_png_normalize.py,sha256=LbrQhc7LlYX4I9ek4XJsZE
|
|
92
92
|
sticker_convert/utils/media/codec_info.py,sha256=JHHlfCLSpepYFv6TSL1XqwUJoVOpOPFxurRtduplPGY,12856
|
93
93
|
sticker_convert/utils/media/decrypt_kakao.py,sha256=4wq9ZDRnFkx1WmFZnyEogBofiLGsWQM_X69HlA36578,1947
|
94
94
|
sticker_convert/utils/media/format_verify.py,sha256=Xf94jyqk_6M9IlFGMy0wYIgQKn_yg00nD4XW0CgAbew,5732
|
95
|
-
sticker_convert-2.7.
|
96
|
-
sticker_convert-2.7.
|
97
|
-
sticker_convert-2.7.
|
98
|
-
sticker_convert-2.7.
|
99
|
-
sticker_convert-2.7.
|
100
|
-
sticker_convert-2.7.
|
95
|
+
sticker_convert-2.7.13.dist-info/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
|
96
|
+
sticker_convert-2.7.13.dist-info/METADATA,sha256=dwERdM02NVAJqK7mBwQjAaWMipbyJVr-IRIzSSKJY98,49133
|
97
|
+
sticker_convert-2.7.13.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
98
|
+
sticker_convert-2.7.13.dist-info/entry_points.txt,sha256=MNJ7XyC--ugxi5jS1nzjDLGnxCyLuaGdsVLnJhDHCqs,66
|
99
|
+
sticker_convert-2.7.13.dist-info/top_level.txt,sha256=r9vfnB0l1ZnH5pTH5RvkobnK3Ow9m0RsncaOMAtiAtk,16
|
100
|
+
sticker_convert-2.7.13.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|