sticker-convert 2.10.1__tar.gz → 2.10.3__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. {sticker_convert-2.10.1/src/sticker_convert.egg-info → sticker_convert-2.10.3}/PKG-INFO +24 -11
  2. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/README.md +21 -8
  3. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/requirements.txt +2 -2
  4. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/__main__.py +3 -0
  5. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/cli.py +16 -0
  6. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/converter.py +3 -2
  7. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/downloaders/download_base.py +24 -5
  8. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/downloaders/download_kakao.py +7 -3
  9. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui.py +35 -8
  10. sticker_convert-2.10.3/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +304 -0
  11. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/windows/viber_get_auth_window.py +5 -1
  12. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/help.json +3 -1
  13. sticker_convert-2.10.3/src/sticker_convert/utils/auth/get_kakao_desktop_auth.py +180 -0
  14. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/version.py +1 -1
  15. {sticker_convert-2.10.1 → sticker_convert-2.10.3/src/sticker_convert.egg-info}/PKG-INFO +24 -11
  16. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert.egg-info/SOURCES.txt +1 -0
  17. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert.egg-info/requires.txt +2 -2
  18. sticker_convert-2.10.1/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +0 -186
  19. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/LICENSE +0 -0
  20. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/MANIFEST.in +0 -0
  21. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/pyproject.toml +0 -0
  22. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/setup.cfg +0 -0
  23. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/__init__.py +0 -0
  24. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/definitions.py +0 -0
  25. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/downloaders/__init__.py +0 -0
  26. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/downloaders/download_discord.py +0 -0
  27. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/downloaders/download_line.py +0 -0
  28. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/downloaders/download_signal.py +0 -0
  29. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/downloaders/download_telegram.py +0 -0
  30. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/downloaders/download_viber.py +0 -0
  31. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/__init__.py +0 -0
  32. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/frames/__init__.py +0 -0
  33. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/frames/comp_frame.py +0 -0
  34. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/frames/config_frame.py +0 -0
  35. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/frames/control_frame.py +0 -0
  36. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/frames/cred_frame.py +0 -0
  37. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/frames/input_frame.py +0 -0
  38. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/frames/output_frame.py +0 -0
  39. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/frames/progress_frame.py +0 -0
  40. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/frames/right_clicker.py +0 -0
  41. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/gui_utils.py +0 -0
  42. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/windows/__init__.py +0 -0
  43. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/windows/advanced_compression_window.py +0 -0
  44. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/windows/base_window.py +0 -0
  45. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/windows/discord_get_auth_window.py +0 -0
  46. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/windows/line_get_auth_window.py +0 -0
  47. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +0 -0
  48. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +0 -0
  49. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/.gitignore +0 -0
  50. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/README.md +0 -0
  51. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers/Info.plist +0 -0
  52. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +0 -0
  53. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +0 -0
  54. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +0 -0
  55. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +0 -0
  56. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Sticker 1.png +0 -0
  57. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +0 -0
  58. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Sticker 2.png +0 -0
  59. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +0 -0
  60. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Sticker 3.png +0 -0
  61. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/App-Store-1024x1024pt.png +0 -0
  62. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +0 -0
  63. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-App-Store-1024x768pt.png +0 -0
  64. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-67x50pt@2x.png +0 -0
  65. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-Pro-74x55pt@2x.png +0 -0
  66. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@2x.png +0 -0
  67. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@3x.png +0 -0
  68. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@2x.png +0 -0
  69. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@3x.png +0 -0
  70. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@2x.png +0 -0
  71. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@3x.png +0 -0
  72. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPad-Settings-29pt@2x.png +0 -0
  73. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-Settings-29pt@3x.png +0 -0
  74. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-settings-29pt@2x.png +0 -0
  75. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +0 -0
  76. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  77. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
  78. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcuserdata/niklaspeterson.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  79. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
  80. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/job.py +0 -0
  81. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/job_option.py +0 -0
  82. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/NotoColorEmoji.ttf +0 -0
  83. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/appicon.icns +0 -0
  84. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/appicon.ico +0 -0
  85. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/appicon.png +0 -0
  86. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/compression.json +0 -0
  87. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/emoji.json +0 -0
  88. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/input.json +0 -0
  89. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/memdump_linux.sh +0 -0
  90. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/memdump_windows.ps1 +0 -0
  91. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/resources/output.json +0 -0
  92. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/uploaders/__init__.py +0 -0
  93. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/uploaders/compress_wastickers.py +0 -0
  94. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/uploaders/upload_base.py +0 -0
  95. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/uploaders/upload_signal.py +0 -0
  96. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/uploaders/upload_telegram.py +0 -0
  97. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/uploaders/upload_viber.py +0 -0
  98. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/uploaders/xcode_imessage.py +0 -0
  99. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/auth/get_discord_auth.py +0 -0
  100. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/auth/get_kakao_auth.py +0 -0
  101. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/auth/get_line_auth.py +0 -0
  102. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/auth/get_signal_auth.py +0 -0
  103. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/auth/get_viber_auth.py +0 -0
  104. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/callback.py +0 -0
  105. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/chrome_remotedebug.py +0 -0
  106. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/emoji.py +0 -0
  107. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/files/cache_store.py +0 -0
  108. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/files/json_manager.py +0 -0
  109. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/files/json_resources_loader.py +0 -0
  110. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/files/metadata_handler.py +0 -0
  111. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/files/run_bin.py +0 -0
  112. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/files/sanitize_filename.py +0 -0
  113. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/media/apple_png_normalize.py +0 -0
  114. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/media/codec_info.py +0 -0
  115. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/media/decrypt_kakao.py +0 -0
  116. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/media/format_verify.py +0 -0
  117. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/process.py +0 -0
  118. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert/utils/url_detect.py +0 -0
  119. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert.egg-info/dependency_links.txt +0 -0
  120. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert.egg-info/entry_points.txt +0 -0
  121. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/src/sticker_convert.egg-info/top_level.txt +0 -0
  122. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/tests/test_compression.py +0 -0
  123. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/tests/test_download.py +0 -0
  124. {sticker_convert-2.10.1 → sticker_convert-2.10.3}/tests/test_export.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sticker-convert
