sticker-convert 2.8.9__tar.gz → 2.8.10__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {sticker_convert-2.8.9/src/sticker_convert.egg-info → sticker_convert-2.8.10}/PKG-INFO +25 -21
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/README.md +19 -14
- sticker_convert-2.8.9/src/sticker_convert.egg-info/requires.txt → sticker_convert-2.8.10/requirements.txt +6 -7
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/cli.py +1 -4
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/converter.py +17 -81
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui.py +0 -2
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/frames/comp_frame.py +0 -1
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/windows/advanced_compression_window.py +0 -16
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/job_option.py +0 -1
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/compression.json +0 -12
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/help.json +0 -1
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/version.py +1 -1
- {sticker_convert-2.8.9 → sticker_convert-2.8.10/src/sticker_convert.egg-info}/PKG-INFO +25 -21
- sticker_convert-2.8.9/requirements.txt → sticker_convert-2.8.10/src/sticker_convert.egg-info/requires.txt +5 -6
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/LICENSE +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/MANIFEST.in +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/pyproject.toml +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/setup.cfg +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/__init__.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/__main__.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/definitions.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/__init__.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_base.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_kakao.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_line.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_signal.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_telegram.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_viber.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/__init__.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/frames/__init__.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/frames/config_frame.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/frames/control_frame.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/frames/cred_frame.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/frames/input_frame.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/frames/output_frame.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/frames/progress_frame.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/frames/right_clicker.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/gui_utils.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/windows/__init__.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/windows/base_window.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/windows/line_get_auth_window.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/.gitignore +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/README.md +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers/Info.plist +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Sticker 1.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Sticker 2.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Sticker 3.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/App-Store-1024x1024pt.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-App-Store-1024x768pt.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-67x50pt@2x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-Pro-74x55pt@2x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@2x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@3x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@2x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@3x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@2x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@3x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPad-Settings-29pt@2x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-Settings-29pt@3x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-settings-29pt@2x.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcuserdata/niklaspeterson.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/job.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/NotoColorEmoji.ttf +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/appicon.icns +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/appicon.ico +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/appicon.png +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/emoji.json +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/input.json +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/output.json +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/uploaders/__init__.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/uploaders/compress_wastickers.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/uploaders/upload_base.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/uploaders/upload_signal.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/uploaders/upload_telegram.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/uploaders/xcode_imessage.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/auth/get_kakao_auth.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/auth/get_line_auth.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/auth/get_signal_auth.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/callback.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/files/cache_store.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/files/json_manager.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/files/json_resources_loader.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/files/metadata_handler.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/files/run_bin.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/files/sanitize_filename.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/media/apple_png_normalize.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/media/codec_info.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/media/decrypt_kakao.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/media/format_verify.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/url_detect.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert.egg-info/SOURCES.txt +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert.egg-info/dependency_links.txt +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert.egg-info/entry_points.txt +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert.egg-info/top_level.txt +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/tests/test_compression.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/tests/test_download.py +0 -0
- {sticker_convert-2.8.9 → sticker_convert-2.8.10}/tests/test_export.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.8.
|
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.
|
369
|
-
Requires-Dist: apngasm_python~=1.
|
370
|
-
Requires-Dist: av~=12.
|
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.
|
380
|
-
Requires-Dist: requests~=2.
|
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
|

