sticker-convert 2.7.2__tar.gz → 2.7.4__tar.gz
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-2.7.2/src/sticker_convert.egg-info → sticker-convert-2.7.4}/PKG-INFO +19 -17
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/README.md +15 -13
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/pyproject.toml +17 -2
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/requirements.txt +2 -2
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/__init__.py +1 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/__main__.py +3 -1
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/cli.py +20 -24
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/converter.py +108 -119
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/definitions.py +8 -12
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/download_base.py +14 -31
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/download_kakao.py +25 -39
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/download_line.py +24 -33
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/download_signal.py +7 -16
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/download_telegram.py +6 -15
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui.py +53 -61
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/comp_frame.py +11 -20
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/config_frame.py +9 -9
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/control_frame.py +3 -3
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/cred_frame.py +12 -18
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/input_frame.py +9 -15
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/output_frame.py +9 -15
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/progress_frame.py +8 -8
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/right_clicker.py +2 -2
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/gui_utils.py +6 -8
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/advanced_compression_window.py +23 -32
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/base_window.py +6 -6
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +5 -11
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/line_get_auth_window.py +5 -5
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +6 -6
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/job.py +84 -90
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/job_option.py +36 -32
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/emoji.json +334 -70
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/help.json +1 -1
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/uploaders/compress_wastickers.py +19 -30
- sticker-convert-2.7.4/src/sticker_convert/uploaders/upload_base.py +41 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/uploaders/upload_signal.py +20 -33
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/uploaders/upload_telegram.py +21 -28
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/uploaders/xcode_imessage.py +30 -95
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/auth/get_kakao_auth.py +7 -8
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/auth/get_line_auth.py +5 -6
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/auth/get_signal_auth.py +7 -7
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/callback.py +31 -23
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/files/cache_store.py +6 -8
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/files/json_manager.py +6 -7
- sticker-convert-2.7.4/src/sticker_convert/utils/files/json_resources_loader.py +12 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/files/metadata_handler.py +93 -84
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/files/run_bin.py +11 -10
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/files/sanitize_filename.py +30 -28
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/media/apple_png_normalize.py +3 -2
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/media/codec_info.py +41 -44
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/media/decrypt_kakao.py +7 -7
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/media/format_verify.py +14 -14
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/url_detect.py +4 -5
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/version.py +2 -1
- {sticker-convert-2.7.2 → sticker-convert-2.7.4/src/sticker_convert.egg-info}/PKG-INFO +19 -17
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert.egg-info/SOURCES.txt +1 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert.egg-info/requires.txt +2 -2
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/tests/test_compression.py +9 -9
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/tests/test_download.py +32 -34
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/tests/test_export.py +20 -28
- sticker-convert-2.7.2/src/sticker_convert/uploaders/upload_base.py +0 -35
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/LICENSE +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/MANIFEST.in +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/setup.cfg +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/__init__.py +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/__init__.py +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/__init__.py +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/__init__.py +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/.gitignore +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/README.md +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers/Info.plist +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/App-Store-1024x1024pt.png +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@2x.png +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@3x.png +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@2x.png +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@3x.png +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/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.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcuserdata/niklaspeterson.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/NotoColorEmoji.ttf +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/appicon.icns +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/appicon.ico +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/appicon.png +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/compression.json +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/input.json +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/output.json +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/uploaders/__init__.py +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert.egg-info/dependency_links.txt +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert.egg-info/entry_points.txt +0 -0
- {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.7.
|
3
|
+
Version: 2.7.4
|
4
4
|
Summary: Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, iMessage. Written in Python.
|
5
5
|
Author-email: laggykiller <chaudominic2@gmail.com>
|
6
6
|
Maintainer-email: laggykiller <chaudominic2@gmail.com>
|
@@ -361,7 +361,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
361
361
|
Classifier: Programming Language :: Python :: 3.11
|
362
362
|
Classifier: Programming Language :: Python :: 3.12
|
363
363
|
Classifier: Programming Language :: Python :: 3 :: Only
|
364
|
-
Requires-Python: >=3.
|
364
|
+
Requires-Python: >=3.8
|
365
365
|
Description-Content-Type: text/markdown
|
366
366
|
License-File: LICENSE
|
367
367
|
Requires-Dist: apngasm_python~=1.2.3
|
@@ -370,12 +370,12 @@ Requires-Dist: beautifulsoup4~=4.12.3
|
|
370
370
|
Requires-Dist: rookiepy~=0.3.6
|
371
371
|
Requires-Dist: imagequant~=1.1.1
|
372
372
|
Requires-Dist: memory-tempfile~=2.2.3
|
373
|
-
Requires-Dist: numpy
|
373
|
+
Requires-Dist: numpy>=1.22.4
|
374
374
|
Requires-Dist: Pillow~=10.2.0
|
375
375
|
Requires-Dist: pyoxipng~=9.0.0
|
376
376
|
Requires-Dist: python-telegram-bot~=20.5
|
377
377
|
Requires-Dist: requests~=2.31.0
|
378
|
-
Requires-Dist: rlottie_python~=1.3.
|
378
|
+
Requires-Dist: rlottie_python~=1.3.3
|
379
379
|
Requires-Dist: signalstickers-client~=3.3.0
|
380
380
|
Requires-Dist: sqlcipher3-wheels~=0.5.2.post1
|
381
381
|
Requires-Dist: tqdm~=4.66.2
|
@@ -478,20 +478,20 @@ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--input-dir INPUT_DIR
|
|
478
478
|
[--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
|
479
479
|
[--no-compress]
|
480
480
|
[--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,imessage_small,imessage_medium,imessage_large,custom}]
|
481
|
-
[--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
|
482
|
-
[--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
|
483
|
-
[--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
|
484
|
-
[--quality-
|
485
|
-
[--color-
|
486
|
-
[--duration-
|
487
|
-
[--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid]
|
488
|
-
[--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR]
|
489
|
-
[--
|
490
|
-
[--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
|
481
|
+
[--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
|
482
|
+
[--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
|
483
|
+
[--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
|
484
|
+
[--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
|
485
|
+
[--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER]
|
486
|
+
[--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--vid-size-max VID_SIZE_MAX]
|
487
|
+
[--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid]
|
488
|
+
[--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR]
|
489
|
+
[--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD]
|
490
|
+
[--signal-get-auth] [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
|
491
491
|
[--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
|
492
492
|
[--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
|
493
|
-
[--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
|
494
|
-
[--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
|
493
|
+
[--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
|
494
|
+
[--line-get-auth] [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
|
495
495
|
|
496
496
|
CLI for stickers-convert
|
497
497
|
|
@@ -592,7 +592,9 @@ Compression options:
|
|
592
592
|
--scale-filter SCALE_FILTER
|
593
593
|
Set scale filter. Default as lanczos. Valid options are:
|
594
594
|
- nearest = Use nearest neighbour (Suitable for pixel art)
|
595
|
-
-
|
595
|
+
-box = Similar to nearest, but better downscaling
|
596
|
+
- bilinear = Linear interpolation
|
597
|
+
- hamming = Similar to bilinear, but better downscaling
|
596
598
|
- bicubic = Cubic spline interpolation
|
597
599
|
- lanczos = A high-quality downsampling filter
|
598
600
|
--quantize-method QUANTIZE_METHOD
|
@@ -94,20 +94,20 @@ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--input-dir INPUT_DIR
|
|
94
94
|
[--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
|
95
95
|
[--no-compress]
|
96
96
|
[--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,imessage_small,imessage_medium,imessage_large,custom}]
|
97
|
-
[--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
|
98
|
-
[--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
|
99
|
-
[--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
|
100
|
-
[--quality-
|
101
|
-
[--color-
|
102
|
-
[--duration-
|
103
|
-
[--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid]
|
104
|
-
[--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR]
|
105
|
-
[--
|
106
|
-
[--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
|
97
|
+
[--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
|
98
|
+
[--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
|
99
|
+
[--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
|
100
|
+
[--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
|
101
|
+
[--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER]
|
102
|
+
[--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--vid-size-max VID_SIZE_MAX]
|
103
|
+
[--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid]
|
104
|
+
[--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR]
|
105
|
+
[--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD]
|
106
|
+
[--signal-get-auth] [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
|
107
107
|
[--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
|
108
108
|
[--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
|
109
|
-
[--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
|
110
|
-
[--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
|
109
|
+
[--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
|
110
|
+
[--line-get-auth] [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
|
111
111
|
|
112
112
|
CLI for stickers-convert
|
113
113
|
|
@@ -208,7 +208,9 @@ Compression options:
|
|
208
208
|
--scale-filter SCALE_FILTER
|
209
209
|
Set scale filter. Default as lanczos. Valid options are:
|
210
210
|
- nearest = Use nearest neighbour (Suitable for pixel art)
|
211
|
-
-
|
211
|
+
-box = Similar to nearest, but better downscaling
|
212
|
+
- bilinear = Linear interpolation
|
213
|
+
- hamming = Similar to bilinear, but better downscaling
|
212
214
|
- bicubic = Cubic spline interpolation
|
213
215
|
- lanczos = A high-quality downsampling filter
|
214
216
|
--quantize-method QUANTIZE_METHOD
|
@@ -2,7 +2,7 @@
|
|
2
2
|
name = "sticker-convert"
|
3
3
|
description = "Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, iMessage. Written in Python."
|
4
4
|
readme = "README.md"
|
5
|
-
requires-python = ">=3.
|
5
|
+
requires-python = ">=3.8"
|
6
6
|
license = {file = "LICENSE"}
|
7
7
|
keywords = ["telegram", "line", "tgs", "whatsapp", "kakao", "signal", "imessage", "wastickers"]
|
8
8
|
authors = [
|
@@ -48,4 +48,19 @@ where = ["src"]
|
|
48
48
|
|
49
49
|
[tool.setuptools.dynamic]
|
50
50
|
version = {attr = "sticker_convert.__version__"}
|
51
|
-
dependencies = {file = ["requirements.txt"]}
|
51
|
+
dependencies = {file = ["requirements.txt"]}
|
52
|
+
|
53
|
+
[tool.pyright]
|
54
|
+
include = ["src", "scripts", "tests", "compile.py"]
|
55
|
+
strict = ["*"]
|
56
|
+
|
57
|
+
[tool.mypy]
|
58
|
+
python_version = "3.8"
|
59
|
+
files = ["src", "scripts", "tests", "compile.py"]
|
60
|
+
|
61
|
+
[tool.isort]
|
62
|
+
line_length = 200
|
63
|
+
extend_skip = ["msicreator"]
|
64
|
+
|
65
|
+
[tool.ruff]
|
66
|
+
exclude = ["msicreator"]
|
@@ -4,12 +4,12 @@ beautifulsoup4~=4.12.3
|
|
4
4
|
rookiepy~=0.3.6
|
5
5
|
imagequant~=1.1.1
|
6
6
|
memory-tempfile~=2.2.3
|
7
|
-
numpy
|
7
|
+
numpy>=1.22.4
|
8
8
|
Pillow~=10.2.0
|
9
9
|
pyoxipng~=9.0.0
|
10
10
|
python-telegram-bot~=20.5
|
11
11
|
requests~=2.31.0
|
12
|
-
rlottie_python~=1.3.
|
12
|
+
rlottie_python~=1.3.3
|
13
13
|
signalstickers-client~=3.3.0
|
14
14
|
sqlcipher3-wheels~=0.5.2.post1
|
15
15
|
tqdm~=4.66.2
|
@@ -1,14 +1,15 @@
|
|
1
1
|
#!/usr/bin/env python3
|
2
2
|
import argparse
|
3
3
|
import signal
|
4
|
+
import sys
|
4
5
|
from argparse import Namespace
|
5
6
|
from json.decoder import JSONDecodeError
|
6
7
|
from math import ceil
|
7
8
|
from multiprocessing import cpu_count
|
8
9
|
from pathlib import Path
|
9
|
-
from typing import Any
|
10
|
+
from typing import Any, Dict
|
10
11
|
|
11
|
-
from sticker_convert.definitions import CONFIG_DIR, DEFAULT_DIR
|
12
|
+
from sticker_convert.definitions import CONFIG_DIR, DEFAULT_DIR
|
12
13
|
from sticker_convert.job import Job
|
13
14
|
from sticker_convert.job_option import CompOption, CredOption, InputOption, OutputOption
|
14
15
|
from sticker_convert.utils.auth.get_kakao_auth import GetKakaoAuth
|
@@ -21,27 +22,22 @@ from sticker_convert.version import __version__
|
|
21
22
|
|
22
23
|
|
23
24
|
class CLI:
|
24
|
-
def __init__(self):
|
25
|
+
def __init__(self) -> None:
|
25
26
|
self.cb = Callback()
|
26
27
|
|
27
|
-
def cli(self):
|
28
|
+
def cli(self) -> None:
|
28
29
|
try:
|
29
|
-
|
30
|
-
ROOT_DIR / "resources/help.json"
|
31
|
-
)
|
32
|
-
self.input_presets = JsonManager.load_json(
|
33
|
-
ROOT_DIR / "resources/input.json"
|
34
|
-
)
|
35
|
-
self.compression_presets = JsonManager.load_json(
|
36
|
-
ROOT_DIR / "resources/compression.json"
|
37
|
-
)
|
38
|
-
self.output_presets = JsonManager.load_json(
|
39
|
-
ROOT_DIR / "resources/output.json"
|
40
|
-
)
|
30
|
+
from sticker_convert.utils.files.json_resources_loader import COMPRESSION_JSON, EMOJI_JSON, HELP_JSON, INPUT_JSON, OUTPUT_JSON
|
41
31
|
except RuntimeError as e:
|
42
|
-
self.cb.msg(e
|
32
|
+
self.cb.msg(str(e))
|
43
33
|
return
|
44
34
|
|
35
|
+
self.help = HELP_JSON
|
36
|
+
self.input_presets = INPUT_JSON
|
37
|
+
self.compression_presets = COMPRESSION_JSON
|
38
|
+
self.output_presets = OUTPUT_JSON
|
39
|
+
self.emoji_list = EMOJI_JSON
|
40
|
+
|
45
41
|
parser = argparse.ArgumentParser(
|
46
42
|
description="CLI for stickers-convert",
|
47
43
|
formatter_class=argparse.RawTextHelpFormatter,
|
@@ -125,7 +121,7 @@ class CLI:
|
|
125
121
|
"quantize_method",
|
126
122
|
)
|
127
123
|
flags_comp_bool = ("fake_vid",)
|
128
|
-
keyword_args:
|
124
|
+
keyword_args: Dict[str, Any]
|
129
125
|
for k, v in self.help["comp"].items():
|
130
126
|
if k in flags_comp_int:
|
131
127
|
keyword_args = {"type": int, "default": None}
|
@@ -186,7 +182,7 @@ class CLI:
|
|
186
182
|
|
187
183
|
signal.signal(signal.SIGINT, job.cancel)
|
188
184
|
status = job.start()
|
189
|
-
exit(status)
|
185
|
+
sys.exit(status)
|
190
186
|
|
191
187
|
def get_opt_input(self, args: Namespace) -> InputOption:
|
192
188
|
download_options = {
|
@@ -212,7 +208,7 @@ class CLI:
|
|
212
208
|
self.cb.msg(f"Detected URL input source: {download_option}")
|
213
209
|
else:
|
214
210
|
self.cb.msg(f"Error: Unrecognied URL input source for url: {url}")
|
215
|
-
exit()
|
211
|
+
sys.exit()
|
216
212
|
|
217
213
|
opt_input = InputOption(
|
218
214
|
option=download_option,
|
@@ -296,15 +292,15 @@ class CLI:
|
|
296
292
|
size_max_vid=self.compression_presets[preset]["size_max"]["vid"]
|
297
293
|
if args.vid_size_max is None
|
298
294
|
else args.vid_size_max,
|
299
|
-
format_img=
|
295
|
+
format_img=(
|
300
296
|
self.compression_presets[preset]["format"]["img"]
|
301
297
|
if args.img_format is None
|
302
|
-
else args.img_format
|
298
|
+
else args.img_format,
|
303
299
|
),
|
304
|
-
format_vid=
|
300
|
+
format_vid=(
|
305
301
|
self.compression_presets[preset]["format"]["vid"]
|
306
302
|
if args.vid_format is None
|
307
|
-
else args.vid_format
|
303
|
+
else args.vid_format,
|
308
304
|
),
|
309
305
|
fps_min=self.compression_presets[preset]["fps"]["min"]
|
310
306
|
if args.fps_min is None
|