3
- Version: 2.10.1
3
+ Version: 2.10.3
4
4
  Summary: Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, Viber, Discord, iMessage. Written in Python.
5
5
  Author-email: laggykiller <chaudominic2@gmail.com>
6
6
  Maintainer-email: laggykiller <chaudominic2@gmail.com>
@@ -370,7 +370,7 @@ Requires-Dist: apngasm_python~=1.3.1
370
370
  Requires-Dist: av~=12.3.0
371
371
  Requires-Dist: beautifulsoup4~=4.12.3
372
372
  Requires-Dist: rookiepy~=0.5.2
373
- Requires-Dist: httpx~=0.27.0
373
+ Requires-Dist: httpx~=0.27.2
374
374
  Requires-Dist: imagequant~=1.1.1
375
375
  Requires-Dist: memory-tempfile~=2.2.3
376
376
  Requires-Dist: mergedeep~=1.3.4
@@ -378,7 +378,7 @@ Requires-Dist: mini-racer~=0.12.4
378
378
  Requires-Dist: numpy>=1.22.4
379
379
  Requires-Dist: Pillow~=10.4.0
380
380
  Requires-Dist: pyoxipng~=9.0.0
381
- Requires-Dist: python-telegram-bot~=21.4
381
+ Requires-Dist: python-telegram-bot~=21.5
382
382
  Requires-Dist: psutil~=6.0.0
383
383
  Requires-Dist: PyMemoryEditor~=1.5.22
384
384
  Requires-Dist: requests~=2.32.3