|
@@ -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]
|
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]
|
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]
|
488
|
-
[--
|
489
|
-
[--res-
|
490
|
-
[--
|
491
|
-
[--
|
492
|
-
[--
|
493
|
-
[--
|
494
|
-
[--
|
495
|
-
[--
|
496
|
-
[--
|
497
|
-
[--
|
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.
|
@@ -92,22 +92,28 @@
|
|
92
92
|
To run in CLI mode, pass on any arguments
|
93
93
|
|
94
94
|
```
|
95
|
-
usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS]
|
95
|
+
usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS]
|
96
|
+
[--input-dir INPUT_DIR]
|
96
97
|
[--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-viber DOWNLOAD_VIBER]
|
97
98
|
[--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
|
98
|
-
[--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
|
99
|
+
[--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
|
100
|
+
[--no-compress]
|
99
101
|
[--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}]
|
100
|
-
[--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
|
101
|
-
[--
|
102
|
-
[--res-
|
103
|
-
[--
|
104
|
-
[--
|
105
|
-
[--
|
106
|
-
[--
|
107
|
-
[--
|
108
|
-
[--
|
109
|
-
[--
|
110
|
-
[--
|
102
|
+
[--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
|
103
|
+
[--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
|
104
|
+
[--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
|
105
|
+
[--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
|
106
|
+
[--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER]
|
107
|
+
[--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
|
108
|
+
[--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
|
109
|
+
[--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
|
110
|
+
[--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
|
111
|
+
[--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
|
112
|
+
[--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
|
113
|
+
[--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
|
114
|
+
[--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
|
115
|
+
[--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
|
116
|
+
[--line-get-auth] [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
|
111
117
|
|
112
118
|
CLI for stickers-convert
|
113
119
|
|
@@ -233,7 +239,6 @@ Compression options:
|
|
233
239
|
- imagequant = Best quality but slow
|
234
240
|
- fastoctree = Fast but image looks chunky
|
235
241
|
- none = No image quantizing, large image size as result
|
236
|
-
--force-pywebp Force using pywebp for encoding webp files instead of Pillow.
|
237
242
|
--cache-dir CACHE_DIR
|
238
243
|
Set custom cache directory.
|
239
244
|
Useful for debugging, or speed up conversion if cache_dir is on RAM disk.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
aiolimiter~=1.1.0
|
2
|
-
anyio~=4.
|
3
|
-
apngasm_python~=1.
|
4
|
-
av~=12.
|
2
|
+
anyio~=4.4.0
|
3
|
+
apngasm_python~=1.3.1
|
4
|
+
av~=12.1.0
|
5
5
|
beautifulsoup4~=4.12.3
|
6
6
|
rookiepy~=0.5.1
|
7
7
|
imagequant~=1.1.1
|
@@ -10,11 +10,10 @@ mergedeep~=1.3.4
|
|
10
10
|
numpy>=1.22.4
|
11
11
|
Pillow~=10.3.0
|
12
12
|
pyoxipng~=9.0.0
|
13
|
-
python-telegram-bot~=21.
|
14
|
-
requests~=2.
|
13
|
+
python-telegram-bot~=21.2
|
14
|
+
requests~=2.32.2
|
15
15
|
rlottie_python~=1.3.4
|
16
16
|
signalstickers-client-fork-laggykiller~=3.3.0.post1
|
17
17
|
sqlcipher3-wheels~=0.5.2.post1
|
18
18
|
tqdm~=4.66.4
|
19
|
-
ttkbootstrap-fork-laggykiller~=1.5.1
|
20
|
-
webp~=0.3.0
|
19
|
+
ttkbootstrap-fork-laggykiller~=1.5.1
|
@@ -136,7 +136,7 @@ class CLI:
|
|
136
136
|
"scale_filter",
|
137
137
|
"quantize_method",
|
138
138
|
)
|
139
|
-
flags_comp_bool = ("fake_vid",
|
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
|
-
|
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
|
-
|
779
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
740
|
+
options_container["loop"] = "0"
|
793
741
|
|
794
742
|
with av.open(
|
795
|
-
self.tmp_f,
|
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=
|
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)
|
@@ -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 = "😀"
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/compression.json
RENAMED
@@ -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,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.8.
|
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.
|
369
|
-
Requires-Dist: apngasm_python~=1.
|
370
|
-
Requires-Dist: av~=12.
|
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.
|
380
|
-
Requires-Dist: requests~=2.
|
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
|

|
@@ -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]
|
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]
|
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]
|
488
|
-
[--
|
489
|
-
[--res-
|
490
|
-
[--
|
491
|
-
[--
|
492
|
-
[--
|
493
|
-
[--
|
494
|
-
[--
|
495
|
-
[--
|
496
|
-
[--
|
497
|
-
[--
|
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,7 +1,7 @@
|
|
1
1
|
aiolimiter~=1.1.0
|
2
|
-
anyio~=4.
|
3
|
-
apngasm_python~=1.
|
4
|
-
av~=12.
|
2
|
+
anyio~=4.4.0
|
3
|
+
apngasm_python~=1.3.1
|
4
|
+
av~=12.1.0
|
5
5
|
beautifulsoup4~=4.12.3
|
6
6
|
rookiepy~=0.5.1
|
7
7
|
imagequant~=1.1.1
|
@@ -10,11 +10,10 @@ mergedeep~=1.3.4
|
|
10
10
|
numpy>=1.22.4
|
11
11
|
Pillow~=10.3.0
|
12
12
|
pyoxipng~=9.0.0
|
13
|
-
python-telegram-bot~=21.
|
14
|
-
requests~=2.
|
13
|
+
python-telegram-bot~=21.2
|
14
|
+
requests~=2.32.2
|
15
15
|
rlottie_python~=1.3.4
|
16
16
|
signalstickers-client-fork-laggykiller~=3.3.0.post1
|
17
17
|
sqlcipher3-wheels~=0.5.2.post1
|
18
18
|
tqdm~=4.66.4
|
19
19
|
ttkbootstrap-fork-laggykiller~=1.5.1
|
20
|
-
webp~=0.3.0
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/__init__.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_base.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_kakao.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_line.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_signal.py
RENAMED
File without changes
|
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/downloaders/download_viber.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/gui_components/gui_utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/resources/NotoColorEmoji.ttf
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/uploaders/upload_base.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/uploaders/upload_signal.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/uploaders/upload_telegram.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/uploaders/xcode_imessage.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/auth/get_kakao_auth.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/auth/get_line_auth.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/auth/get_signal_auth.py
RENAMED
File without changes
|
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/files/cache_store.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/files/json_manager.py
RENAMED
File without changes
|
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/files/metadata_handler.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/media/codec_info.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/media/decrypt_kakao.py
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert/utils/media/format_verify.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert.egg-info/dependency_links.txt
RENAMED
File without changes
|
{sticker_convert-2.8.9 → sticker_convert-2.8.10}/src/sticker_convert.egg-info/entry_points.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|