sticker-convert 2.8.8__tar.gz → 2.8.9__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. {sticker_convert-2.8.8/src/sticker_convert.egg-info → sticker_convert-2.8.9}/PKG-INFO +20 -14
  2. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/README.md +19 -13
  3. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/cli.py +11 -1
  4. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/converter.py +26 -9
  5. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui.py +2 -0
  6. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/frames/comp_frame.py +1 -0
  7. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/windows/advanced_compression_window.py +16 -0
  8. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/job_option.py +1 -0
  9. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/resources/compression.json +12 -0
  10. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/resources/help.json +2 -0
  11. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/callback.py +3 -1
  12. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/version.py +1 -1
  13. {sticker_convert-2.8.8 → sticker_convert-2.8.9/src/sticker_convert.egg-info}/PKG-INFO +20 -14
  14. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/LICENSE +0 -0
  15. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/MANIFEST.in +0 -0
  16. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/pyproject.toml +0 -0
  17. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/requirements.txt +0 -0
  18. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/setup.cfg +0 -0
  19. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/__init__.py +0 -0
  20. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/__main__.py +0 -0
  21. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/definitions.py +0 -0
  22. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/downloaders/__init__.py +0 -0
  23. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/downloaders/download_base.py +0 -0
  24. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/downloaders/download_kakao.py +0 -0
  25. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/downloaders/download_line.py +0 -0
  26. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/downloaders/download_signal.py +0 -0
  27. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/downloaders/download_telegram.py +0 -0
  28. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/downloaders/download_viber.py +0 -0
  29. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/__init__.py +0 -0
  30. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/frames/__init__.py +0 -0
  31. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/frames/config_frame.py +0 -0
  32. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/frames/control_frame.py +0 -0
  33. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/frames/cred_frame.py +0 -0
  34. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/frames/input_frame.py +0 -0
  35. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/frames/output_frame.py +0 -0
  36. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/frames/progress_frame.py +0 -0
  37. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/frames/right_clicker.py +0 -0
  38. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/gui_utils.py +0 -0
  39. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/windows/__init__.py +0 -0
  40. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/windows/base_window.py +0 -0
  41. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +0 -0
  42. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/windows/line_get_auth_window.py +0 -0
  43. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +0 -0
  44. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +0 -0
  45. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/.gitignore +0 -0
  46. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/README.md +0 -0
  47. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers/Info.plist +0 -0
  48. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +0 -0
  49. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +0 -0
  50. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +0 -0
  51. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +0 -0
  52. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Sticker 1.png +0 -0
  53. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +0 -0
  54. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Sticker 2.png +0 -0
  55. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +0 -0
  56. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Sticker 3.png +0 -0
  57. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/App-Store-1024x1024pt.png +0 -0
  58. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +0 -0
  59. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-App-Store-1024x768pt.png +0 -0
  60. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-67x50pt@2x.png +0 -0
  61. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-Pro-74x55pt@2x.png +0 -0
  62. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@2x.png +0 -0
  63. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@3x.png +0 -0
  64. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@2x.png +0 -0
  65. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@3x.png +0 -0
  66. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@2x.png +0 -0
  67. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@3x.png +0 -0
  68. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPad-Settings-29pt@2x.png +0 -0
  69. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-Settings-29pt@3x.png +0 -0
  70. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-settings-29pt@2x.png +0 -0
  71. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +0 -0
  72. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  73. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
  74. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcuserdata/niklaspeterson.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  75. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
  76. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/job.py +0 -0
  77. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/resources/NotoColorEmoji.ttf +0 -0
  78. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/resources/appicon.icns +0 -0
  79. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/resources/appicon.ico +0 -0
  80. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/resources/appicon.png +0 -0
  81. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/resources/emoji.json +0 -0
  82. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/resources/input.json +0 -0
  83. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/resources/output.json +0 -0
  84. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/uploaders/__init__.py +0 -0
  85. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/uploaders/compress_wastickers.py +0 -0
  86. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/uploaders/upload_base.py +0 -0
  87. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/uploaders/upload_signal.py +0 -0
  88. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/uploaders/upload_telegram.py +0 -0
  89. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/uploaders/xcode_imessage.py +0 -0
  90. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/auth/get_kakao_auth.py +0 -0
  91. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/auth/get_line_auth.py +0 -0
  92. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/auth/get_signal_auth.py +0 -0
  93. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/files/cache_store.py +0 -0
  94. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/files/json_manager.py +0 -0
  95. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/files/json_resources_loader.py +0 -0
  96. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/files/metadata_handler.py +0 -0
  97. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/files/run_bin.py +0 -0
  98. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/files/sanitize_filename.py +0 -0
  99. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/media/apple_png_normalize.py +0 -0
  100. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/media/codec_info.py +0 -0
  101. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/media/decrypt_kakao.py +0 -0
  102. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/media/format_verify.py +0 -0
  103. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert/utils/url_detect.py +0 -0
  104. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert.egg-info/SOURCES.txt +0 -0
  105. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert.egg-info/dependency_links.txt +0 -0
  106. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert.egg-info/entry_points.txt +0 -0
  107. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert.egg-info/requires.txt +0 -0
  108. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/src/sticker_convert.egg-info/top_level.txt +0 -0
  109. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/tests/test_compression.py +0 -0
  110. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/tests/test_download.py +0 -0
  111. {sticker_convert-2.8.8 → sticker_convert-2.8.9}/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.8