@@ -488,13 +488,20 @@ To run in CLI mode, pass on any arguments
488
488
  ```
489
489
  usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
490
490
  [--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-viber DOWNLOAD_VIBER | --download-discord DOWNLOAD_DISCORD | --download-discord-emoji DOWNLOAD_DISCORD_EMOJI]
491
- [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE] [--export-signal | --export-telegram | --export-telegram-emoji | --export-viber | --export-whatsapp | --export-imessage] [--no-compress]
492
- [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}] [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER]
493
- [--res-min RES_MIN] [--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] [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
494
- [--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT] [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
495
- [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
496
- [--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD] [--kakao-country-code KAKAO_COUNTRY_CODE]
497
- [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth] [--line-cookies LINE_COOKIES] [--viber-auth VIBER_AUTH] [--viber-get-auth VIBER_GET_AUTH] [--viber-bin-path VIBER_BIN_PATH] [--discord-get-auth] [--discord-token DISCORD_TOKEN] [--save-cred SAVE_CRED]
491
+ [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
492
+ [--export-signal | --export-telegram | --export-telegram-emoji | --export-viber | --export-whatsapp | --export-imessage] [--no-compress]
493
+ [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}]
494
+ [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX]
495
+ [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
496
+ [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER] [--color-min COLOR_MIN] [--color-max COLOR_MAX]
497
+ [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
498
+ [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT]
499
+ [--fake-vid] [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
500
+ [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth] [--telegram-token TELEGRAM_TOKEN]
501
+ [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth] [--kakao-get-auth-desktop]
502
+ [--kakao-bin-path KAKAO_BIN_PATH] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD] [--kakao-country-code KAKAO_COUNTRY_CODE]
503
+ [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth] [--line-cookies LINE_COOKIES] [--viber-auth VIBER_AUTH]
504
+ [--viber-get-auth VIBER_GET_AUTH] [--viber-bin-path VIBER_BIN_PATH] [--discord-get-auth] [--discord-token DISCORD_TOKEN] [--save-cred SAVE_CRED]
498
505
 
499
506
  CLI for stickers-convert
500
507
 
@@ -647,7 +654,13 @@ Credentials options:
647
654
  Set telegram user_id (From real account, not bot account). Required for uploading Telegram stickers.
648
655
  --kakao-auth-token KAKAO_AUTH_TOKEN
649
656
  Set Kakao auth_token. Required for downloading animated stickers from https://e.kakao.com/t/xxxxx
650
- --kakao-get-auth Generate Kakao auth_token. Kakao username, password, country code and phone number are also required.
657
+ --kakao-get-auth Generate Kakao auth_token by simulating login. Kakao username, password, country code and phone number are also required.
658
+ --kakao-get-auth-desktop
659
+ Get Kakao auth_token from Kakao Desktop application.
660
+ (Only working on Windows.)
661
+ --kakao-bin-path KAKAO_BIN_PATH
662
+ Set Kakao Desktop application path for launching and getting auth_token.
663
+ Useful for portable installation.
651
664
  --kakao-username KAKAO_USERNAME
652
665
  Set Kakao username, which is email or phone number used for signing up Kakao account
653
666
  Example: +447700900142
@@ -98,13 +98,20 @@ To run in CLI mode, pass on any arguments
98
98
  ```
99
99
  usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
100
100
  [--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-viber DOWNLOAD_VIBER | --download-discord DOWNLOAD_DISCORD | --download-discord-emoji DOWNLOAD_DISCORD_EMOJI]
