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.
Files changed (111) hide show
  1. {sticker-convert-2.7.2/src/sticker_convert.egg-info → sticker-convert-2.7.4}/PKG-INFO +19 -17
  2. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/README.md +15 -13
  3. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/pyproject.toml +17 -2
  4. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/requirements.txt +2 -2
  5. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/__init__.py +1 -0
  6. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/__main__.py +3 -1
  7. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/cli.py +20 -24
  8. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/converter.py +108 -119
  9. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/definitions.py +8 -12
  10. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/download_base.py +14 -31
  11. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/download_kakao.py +25 -39
  12. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/download_line.py +24 -33
  13. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/download_signal.py +7 -16
  14. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/download_telegram.py +6 -15
  15. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui.py +53 -61
  16. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/comp_frame.py +11 -20
  17. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/config_frame.py +9 -9
  18. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/control_frame.py +3 -3
  19. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/cred_frame.py +12 -18
  20. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/input_frame.py +9 -15
  21. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/output_frame.py +9 -15
  22. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/progress_frame.py +8 -8
  23. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/right_clicker.py +2 -2
  24. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/gui_utils.py +6 -8
  25. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/advanced_compression_window.py +23 -32
  26. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/base_window.py +6 -6
  27. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +5 -11
  28. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/line_get_auth_window.py +5 -5
  29. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +6 -6
  30. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/job.py +84 -90
  31. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/job_option.py +36 -32
  32. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/emoji.json +334 -70
  33. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/help.json +1 -1
  34. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/uploaders/compress_wastickers.py +19 -30
  35. sticker-convert-2.7.4/src/sticker_convert/uploaders/upload_base.py +41 -0
  36. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/uploaders/upload_signal.py +20 -33
  37. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/uploaders/upload_telegram.py +21 -28
  38. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/uploaders/xcode_imessage.py +30 -95
  39. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/auth/get_kakao_auth.py +7 -8
  40. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/auth/get_line_auth.py +5 -6
  41. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/auth/get_signal_auth.py +7 -7
  42. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/callback.py +31 -23
  43. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/files/cache_store.py +6 -8
  44. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/files/json_manager.py +6 -7
  45. sticker-convert-2.7.4/src/sticker_convert/utils/files/json_resources_loader.py +12 -0
  46. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/files/metadata_handler.py +93 -84
  47. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/files/run_bin.py +11 -10
  48. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/files/sanitize_filename.py +30 -28
  49. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/media/apple_png_normalize.py +3 -2
  50. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/media/codec_info.py +41 -44
  51. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/media/decrypt_kakao.py +7 -7
  52. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/media/format_verify.py +14 -14
  53. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/utils/url_detect.py +4 -5
  54. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/version.py +2 -1
  55. {sticker-convert-2.7.2 → sticker-convert-2.7.4/src/sticker_convert.egg-info}/PKG-INFO +19 -17
  56. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert.egg-info/SOURCES.txt +1 -0
  57. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert.egg-info/requires.txt +2 -2
  58. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/tests/test_compression.py +9 -9
  59. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/tests/test_download.py +32 -34
  60. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/tests/test_export.py +20 -28
  61. sticker-convert-2.7.2/src/sticker_convert/uploaders/upload_base.py +0 -35
  62. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/LICENSE +0 -0
  63. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/MANIFEST.in +0 -0
  64. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/setup.cfg +0 -0
  65. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/downloaders/__init__.py +0 -0
  66. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/__init__.py +0 -0
  67. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/frames/__init__.py +0 -0
  68. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/gui_components/windows/__init__.py +0 -0
  69. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +0 -0
  70. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/.gitignore +0 -0
  71. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/README.md +0 -0
  72. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers/Info.plist +0 -0
  73. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +0 -0
  74. {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
  75. {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
  76. {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
  77. {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
  78. {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
  79. {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
  80. {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
  81. {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
  82. {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
  83. {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
  84. {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
  85. {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
  86. {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
  87. {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
  88. {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
  89. {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
  90. {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
  91. {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
  92. {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
  93. {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
  94. {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
  95. {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
  96. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +0 -0
  97. {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
  98. {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
  99. {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
  100. {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
  101. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/NotoColorEmoji.ttf +0 -0
  102. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/appicon.icns +0 -0
  103. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/appicon.ico +0 -0
  104. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/appicon.png +0 -0
  105. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/compression.json +0 -0
  106. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/input.json +0 -0
  107. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/resources/output.json +0 -0
  108. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert/uploaders/__init__.py +0 -0
  109. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert.egg-info/dependency_links.txt +0 -0
  110. {sticker-convert-2.7.2 → sticker-convert-2.7.4}/src/sticker_convert.egg-info/entry_points.txt +0 -0
  111. {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.2
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.7
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~=1.26.4
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.2
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] [--fps-power FPS_POWER]
482
- [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX]
483
- [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER] [--quality-min QUALITY_MIN]
484
- [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER] [--color-min COLOR_MIN]
485
- [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN]
486
- [--duration-max DURATION_MAX] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
487
- [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
488
- [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
489
- [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
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] [--line-get-auth]
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
- - bilinear = linear interpolation
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] [--fps-power FPS_POWER]
98
- [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX]
99
- [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER] [--quality-min QUALITY_MIN]
100
- [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER] [--color-min COLOR_MIN]
101
- [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN]
102
- [--duration-max DURATION_MAX] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
103
- [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
104
- [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
105
- [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
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] [--line-get-auth]
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
- - bilinear = linear interpolation
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.7"
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~=1.26.4
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.2
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,3 +1,4 @@
1
1
  #!/usr/bin/env python3
2
2
  """sticker-convert"""
3
+
3
4
  from sticker_convert.version import __version__ # noqa
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env python3
2
- def main():
2
+
3
+
4
+ def main() -> None:
3
5
  import multiprocessing
4
6
  import sys
5
7
 
@@ -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, ROOT_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
- self.help: dict[str, dict[str, str]] = JsonManager.load_json(
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.__str__)
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: dict[str, Any]
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=tuple(
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=tuple(
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