3
+ Version: 2.8.9
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>
@@ -479,18 +479,22 @@ Requires-Dist: webp~=0.3.0
479
479
  To run in CLI mode, pass on any arguments
480
480
 
481
481
  ```
482
- usage: sticker-convert.py [-h] [--version] [--no-confirm] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
482
+ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--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
- [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE] [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
485
- [--no-compress] [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}] [--steps STEPS]
486
- [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX]
487
- [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
488
- [--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
489
- [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
490
- [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
491
- [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
492
- [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD] [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth]
493
- [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
484
+ [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
485
+ [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage] [--no-compress]
486
+ [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}]
487
+ [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER] [--res-min RES_MIN]
488
+ [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX]
489
+ [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER] [--color-min COLOR_MIN]
490
+ [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX]
491
+ [--padding-percent PADDING_PERCENT] [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
492
+ [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD]
493
+ [--force-pywebp] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD]
494
+ [--signal-get-auth] [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID]
495
+ [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
496
+ [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth] [--line-cookies LINE_COOKIES]
497
+ [--save-cred SAVE_CRED]
494
498
 
495
499
  CLI for stickers-convert
496
500
 
@@ -498,6 +502,7 @@ options:
498
502
  -h, --help show this help message and exit
499
503
  --version show program's version number and exit
500
504
  --no-confirm Do not ask any questions.
505
+ --no-progress Do not show progress bar in CLI.
501
506
  --custom-presets CUSTOM_PRESETS
502
507
  Specify a json file containing custom compression presets.
503
508
  See compression.json for format.
@@ -508,7 +513,7 @@ Input options:
508
513
  Specify input directory.
509
514
  --download-auto DOWNLOAD_AUTO
510
515
  Auto detect URL type and download
511
- (Supported input sources: Signal, Telegram, Line, Kakao)
516
+ (Supported input sources: Signal, Telegram, Line, Kakao, Viber)
512
517
  --download-signal DOWNLOAD_SIGNAL
513
518
  Download signal stickers from a URL as input
514
519
  (Example: https://signal.art/addstickers/#pack_id=xxxxx&pack_key=xxxxx)
@@ -587,7 +592,7 @@ Compression options:
587
592
  --padding-percent PADDING_PERCENT
588
593
  Set percentage of space used as padding.
589
594
  --bg-color BG_COLOR Set custom background color in rrggbbaa format.
590
- Example: 00ff00 for green with alpha 0.
595
+ Example: 00ff0000 for green with alpha 0.
591
596
  If this is not set, background color would be auto set to black if image is bright, or white if image is dark.
592
597
  Note: The color should not be visible if output format supports transparency.
593
598
  --vid-size-max VID_SIZE_MAX
@@ -615,6 +620,7 @@ Compression options:
615
620
  - imagequant = Best quality but slow
616
621
  - fastoctree = Fast but image looks chunky
617
622
  - none = No image quantizing, large image size as result
623
+ --force-pywebp Force using pywebp for encoding webp files instead of Pillow.
618
624
  --cache-dir CACHE_DIR
619
625
  Set custom cache directory.
620
626
  Useful for debugging, or speed up conversion if cache_dir is on RAM disk.
@@ -92,18 +92,22 @@
92
92
  To run in CLI mode, pass on any arguments
93
93
 
94
94
  ```
95
- usage: sticker-convert.py [-h] [--version] [--no-confirm] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
95
+ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
96
96
  [--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
- [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE] [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
98
- [--no-compress] [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}] [--steps STEPS]
99
- [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX]
100
- [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER] [--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] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
102
- [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
103
- [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
104
- [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
105
- [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD] [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth]
106
- [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
97
+ [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
98
+ [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage] [--no-compress]
99
+ [--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] [--fps-power FPS_POWER] [--res-min RES_MIN]
101
+ [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX]
102
+ [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER] [--color-min COLOR_MIN]
103
+ [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX]
104
+ [--padding-percent PADDING_PERCENT] [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
105
+ [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD]
106
+ [--force-pywebp] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD]
107
+ [--signal-get-auth] [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID]
108
+ [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
109
+ [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth] [--line-cookies LINE_COOKIES]
110
+ [--save-cred SAVE_CRED]
107
111
 
108
112
  CLI for stickers-convert
109
113
 
@@ -111,6 +115,7 @@ options:
111
115
  -h, --help show this help message and exit
112
116
  --version show program's version number and exit
113
117
  --no-confirm Do not ask any questions.
118
+ --no-progress Do not show progress bar in CLI.
114
119
  --custom-presets CUSTOM_PRESETS
115
120
  Specify a json file containing custom compression presets.
116
121
  See compression.json for format.
@@ -121,7 +126,7 @@ Input options:
121
126
  Specify input directory.
122
127
  --download-auto DOWNLOAD_AUTO
123
128
  Auto detect URL type and download
124
- (Supported input sources: Signal, Telegram, Line, Kakao)
129
+ (Supported input sources: Signal, Telegram, Line, Kakao, Viber)
125
130
  --download-signal DOWNLOAD_SIGNAL
126
131
  Download signal stickers from a URL as input
127
132
  (Example: https://signal.art/addstickers/#pack_id=xxxxx&pack_key=xxxxx)
@@ -200,7 +205,7 @@ Compression options:
200
205
  --padding-percent PADDING_PERCENT
201
206
  Set percentage of space used as padding.
202
207
  --bg-color BG_COLOR Set custom background color in rrggbbaa format.
203
- Example: 00ff00 for green with alpha 0.
208
+ Example: 00ff0000 for green with alpha 0.
204
209
  If this is not set, background color would be auto set to black if image is bright, or white if image is dark.
205
210
  Note: The color should not be visible if output format supports transparency.
206
211
  --vid-size-max VID_SIZE_MAX
@@ -228,6 +233,7 @@ Compression options:
228
233
  - imagequant = Best quality but slow
229
234
  - fastoctree = Fast but image looks chunky
230
235
  - none = No image quantizing, large image size as result
236
+ --force-pywebp Force using pywebp for encoding webp files instead of Pillow.
231
237
  --cache-dir CACHE_DIR
232
238
  Set custom cache directory.
233
239
  Useful for debugging, or speed up conversion if cache_dir is on RAM disk.
@@ -52,6 +52,12 @@ class CLI:
52
52
  action="store_true",
53
53
  help=self.help["global"]["no_confirm"],
54
54
  )
55
+ parser.add_argument(
56
+ "--no-progress",
57
+ dest="no_progress",
58
+ action="store_true",
59
+ help=self.help["global"]["no_progress"],
60
+ )
55
61
  parser.add_argument(
56
62
  "--custom-presets",
57
63
  dest="custom_presets",
@@ -130,7 +136,7 @@ class CLI:
130
136
  "scale_filter",
131
137
  "quantize_method",
132
138
  )
133
- flags_comp_bool = ("fake_vid",)
139
+ flags_comp_bool = ("fake_vid", "force_pywebp")
134
140
  keyword_args: Dict[str, Any]
135
141
  for k, v in self.help["comp"].items():
136
142
  if k in flags_comp_int:
@@ -182,6 +188,7 @@ class CLI:
182
188
  print(f"Error: Cannot load custom presets from {args.custom_presets}")
183
189
 
184
190
  self.cb.no_confirm = args.no_confirm
191
+ self.cb.no_progress = args.no_progress
185
192
 
186
193
  self.opt_input = self.get_opt_input(args)
187
194
  self.opt_output = self.get_opt_output(args)
@@ -383,6 +390,9 @@ class CLI:
383
390
  fake_vid=self.compression_presets[preset]["fake_vid"]
384
391
  if args.fake_vid is None
385
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,
386
396
  cache_dir=args.cache_dir,
387
397
  scale_filter=self.compression_presets[preset]["scale_filter"]
388
398
  if args.scale_filter is None
@@ -33,11 +33,13 @@ 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"
36
38
  MSG_PYWEBP_DUPFRAME = (
37
39
  "[W] {} contains duplicated frame.\n"
38
- " System WebP>=0.5.0 was not found, hence Pillow cannot be used\n"
39
- " for creating animated webp. Using pywebp instead, which is known to\n"
40
- " collapse same frames into single frame, causing problem with animation timing."
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."
41
43
  )
42
44
  MSG_WEBP_PIL_DUPFRAME = (
43
45
  "[W] {} contains duplicated frame.\n"
@@ -718,6 +720,8 @@ class StickerConvert:
718
720
  return False
719
721
 
720
722
  def _frames_export_webp(self) -> None:
723
+ # TODO: Encode webp with pyav when available
724
+ # https://github.com/PyAV-Org/PyAV/issues/1352
721
725
  has_dup_frames = self._check_dup()
722
726
  if self.fps:
723
727
  # It was noted that pywebp would collapse all frames.
@@ -726,17 +730,30 @@ class StickerConvert:
726
730
  # not be accepted by WhatsApp.
727
731
  # Therefore, we are preferring Pillow over pywebp.
728
732
  if has_dup_frames:
729
- if PIL_WEBP_ANIM:
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:
730
752
  # Warn that using Pillow is slower
731
753
  if not self.msg_webp_pil_dupframe_displayed:
732
754
  self.cb.put(MSG_WEBP_PIL_DUPFRAME.format(self.in_f_name))
733
755
  self.msg_webp_pil_dupframe_displayed = True
734
756
  self._frames_export_pil_anim()
735
- else:
736
- if not self.msg_pywebp_dupframe_displayed:
737
- self.cb.put(MSG_PYWEBP_DUPFRAME.format(self.in_f_name))
738
- self.msg_pywebp_dupframe_displayed = True
739
- self._frames_export_pywebp()
740
757
  else:
741
758
  self._frames_export_pywebp()
742
759
  else:
@@ -135,6 +135,7 @@ 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()
138
139
  self.cache_dir_var = StringVar(self)
139
140
  self.default_emoji_var = StringVar(self)
140
141
  self.steps_var = IntVar(self)
@@ -525,6 +526,7 @@ class GUI(Window):
525
526
  fake_vid=self.fake_vid_var.get(),
526
527
  scale_filter=self.scale_filter_var.get(),
527
528
  quantize_method=self.quantize_method_var.get(),
529
+ force_pywebp=self.force_pywebp_var.get(),
528
530
  cache_dir=self.cache_dir_var.get()
529
531
  if self.cache_dir_var.get() != ""
530
532
  else None,
@@ -135,6 +135,7 @@ 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"))
138
139
  self.gui.default_emoji_var.set(preset.get("default_emoji"))
139
140
  self.gui.steps_var.set(preset.get("steps"))
140
141
 
@@ -293,6 +293,18 @@ 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
+
296
308
  self.cache_dir_help_btn = self.add_help_btn(self.gui.help["comp"]["cache_dir"])
297
309
  self.cache_dir_lbl = Label(self.frame_advcomp, text="Custom cache directory")
298
310
  self.cache_dir_entry = Entry(
@@ -412,6 +424,10 @@ class AdvancedCompressionWindow(BaseWindow):
412
424
  column=2, row=r, columnspan=4, sticky="nes", padx=3, pady=3
413
425
  )
414
426
  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
415
431
  self.cache_dir_help_btn.grid(column=0, row=r, sticky="w", padx=3, pady=3)
416
432
  self.cache_dir_lbl.grid(column=1, row=r, sticky="w", padx=3, pady=3)
417
433
  self.cache_dir_entry.grid(
@@ -74,6 +74,7 @@ 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
77
78
  scale_filter: Optional[str] = None
78
79
  cache_dir: Optional[str] = None
79
80
  default_emoji: str = "😀"
@@ -44,6 +44,7 @@
44
44
  "fake_vid": false,
45
45
  "scale_filter": "bicubic",
46
46
  "quantize_method": "imagequant",
47
+ "force_pywebp": false,
47
48
  "default_emoji": "😀"
48
49
  },
49
50
  "signal": {
@@ -91,6 +92,7 @@
91
92
  "fake_vid": false,
92
93
  "scale_filter": "bicubic",
93
94
  "quantize_method": "imagequant",
95
+ "force_pywebp": false,
94
96
  "default_emoji": "😀"
95
97
  },
96
98
  "telegram": {
@@ -138,6 +140,7 @@
138
140
  "fake_vid": false,
139
141
  "scale_filter": "bicubic",
140
142
  "quantize_method": "imagequant",
143
+ "force_pywebp": false,
141
144
  "default_emoji": "😀"
142
145
  },
143
146
  "telegram_emoji": {
@@ -185,6 +188,7 @@
185
188
  "fake_vid": false,
186
189
  "scale_filter": "bicubic",
187
190
  "quantize_method": "imagequant",
191
+ "force_pywebp": false,
188
192
  "default_emoji": "😀"
189
193
  },
190
194
  "whatsapp": {
@@ -232,6 +236,7 @@
232
236
  "fake_vid": true,
233
237
  "scale_filter": "bicubic",
234
238
  "quantize_method": "imagequant",
239
+ "force_pywebp": false,
235
240
  "default_emoji": "😀"
236
241
  },
237
242
  "line": {
@@ -279,6 +284,7 @@
279
284
  "fake_vid": false,
280
285
  "scale_filter": "bicubic",
281
286
  "quantize_method": "imagequant",
287
+ "force_pywebp": false,
282
288
  "default_emoji": "😀"
283
289
  },
284
290
  "kakao": {
@@ -326,6 +332,7 @@
326
332
  "fake_vid": false,
327
333
  "scale_filter": "bicubic",
328
334
  "quantize_method": "imagequant",
335
+ "force_pywebp": false,
329
336
  "default_emoji": "😀"
330
337
  },
331
338
  "viber": {
@@ -373,6 +380,7 @@
373
380
  "fake_vid": false,
374
381
  "scale_filter": "bicubic",
375
382
  "quantize_method": "imagequant",
383
+ "force_pywebp": false,
376
384
  "default_emoji": "😀"
377
385
  },
378
386
  "imessage_small": {
@@ -420,6 +428,7 @@
420
428
  "fake_vid": false,
421
429
  "scale_filter": "bicubic",
422
430
  "quantize_method": "imagequant",
431
+ "force_pywebp": false,
423
432
  "default_emoji": "😀"
424
433
  },
425
434
  "imessage_medium": {
@@ -467,6 +476,7 @@
467
476
  "fake_vid": false,
468
477
  "scale_filter": "bicubic",
469
478
  "quantize_method": "imagequant",
479
+ "force_pywebp": false,
470
480
  "default_emoji": "😀"
471
481
  },
472
482
  "imessage_large": {
@@ -514,6 +524,7 @@
514
524
  "fake_vid": false,
515
525
  "scale_filter": "bicubic",
516
526
  "quantize_method": "imagequant",
527
+ "force_pywebp": false,
517
528
  "default_emoji": "😀"
518
529
  },
519
530
  "custom": {
@@ -561,6 +572,7 @@
561
572
  "fake_vid": false,
562
573
  "scale_filter": "bicubic",
563
574
  "quantize_method": "imagequant",
575
+ "force_pywebp": false,
564
576
  "default_emoji": "😀"
565
577
  }
566
578
  }
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "global": {
3
3
  "no_confirm": "Do not ask any questions.",
4
+ "no_progress": "Do not show progress bar in CLI.",
4
5
  "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."
5
6
  },
6
7
  "input": {
@@ -50,6 +51,7 @@
50
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.",
51
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",
52
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.",
53
55
  "cache_dir": "Set custom cache directory.\nUseful for debugging, or speed up conversion if cache_dir is on RAM disk.",
54
56
  "default_emoji": "Set the default emoji for uploading Signal and Telegram sticker packs."
55
57
  },
@@ -61,6 +61,7 @@ class Callback(CallbackProtocol):
61
61
  ask_str: Optional[Callable[..., str]] = None,
62
62
  silent: bool = False,
63
63
  no_confirm: bool = False,
64
+ no_progress: bool = False,
64
65
  ) -> None:
65
66
  self.progress_bar: Optional[tqdm[Any]] = None
66
67
 
@@ -91,6 +92,7 @@ class Callback(CallbackProtocol):
91
92
 
92
93
  self.silent = silent
93
94
  self.no_confirm = no_confirm
95
+ self.no_progress = no_progress
94
96
 
95
97
  def cb_msg(self, *args: Any, **kwargs: Any) -> None:
96
98
  if self.silent:
@@ -113,7 +115,7 @@ class Callback(CallbackProtocol):
113
115
  steps: int = 0,
114
116
  update_bar: int = 0,
115
117
  ) -> None:
116
- if self.silent:
118
+ if self.silent or self.no_progress:
117
119
  return
118
120
 
119
121
  if self.progress_bar:
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- __version__ = "2.8.8"
3
+ __version__ = "2.8.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sticker-convert
3
- Version: 2.8.8
3
+ Version: 2.8.9
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>
@@ -479,18 +479,22 @@ Requires-Dist: webp~=0.3.0
479
479
  To run in CLI mode, pass on any arguments
480
480
 
481
481
  ```
482
- usage: sticker-convert.py [-h] [--version] [--no-confirm] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
482
+ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--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
- [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE] [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
485
- [--no-compress] [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}] [--steps STEPS]
486
- [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX]
487
- [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
488
- [--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
489
- [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
490
- [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
491
- [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
492
- [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD] [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth]
493
- [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
484
+ [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
485
+ [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage] [--no-compress]
486
+ [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}]
487
+ [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER] [--res-min RES_MIN]
488
+ [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX]
489
+ [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER] [--color-min COLOR_MIN]
490
+ [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX]
491
+ [--padding-percent PADDING_PERCENT] [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
492
+ [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD]
493
+ [--force-pywebp] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD]
494
+ [--signal-get-auth] [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID]
495
+ [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
496
+ [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth] [--line-cookies LINE_COOKIES]
497
+ [--save-cred SAVE_CRED]
494
498
 
495
499
  CLI for stickers-convert
496
500
 
@@ -498,6 +502,7 @@ options:
498
502
  -h, --help show this help message and exit
499
503
  --version show program's version number and exit
500
504
  --no-confirm Do not ask any questions.
505
+ --no-progress Do not show progress bar in CLI.
501
506
  --custom-presets CUSTOM_PRESETS
502
507
  Specify a json file containing custom compression presets.
503
508
  See compression.json for format.
@@ -508,7 +513,7 @@ Input options:
508
513
  Specify input directory.
509
514
  --download-auto DOWNLOAD_AUTO
510
515
  Auto detect URL type and download
511
- (Supported input sources: Signal, Telegram, Line, Kakao)
516
+ (Supported input sources: Signal, Telegram, Line, Kakao, Viber)
512
517
  --download-signal DOWNLOAD_SIGNAL
513
518
  Download signal stickers from a URL as input
514
519
  (Example: https://signal.art/addstickers/#pack_id=xxxxx&pack_key=xxxxx)
@@ -587,7 +592,7 @@ Compression options:
587
592
  --padding-percent PADDING_PERCENT
588
593
  Set percentage of space used as padding.
589
594
  --bg-color BG_COLOR Set custom background color in rrggbbaa format.
590
- Example: 00ff00 for green with alpha 0.
595
+ Example: 00ff0000 for green with alpha 0.
591
596
  If this is not set, background color would be auto set to black if image is bright, or white if image is dark.
592
597
  Note: The color should not be visible if output format supports transparency.
593
598
  --vid-size-max VID_SIZE_MAX
@@ -615,6 +620,7 @@ Compression options:
615
620
  - imagequant = Best quality but slow
616
621
  - fastoctree = Fast but image looks chunky
617
622
  - none = No image quantizing, large image size as result
623
+ --force-pywebp Force using pywebp for encoding webp files instead of Pillow.
618
624
  --cache-dir CACHE_DIR
619
625
  Set custom cache directory.
620
626
  Useful for debugging, or speed up conversion if cache_dir is on RAM disk.
File without changes