101
- [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE] [--export-signal | --export-telegram | --export-telegram-emoji | --export-viber | --export-whatsapp | --export-imessage] [--no-compress]
102
- [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}] [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER]
103
- [--res-min RES_MIN] [--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] [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
104
- [--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--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] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
106
- [--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD] [--kakao-country-code KAKAO_COUNTRY_CODE]
107
- [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth] [--line-cookies LINE_COOKIES] [--viber-auth VIBER_AUTH] [--viber-get-auth VIBER_GET_AUTH] [--viber-bin-path VIBER_BIN_PATH] [--discord-get-auth] [--discord-token DISCORD_TOKEN] [--save-cred SAVE_CRED]
101
+ [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
102
+ [--export-signal | --export-telegram | --export-telegram-emoji | --export-viber | --export-whatsapp | --export-imessage] [--no-compress]
103
+ [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}]
104
+ [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX]
105
+ [--res-w-min RES_W_MIN] [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
106
+ [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER] [--color-min COLOR_MIN] [--color-max COLOR_MAX]
107
+ [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
108
+ [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT]
109
+ [--fake-vid] [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
110
+ [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth] [--telegram-token TELEGRAM_TOKEN]
111
+ [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth] [--kakao-get-auth-desktop]
112
+ [--kakao-bin-path KAKAO_BIN_PATH] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD] [--kakao-country-code KAKAO_COUNTRY_CODE]
113
+ [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth] [--line-cookies LINE_COOKIES] [--viber-auth VIBER_AUTH]
114
+ [--viber-get-auth VIBER_GET_AUTH] [--viber-bin-path VIBER_BIN_PATH] [--discord-get-auth] [--discord-token DISCORD_TOKEN] [--save-cred SAVE_CRED]
108
115
 
109
116
  CLI for stickers-convert
110
117
 
@@ -257,7 +264,13 @@ Credentials options:
257
264
  Set telegram user_id (From real account, not bot account). Required for uploading Telegram stickers.
258
265
  --kakao-auth-token KAKAO_AUTH_TOKEN
259
266
  Set Kakao auth_token. Required for downloading animated stickers from https://e.kakao.com/t/xxxxx
260
- --kakao-get-auth Generate Kakao auth_token. Kakao username, password, country code and phone number are also required.
267
+ --kakao-get-auth Generate Kakao auth_token by simulating login. Kakao username, password, country code and phone number are also required.
268
+ --kakao-get-auth-desktop
269
+ Get Kakao auth_token from Kakao Desktop application.
270
+ (Only working on Windows.)
271
+ --kakao-bin-path KAKAO_BIN_PATH
272
+ Set Kakao Desktop application path for launching and getting auth_token.
273
+ Useful for portable installation.
261
274
  --kakao-username KAKAO_USERNAME
262
275
  Set Kakao username, which is email or phone number used for signing up Kakao account
263
276
  Example: +447700900142
@@ -4,7 +4,7 @@ apngasm_python~=1.3.1
4
4
  av~=12.3.0
5
5
  beautifulsoup4~=4.12.3
6
6
  rookiepy~=0.5.2
7
- httpx~=0.27.0
7
+ httpx~=0.27.2
8
8
  imagequant~=1.1.1
9
9
  memory-tempfile~=2.2.3
10
10
  mergedeep~=1.3.4
@@ -12,7 +12,7 @@ mini-racer~=0.12.4
12
12
  numpy>=1.22.4
13
13
  Pillow~=10.4.0
14
14
  pyoxipng~=9.0.0
15
- python-telegram-bot~=21.4
15
+ python-telegram-bot~=21.5
16
16
  psutil~=6.0.0
17
17
  PyMemoryEditor~=1.5.22
18
18
  requests~=2.32.3
@@ -9,6 +9,9 @@ def main() -> None:
9
9
 
10
10
  multiprocessing.freeze_support()
11
11
  print(f"sticker-convert {__version__}")
12
+ print("Free and Opensource software by laggykiller")
13
+ print("https://github.com/laggykiller/sticker-convert")
14
+ print()
12
15
  if len(sys.argv) == 1:
13
16
  print("Launching GUI...")
14
17
  from sticker_convert.gui import GUI
@@ -16,6 +16,7 @@ from sticker_convert.job import Job
16
16
  from sticker_convert.job_option import CompOption, CredOption, InputOption, OutputOption
17
17
  from sticker_convert.utils.auth.get_discord_auth import GetDiscordAuth
18
18
  from sticker_convert.utils.auth.get_kakao_auth import GetKakaoAuth
19
+ from sticker_convert.utils.auth.get_kakao_desktop_auth import GetKakaoDesktopAuth
19
20
  from sticker_convert.utils.auth.get_line_auth import GetLineAuth
20
21
  from sticker_convert.utils.auth.get_signal_auth import GetSignalAuth
21
22
  from sticker_convert.utils.auth.get_viber_auth import GetViberAuth
@@ -168,6 +169,7 @@ class CLI:
168
169
  flags_cred_bool = (
169
170
  "signal_get_auth",
170
171
  "kakao_get_auth",
172
+ "kakao_get_auth_desktop",
171
173
  "line_get_auth",
172
174
  "discord_get_auth",
173
175
  )
@@ -483,6 +485,20 @@ class CLI:
483
485
 
484
486
  self.cb.msg(f"Got auth_token successfully: {auth_token}")
485
487
 
488
+ if args.kakao_get_auth_desktop:
489
+ get_kakao_desktop_auth = GetKakaoDesktopAuth(
490
+ cb_ask_str=self.cb.ask_str,
491
+ )
492
+ kakao_bin_path = None
493
+ if args.kakao_bin_path:
494
+ kakao_bin_path = args.kakao_bin_path
495
+ auth_token, msg = get_kakao_desktop_auth.get_cred(kakao_bin_path)
496
+
497
+ if auth_token:
498
+ opt_cred.kakao_auth_token = auth_token
499
+
500
+ self.cb.msg(msg)
501
+
486
502
  if args.signal_get_auth:
487
503
  m = GetSignalAuth(cb_msg=self.cb.msg, cb_ask_str=self.cb.ask_str)
488
504
 
@@ -324,6 +324,7 @@ class StickerConvert:
324
324
 
325
325
  def generate_steps_list(self) -> List[Tuple[Optional[int], ...]]:
326
326
  steps_list: List[Tuple[Optional[int], ...]] = []
327
+ need_even = self.out_f.suffix in (".webm", ".mp4", ".mkv", ".webp")
327
328
  for step in range(self.opt_comp.steps, -1, -1):
328
329
  steps_list.append(
329
330
  (
@@ -333,7 +334,7 @@ class StickerConvert:
333
334
  step,
334
335
  self.opt_comp.steps,
335
336
  self.opt_comp.res_power,
336
- True,
337
+ need_even,
337
338
  ),
338
339
  get_step_value(
339
340
  self.opt_comp.res_h_max,
@@ -341,7 +342,7 @@ class StickerConvert:
341
342
  step,
342
343
  self.opt_comp.steps,
343
344
  self.opt_comp.res_power,
344
- True,
345
+ need_even,
345
346
  ),
346
347
  get_step_value(
347
348
  self.opt_comp.quality_max,
@@ -29,14 +29,24 @@ class DownloadBase:
29
29
  self.cb_return = cb_return
30
30
 
31
31
  def download_multiple_files(
32
- self, targets: List[Tuple[str, Path]], retries: int = 3, **kwargs: Any
32
+ self,
33
+ targets: List[Tuple[str, Path]],
34
+ retries: int = 3,
35
+ headers: Optional[dict[Any, Any]] = None,
36
+ **kwargs: Any,
33
37
  ) -> None:
34
38
  anyio.run(
35
- partial(self.download_multiple_files_async, targets, retries, **kwargs)
39
+ partial(
40
+ self.download_multiple_files_async, targets, retries, headers, **kwargs
41
+ )
36
42
  )
37
43
 
38
44
  async def download_multiple_files_async(
39
- self, targets: List[Tuple[str, Path]], retries: int = 3, **kwargs: Any
45
+ self,
46
+ targets: List[Tuple[str, Path]],
47
+ retries: int = 3,
48
+ headers: Optional[dict[Any, Any]] = None,
49
+ **kwargs: Any,
40
50
  ) -> None:
41
51
  # targets format: [(url1, dest2), (url2, dest2), ...]
42
52
  self.cb.put(
@@ -47,7 +57,13 @@ class DownloadBase:
47
57
  async with anyio.create_task_group() as tg:
48
58
  for url, dest in targets:
49
59
  tg.start_soon(
50
- self.download_file_async, client, url, dest, retries, **kwargs
60
+ self.download_file_async,
61
+ client,
62
+ url,
63
+ dest,
64
+ retries,
65
+ headers,
66
+ **kwargs,
51
67
  )
52
68
 
53
69
  async def download_file_async(
@@ -56,11 +72,14 @@ class DownloadBase:
56
72
  url: str,
57
73
  dest: Path,
58
74
  retries: int = 3,
75
+ headers: Optional[dict[Any, Any]] = None,
59
76
  **kwargs: Any,
60
77
  ) -> None:
61
78
  self.cb.put(f"Downloading {url}")
62
79
  for retry in range(retries):
63
- response = await client.get(url, follow_redirects=True, **kwargs)
80
+ response = await client.get(
81
+ url, follow_redirects=True, headers=headers, **kwargs
82
+ )
64
83
 
65
84
  if response.is_success:
66
85
  async with await anyio.open_file(dest, "wb+") as f:
@@ -231,6 +231,8 @@ class DownloadKakao(DownloadBase):
231
231
  sound_path_format = None
232
232
  stickers_count = 32 # https://emoticonstudio.kakao.com/pages/start
233
233
 
234
+ headers = {"User-Agent": "Android"}
235
+
234
236
  if not self.pack_info_authed and self.auth_token:
235
237
  self.pack_info_authed = MetadataKakao.get_pack_info_authed(
236
238
  item_code, self.auth_token
@@ -263,7 +265,8 @@ class DownloadKakao(DownloadBase):
263
265
  if play_path_format is None:
264
266
  for play_type, play_ext in itertools.product(play_types, play_exts):
265
267
  r = requests.get(
266
- f"https://item.kakaocdn.net/dw/{item_code}.{play_type}_001{play_ext}"
268
+ f"https://item.kakaocdn.net/dw/{item_code}.{play_type}_001{play_ext}",
269
+ headers=headers,
267
270
  )
268
271
  if r.ok:
269
272
  break
@@ -279,7 +282,8 @@ class DownloadKakao(DownloadBase):
279
282
  if sound_path_format is None:
280
283
  for sound_ext in sound_exts:
281
284
  r = requests.get(
282
- f"https://item.kakaocdn.net/dw/{item_code}.sound_001{sound_ext}"
285
+ f"https://item.kakaocdn.net/dw/{item_code}.sound_001{sound_ext}",
286
+ headers=headers,
283
287
  )
284
288
  if r.ok:
285
289
  break
@@ -304,7 +308,7 @@ class DownloadKakao(DownloadBase):
304
308
  sound_dl_path = Path(self.out_dir, str(num).zfill(3) + sound_ext)
305
309
  targets.append((sound_url, sound_dl_path))
306
310
 
307
- self.download_multiple_files(targets)
311
+ self.download_multiple_files(targets, headers=headers)
308
312
 
309
313
  for target in targets:
310
314
  f_path = target[1]
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env python3
2
+ import locale
2
3
  import os
3
4
  import platform
4
5
  import signal
@@ -9,7 +10,7 @@ from math import ceil
9
10
  from multiprocessing import Event, cpu_count
10
11
  from pathlib import Path
11
12
  from threading import Thread
12
- from typing import Any, Callable, Dict, Optional, Union
13
+ from typing import Any, Callable, Dict, Optional, Union, cast
13
14
  from urllib.parse import urlparse
14
15
 
15
16
  from mergedeep import merge # type: ignore
@@ -62,6 +63,7 @@ class GUI(Window):
62
63
  self.apply_creds()
63
64
  self.init_frames()
64
65
  self.pack_frames()
66
+ self.author_info()
65
67
  self.warn_tkinter_bug()
66
68
  GUIUtils.finalize_window(self)
67
69
 
@@ -157,6 +159,7 @@ class GUI(Window):
157
159
  self.kakao_password_var = StringVar(self)
158
160
  self.kakao_country_code_var = StringVar(self)
159
161
  self.kakao_phone_number_var = StringVar(self)
162
+ self.kakao_bin_path_var = StringVar(self)
160
163
  self.line_cookies_var = StringVar(self)
161
164
  self.viber_auth_var = StringVar(self)
162
165
  self.viber_bin_path_var = StringVar(self)
@@ -205,6 +208,34 @@ class GUI(Window):
205
208
  column=0, row=4, columnspan=2, sticky="news", padx=5, pady=5
206
209
  )
207
210
 
211
+ def is_cn(self) -> bool:
212
+ cn_locs = ("zh_CHS", "zh_CN")
213
+ loc = cast(str, locale.getdefaultlocale()[0])
214
+ winloc = ""
215
+ if platform.system() == "Windows":
216
+ import ctypes
217
+
218
+ windll = ctypes.windll.kernel32 # type: ignore
219
+ winloc_id = cast(int, windll.GetUserDefaultUILanguage()) # type: ignore
220
+ winloc = cast(str, locale.windows_locale[winloc_id]) # type: ignore
221
+
222
+ if loc.startswith(cn_locs) or winloc.startswith(cn_locs):
223
+ return True
224
+ return False
225
+
226
+ def author_info(self) -> None:
227
+ if self.is_cn():
228
+ msg = "sticker-convert是laggykiller创作的免费开源项目,严禁翻售\n"
229
+ msg += "https://github.com/laggykiller/sticker-convert\n"
230
+ msg += "尊重知识产权,做个文明人,请不要转售贴图!\n"
231
+ else:
232
+ msg = "sticker-convert is Free and Opensource software by laggykiller\n"
233
+ msg += "https://github.com/laggykiller/sticker-convert\n"
234
+ msg += "Please use the stickers with your friends only.\n"
235
+ msg += "It is illegal and immoral to sell stickers downloaded from this program.\n"
236
+
237
+ self.cb_msg(msg)
238
+
208
239
  def warn_tkinter_bug(self) -> None:
209
240
  if (
210
241
  platform.system() == "Darwin"
@@ -214,13 +245,9 @@ class GUI(Window):
214
245
  and sys.version_info[2] <= 6
215
246
  ):
216
247
  msg = "NOTICE: If buttons are not responsive, try to press "
217
- msg += "on title bar or move mouse cursor away from window for a while."
218
- self.cb_msg(msg)
219
- msg = (
220
- "(This is due to a bug in tkinter specific to macOS 14 python <=3.11.6)"
221
- )
222
- self.cb_msg(msg)
223
- msg = "(https://github.com/python/cpython/issues/110218)"
248
+ msg += "on title bar or move mouse cursor away from window for a while.\n"
249
+ msg += "(This is a bug in tkinter specific to macOS 14 python <=3.11.6)\n"
250
+ msg += "(https://github.com/python/cpython/issues/110218)\n"
224
251
  self.cb_msg(msg)
225
252
 
226
253
  def load_jsons(self) -> None: