sticker-convert 2.8.14__tar.gz → 2.9.1__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. {sticker_convert-2.8.14/src/sticker_convert.egg-info → sticker_convert-2.9.1}/PKG-INFO +30 -16
  2. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/README.md +25 -13
  3. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/requirements.txt +4 -2
  4. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/cli.py +18 -0
  5. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/downloaders/download_kakao.py +1 -1
  6. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui.py +9 -0
  7. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/frames/cred_frame.py +21 -0
  8. sticker_convert-2.9.1/src/sticker_convert/gui_components/windows/viber_get_auth_window.py +149 -0
  9. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/job.py +8 -0
  10. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/job_option.py +2 -0
  11. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/resources/compression.json +2 -2
  12. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/resources/help.json +3 -0
  13. sticker_convert-2.9.1/src/sticker_convert/resources/memdump_linux.sh +26 -0
  14. sticker_convert-2.9.1/src/sticker_convert/resources/memdump_windows.ps1 +8 -0
  15. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/resources/output.json +8 -0
  16. sticker_convert-2.9.1/src/sticker_convert/uploaders/upload_viber.py +167 -0
  17. sticker_convert-2.9.1/src/sticker_convert/utils/auth/get_viber_auth.py +441 -0
  18. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/files/metadata_handler.py +1 -1
  19. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/media/format_verify.py +10 -14
  20. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/version.py +1 -1
  21. {sticker_convert-2.8.14 → sticker_convert-2.9.1/src/sticker_convert.egg-info}/PKG-INFO +30 -16
  22. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert.egg-info/SOURCES.txt +5 -0
  23. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert.egg-info/requires.txt +4 -2
  24. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/tests/test_export.py +15 -1
  25. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/LICENSE +0 -0
  26. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/MANIFEST.in +0 -0
  27. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/pyproject.toml +0 -0
  28. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/setup.cfg +0 -0
  29. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/__init__.py +0 -0
  30. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/__main__.py +0 -0
  31. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/converter.py +0 -0
  32. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/definitions.py +0 -0
  33. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/downloaders/__init__.py +0 -0
  34. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/downloaders/download_base.py +0 -0
  35. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/downloaders/download_line.py +0 -0
  36. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/downloaders/download_signal.py +0 -0
  37. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/downloaders/download_telegram.py +0 -0
  38. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/downloaders/download_viber.py +0 -0
  39. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/__init__.py +0 -0
  40. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/frames/__init__.py +0 -0
  41. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/frames/comp_frame.py +0 -0
  42. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/frames/config_frame.py +0 -0
  43. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/frames/control_frame.py +0 -0
  44. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/frames/input_frame.py +0 -0
  45. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/frames/output_frame.py +0 -0
  46. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/frames/progress_frame.py +0 -0
  47. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/frames/right_clicker.py +0 -0
  48. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/gui_utils.py +0 -0
  49. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/windows/__init__.py +0 -0
  50. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/windows/advanced_compression_window.py +0 -0
  51. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/windows/base_window.py +0 -0
  52. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +0 -0
  53. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/windows/line_get_auth_window.py +0 -0
  54. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +0 -0
  55. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +0 -0
  56. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/.gitignore +0 -0
  57. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/README.md +0 -0
  58. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers/Info.plist +0 -0
  59. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +0 -0
  60. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +0 -0
  61. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +0 -0
  62. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +0 -0
  63. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Sticker 1.png +0 -0
  64. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +0 -0
  65. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Sticker 2.png +0 -0
  66. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +0 -0
  67. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Sticker 3.png +0 -0
  68. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/App-Store-1024x1024pt.png +0 -0
  69. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +0 -0
  70. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-App-Store-1024x768pt.png +0 -0
  71. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-67x50pt@2x.png +0 -0
  72. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-Pro-74x55pt@2x.png +0 -0
  73. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@2x.png +0 -0
  74. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@3x.png +0 -0
  75. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@2x.png +0 -0
  76. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@3x.png +0 -0
  77. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@2x.png +0 -0
  78. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@3x.png +0 -0
  79. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPad-Settings-29pt@2x.png +0 -0
  80. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-Settings-29pt@3x.png +0 -0
  81. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-settings-29pt@2x.png +0 -0
  82. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +0 -0
  83. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  84. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
  85. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcuserdata/niklaspeterson.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  86. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
  87. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/resources/NotoColorEmoji.ttf +0 -0
  88. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/resources/appicon.icns +0 -0
  89. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/resources/appicon.ico +0 -0
  90. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/resources/appicon.png +0 -0
  91. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/resources/emoji.json +0 -0
  92. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/resources/input.json +0 -0
  93. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/uploaders/__init__.py +0 -0
  94. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/uploaders/compress_wastickers.py +0 -0
  95. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/uploaders/upload_base.py +0 -0
  96. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/uploaders/upload_signal.py +0 -0
  97. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/uploaders/upload_telegram.py +0 -0
  98. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/uploaders/xcode_imessage.py +0 -0
  99. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/auth/get_kakao_auth.py +0 -0
  100. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/auth/get_line_auth.py +0 -0
  101. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/auth/get_signal_auth.py +0 -0
  102. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/callback.py +0 -0
  103. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/files/cache_store.py +0 -0
  104. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/files/json_manager.py +0 -0
  105. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/files/json_resources_loader.py +0 -0
  106. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/files/run_bin.py +0 -0
  107. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/files/sanitize_filename.py +0 -0
  108. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/media/apple_png_normalize.py +0 -0
  109. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/media/codec_info.py +0 -0
  110. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/media/decrypt_kakao.py +0 -0
  111. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert/utils/url_detect.py +0 -0
  112. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert.egg-info/dependency_links.txt +0 -0
  113. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert.egg-info/entry_points.txt +0 -0
  114. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/src/sticker_convert.egg-info/top_level.txt +0 -0
  115. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/tests/test_compression.py +0 -0
  116. {sticker_convert-2.8.14 → sticker_convert-2.9.1}/tests/test_download.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sticker-convert
3
- Version: 2.8.14
3
+ Version: 2.9.1
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>
@@ -376,9 +376,11 @@ Requires-Dist: mergedeep~=1.3.4
376
376
  Requires-Dist: numpy>=1.22.4
377
377
  Requires-Dist: Pillow~=10.3.0
378
378
  Requires-Dist: pyoxipng~=9.0.0
379
- Requires-Dist: python-telegram-bot~=21.2
379
+ Requires-Dist: python-telegram-bot~=21.3
380
+ Requires-Dist: psutil~=5.9.8
381
+ Requires-Dist: PyMemoryEditor~=1.5.22
380
382
  Requires-Dist: requests~=2.32.3
381
- Requires-Dist: rlottie_python~=1.3.5
383
+ Requires-Dist: rlottie_python~=1.3.6
382
384
  Requires-Dist: signalstickers-client-fork-laggykiller~=3.3.0.post2
383
385
  Requires-Dist: sqlcipher3-wheels~=0.5.2.post1
384
386
  Requires-Dist: tqdm~=4.66.4
@@ -482,24 +484,27 @@ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--cus
482
484
  [--input-dir INPUT_DIR]
483
485
  [--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
486
  [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
485
- [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
487
+ [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-viber | --export-imessage]
486
488
  [--no-compress]
487
489
  [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}]
488
490
  [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
489
491
  [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
490
- [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
491
- [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
492
- [--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER]
493
- [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
494
- [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
495
- [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
496
- [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
497
- [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
492
+ [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX]
493
+ [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX]
494
+ [--quality-power QUALITY_POWER] [--color-min COLOR_MIN] [--color-max COLOR_MAX]
495
+ [--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX]
496
+ [--padding-percent PADDING_PERCENT] [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX]
497
+ [--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT]
498
+ [--fake-vid] [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD]
499
+ [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID]
500
+ [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
498
501
  [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
499
- [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
500
- [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
502
+ [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN]
503
+ [--kakao-get-auth] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
501
504
  [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
502
- [--line-get-auth] [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
505
+ [--line-get-auth] [--line-cookies LINE_COOKIES] [--viber-auth VIBER_AUTH]
506
+ [--viber-get-auth VIBER_GET_AUTH] [--viber-bin-path VIBER_BIN_PATH]
507
+ [--save-cred SAVE_CRED]
503
508
 
504
509
  CLI for stickers-convert
505
510
 
@@ -549,6 +554,7 @@ Output options:
549
554
  --export-telegram-emoji
550
555
  Upload to Telegram (Custom emoji)
551
556
  --export-whatsapp Create a .wastickers file for uploading to WhatsApp
557
+ --export-viber Upload to Viber
552
558
  --export-imessage Create Xcode project for importing to iMessage
553
559
 
554
560
  Compression options:
@@ -667,6 +673,14 @@ Credentials options:
667
673
  --line-get-auth Get Line cookies from browser, which is required to create custom message stickers.
668
674
  --line-cookies LINE_COOKIES
669
675
  Set Line cookies, which is required to create custom message stickers.
676
+ --viber-auth VIBER_AUTH
677
+ Set Viber authentication data.
678
+ Required for uploading Viber stickers.
679
+ --viber-get-auth VIBER_GET_AUTH
680
+ Generate Viber authentication data.
681
+ --viber-bin-path VIBER_BIN_PATH
682
+ Specify location of Viber Desktop application.
683
+ Useful for portable installation.
670
684
  --save-cred SAVE_CRED
671
685
  Save Signal and Telegram credentials.
672
686
  ```
@@ -839,5 +853,5 @@ See [docs/TODO.md](docs/TODO.md)
839
853
  - Banner generated from [GitHub Socialify](https://socialify.git.ci/)
840
854
 
841
855
  ## DISCLAIMER
842
- - The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao or Sticker Maker.
856
+ - The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Viber, iMessage or Sticker Maker.
843
857
  - The author of this repo is NOT repsonsible for any legal consequences and loss incurred from using this repo.
@@ -96,24 +96,27 @@ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--cus
96
96
  [--input-dir INPUT_DIR]
97
97
  [--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-viber DOWNLOAD_VIBER]
98
98
  [--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
99
- [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-imessage]
99
+ [--export-signal | --export-telegram | --export-telegram-emoji | --export-whatsapp | --export-viber | --export-imessage]
100
100
  [--no-compress]
101
101
  [--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}]
102
102
  [--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
103
103
  [--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
104
- [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
105
- [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
106
- [--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER]
107
- [--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--padding-percent PADDING_PERCENT]
108
- [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX]
109
- [--vid-format VID_FORMAT] [--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
110
- [--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
111
- [--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
104
+ [--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX]
105
+ [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX]
106
+ [--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]
108
+ [--padding-percent PADDING_PERCENT] [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX]
109
+ [--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT]
110
+ [--fake-vid] [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD]
111
+ [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID]
112
+ [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
112
113
  [--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
113
- [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
114
- [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
114
+ [--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN]
115
+ [--kakao-get-auth] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
115
116
  [--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
116
- [--line-get-auth] [--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
117
+ [--line-get-auth] [--line-cookies LINE_COOKIES] [--viber-auth VIBER_AUTH]
118
+ [--viber-get-auth VIBER_GET_AUTH] [--viber-bin-path VIBER_BIN_PATH]
119
+ [--save-cred SAVE_CRED]
117
120
 
118
121
  CLI for stickers-convert
119
122
 
@@ -163,6 +166,7 @@ Output options:
163
166
  --export-telegram-emoji
164
167
  Upload to Telegram (Custom emoji)
165
168
  --export-whatsapp Create a .wastickers file for uploading to WhatsApp
169
+ --export-viber Upload to Viber
166
170
  --export-imessage Create Xcode project for importing to iMessage
167
171
 
168
172
  Compression options:
@@ -281,6 +285,14 @@ Credentials options:
281
285
  --line-get-auth Get Line cookies from browser, which is required to create custom message stickers.
282
286
  --line-cookies LINE_COOKIES
283
287
  Set Line cookies, which is required to create custom message stickers.
288
+ --viber-auth VIBER_AUTH
289
+ Set Viber authentication data.
290
+ Required for uploading Viber stickers.
291
+ --viber-get-auth VIBER_GET_AUTH
292
+ Generate Viber authentication data.
293
+ --viber-bin-path VIBER_BIN_PATH
294
+ Specify location of Viber Desktop application.
295
+ Useful for portable installation.
284
296
  --save-cred SAVE_CRED
285
297
  Save Signal and Telegram credentials.
286
298
  ```
@@ -453,5 +465,5 @@ See [docs/TODO.md](docs/TODO.md)
453
465
  - Banner generated from [GitHub Socialify](https://socialify.git.ci/)
454
466
 
455
467
  ## DISCLAIMER
456
- - The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao or Sticker Maker.
468
+ - The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Viber, iMessage or Sticker Maker.
457
469
  - The author of this repo is NOT repsonsible for any legal consequences and loss incurred from using this repo.
@@ -10,9 +10,11 @@ mergedeep~=1.3.4
10
10
  numpy>=1.22.4
11
11
  Pillow~=10.3.0
12
12
  pyoxipng~=9.0.0
13
- python-telegram-bot~=21.2
13
+ python-telegram-bot~=21.3
14
+ psutil~=5.9.8
15
+ PyMemoryEditor~=1.5.22
14
16
  requests~=2.32.3
15
- rlottie_python~=1.3.5
17
+ rlottie_python~=1.3.6
16
18
  signalstickers-client-fork-laggykiller~=3.3.0.post2
17
19
  sqlcipher3-wheels~=0.5.2.post1
18
20
  tqdm~=4.66.4
@@ -17,6 +17,7 @@ from sticker_convert.job_option import CompOption, CredOption, InputOption, Outp
17
17
  from sticker_convert.utils.auth.get_kakao_auth import GetKakaoAuth
18
18
  from sticker_convert.utils.auth.get_line_auth import GetLineAuth
19
19
  from sticker_convert.utils.auth.get_signal_auth import GetSignalAuth
20
+ from sticker_convert.utils.auth.get_viber_auth import GetViberAuth
20
21
  from sticker_convert.utils.callback import Callback
21
22
  from sticker_convert.utils.files.json_manager import JsonManager
22
23
  from sticker_convert.utils.url_detect import UrlDetect
@@ -452,6 +453,9 @@ class CLI:
452
453
  line_cookies=args.line_cookies
453
454
  if args.line_cookies
454
455
  else creds.get("line", {}).get("cookies"),
456
+ viber_auth=args.viber_auth
457
+ if args.viber_auth
458
+ else creds.get("viber", {}).get("auth"),
455
459
  )
456
460
 
457
461
  if args.kakao_get_auth:
@@ -501,6 +505,20 @@ class CLI:
501
505
  "Failed to get Line cookies. Have you logged in the web browser?"
502
506
  )
503
507
 
508
+ if args.viber_get_auth:
509
+ get_viber_auth = GetViberAuth(self.cb.ask_str)
510
+
511
+ viber_bin_path = None
512
+ if args.viber_bin_path:
513
+ viber_bin_path = args.viber_bin_path
514
+
515
+ viber_auth, msg = get_viber_auth.get_cred(viber_bin_path)
516
+
517
+ if viber_auth:
518
+ opt_cred.viber_auth = viber_auth
519
+
520
+ self.cb.msg(msg)
521
+
504
522
  if args.save_cred:
505
523
  creds_path = CONFIG_DIR / "creds.json"
506
524
  JsonManager.save_json(creds_path, opt_cred.to_dict())
@@ -47,7 +47,7 @@ class MetadataKakao:
47
47
  headers = {"User-Agent": "Android"}
48
48
 
49
49
  response = requests.get(url, headers=headers)
50
- soup = BeautifulSoup(response.text, "html.parser")
50
+ soup = BeautifulSoup(response.content.decode("utf-8", "ignore"), "html.parser")
51
51
 
52
52
  pack_title_tag = soup.find("title") # type: ignore
53
53
  if not pack_title_tag:
@@ -159,6 +159,8 @@ class GUI(Window):
159
159
  self.kakao_country_code_var = StringVar(self)
160
160
  self.kakao_phone_number_var = StringVar(self)
161
161
  self.line_cookies_var = StringVar(self)
162
+ self.viber_auth_var = StringVar(self)
163
+ self.viber_bin_path_var = StringVar(self)
162
164
 
163
165
  # Config
164
166
  self.settings_save_cred_var = BooleanVar()
@@ -385,6 +387,7 @@ class GUI(Window):
385
387
  self.creds.get("kakao", {}).get("phone_number", "")
386
388
  )
387
389
  self.line_cookies_var.set(self.creds.get("line", {}).get("cookies", ""))
390
+ self.viber_auth_var.set(self.creds.get("viber", {}).get("auth", ""))
388
391
 
389
392
  def get_input_name(self) -> str:
390
393
  return [
@@ -545,6 +548,7 @@ class GUI(Window):
545
548
  kakao_country_code=self.kakao_country_code_var.get(),
546
549
  kakao_phone_number=self.kakao_phone_number_var.get(),
547
550
  line_cookies=self.line_cookies_var.get(),
551
+ viber_auth=self.viber_auth_var.get(),
548
552
  )
549
553
 
550
554
  def start_process(self) -> None:
@@ -771,6 +775,11 @@ class GUI(Window):
771
775
  else:
772
776
  self.cred_frame.telegram_userid_entry.config(bootstyle="default") # type: ignore
773
777
 
778
+ if output_option == "viber" and not self.viber_auth_var.get():
779
+ self.cred_frame.viber_auth_entry.config(bootstyle="warning") # type: ignore
780
+ else:
781
+ self.cred_frame.viber_auth_entry.config(bootstyle="default") # type: ignore
782
+
774
783
  if (
775
784
  urlparse(url).netloc == "e.kakao.com"
776
785
  and not self.kakao_auth_token_var.get()
@@ -8,6 +8,7 @@ from sticker_convert.gui_components.frames.right_clicker import RightClicker
8
8
  from sticker_convert.gui_components.windows.kakao_get_auth_window import KakaoGetAuthWindow
9
9
  from sticker_convert.gui_components.windows.line_get_auth_window import LineGetAuthWindow
10
10
  from sticker_convert.gui_components.windows.signal_get_auth_window import SignalGetAuthWindow
11
+ from sticker_convert.gui_components.windows.viber_get_auth_window import ViberGetAuthWindow
11
12
 
12
13
  if TYPE_CHECKING:
13
14
  from sticker_convert.gui import GUI # type: ignore
@@ -103,6 +104,20 @@ class CredFrame(LabelFrame):
103
104
  bootstyle="secondary", # type: ignore
104
105
  )
105
106
 
107
+ self.viber_auth_lbl = Label(
108
+ self, text="Viber auth", width=18, justify="left", anchor="w"
109
+ )
110
+ self.viber_auth_entry = Entry(
111
+ self, textvariable=self.gui.viber_auth_var, width=35
112
+ )
113
+ self.viber_auth_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
114
+ self.viber_get_auth_btn = Button(
115
+ self,
116
+ text="Generate",
117
+ command=self.cb_viber_get_auth,
118
+ bootstyle="secondary", # type: ignore
119
+ )
120
+
106
121
  self.help_btn = Button(
107
122
  self,
108
123
  text="Get help",
@@ -133,6 +148,9 @@ class CredFrame(LabelFrame):
133
148
  self.line_cookies_lbl.grid(column=0, row=6, sticky="w", padx=3, pady=3)
134
149
  self.line_cookies_entry.grid(column=1, row=6, sticky="w", padx=3, pady=3)
135
150
  self.line_get_auth_btn.grid(column=2, row=6, sticky="e", padx=3, pady=3)
151
+ self.viber_auth_lbl.grid(column=0, row=7, sticky="w", padx=3, pady=3)
152
+ self.viber_auth_entry.grid(column=1, row=7, sticky="w", padx=3, pady=3)
153
+ self.viber_get_auth_btn.grid(column=2, row=7, sticky="e", padx=3, pady=3)
136
154
  self.help_btn.grid(column=2, row=8, sticky="e", padx=3, pady=3)
137
155
 
138
156
  def cb_cred_help(self, *_: Any) -> None:
@@ -150,6 +168,9 @@ class CredFrame(LabelFrame):
150
168
  def cb_line_get_auth(self, *_: Any) -> None:
151
169
  LineGetAuthWindow(self.gui)
152
170
 
171
+ def cb_viber_get_auth(self, *_: Any) -> None:
172
+ ViberGetAuthWindow(self.gui)
173
+
153
174
  def set_states(self, state: str) -> None:
154
175
  self.signal_uuid_entry.config(state=state)
155
176
  self.signal_password_entry.config(state=state)
@@ -0,0 +1,149 @@
1
+ #!/usr/bin/env python3
2
+ import platform
3
+ from functools import partial
4
+ from pathlib import Path
5
+ from subprocess import Popen
6
+ from tkinter import filedialog
7
+ from typing import Any
8
+
9
+ from ttkbootstrap import Button, Entry, Frame, Label # type: ignore
10
+
11
+ from sticker_convert.gui_components.gui_utils import GUIUtils
12
+ from sticker_convert.gui_components.windows.base_window import BaseWindow
13
+ from sticker_convert.utils.auth.get_viber_auth import GetViberAuth
14
+
15
+
16
+ class ViberGetAuthWindow(BaseWindow):
17
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
18
+ super().__init__(*args, **kwargs)
19
+
20
+ self.title("Get Viber auth data")
21
+
22
+ self.cb_msg_block_viber = partial(self.gui.cb_msg_block, parent=self)
23
+ self.cb_ask_str_viber = partial(self.gui.cb_ask_str, parent=self)
24
+
25
+ self.frame_info = Frame(self.scrollable_frame)
26
+ self.frame_btns = Frame(self.scrollable_frame)
27
+ self.frame_config = Frame(self.scrollable_frame)
28
+
29
+ self.frame_info.grid(column=0, row=0, sticky="news", padx=3, pady=3)
30
+ self.frame_btns.grid(column=0, row=1, sticky="news", padx=3, pady=3)
31
+ self.frame_config.grid(column=0, row=2, sticky="news", padx=3, pady=3)
32
+
33
+ # Info frame
34
+ self.explanation_lbl0 = Label(
35
+ self.frame_info,
36
+ text="Please install Viber Desktop and login first.",
37
+ justify="left",
38
+ anchor="w",
39
+ )
40
+ self.explanation_lbl1 = Label(
41
+ self.frame_info,
42
+ text="It may take a minute to get auth data.",
43
+ justify="left",
44
+ anchor="w",
45
+ )
46
+ self.explanation_lbl2 = None
47
+ if platform.system() == "Darwin":
48
+ self.explanation_lbl2 = Label(
49
+ self.frame_info,
50
+ text="You need to disable SIP and may be asked for user password.",
51
+ justify="left",
52
+ anchor="w",
53
+ )
54
+ else:
55
+ self.explanation_lbl2 = Label(
56
+ self.frame_info,
57
+ text="You may be asked for admin password.",
58
+ justify="left",
59
+ anchor="w",
60
+ )
61
+
62
+ self.explanation_lbl0.grid(column=0, row=0, sticky="w", padx=3, pady=3)
63
+ self.explanation_lbl1.grid(column=0, row=1, sticky="w", padx=3, pady=3)
64
+ self.explanation_lbl2.grid(column=0, row=2, sticky="w", padx=3, pady=3)
65
+
66
+ # Start button frame
67
+ self.launch_btn = Button(
68
+ self.frame_btns,
69
+ text="Launch Viber Desktop",
70
+ command=self.cb_launch_viber,
71
+ bootstyle="secondary", # type: ignore
72
+ )
73
+
74
+ self.get_cred_btn = Button(
75
+ self.frame_btns,
76
+ text="Get auth data",
77
+ command=self.cb_get_cred,
78
+ bootstyle="default", # type: ignore
79
+ )
80
+
81
+ self.launch_btn.pack()
82
+ self.get_cred_btn.pack()
83
+
84
+ # Config frame
85
+ self.setdir_lbl = Label(
86
+ self.frame_config,
87
+ text=self.gui.help["cred"]["viber_bin_path"],
88
+ justify="left",
89
+ anchor="w",
90
+ )
91
+
92
+ self.setdir_entry = Entry(
93
+ self.frame_config,
94
+ textvariable=self.gui.viber_bin_path_var,
95
+ width=32,
96
+ )
97
+ self.setdir_btn = Button(
98
+ self.frame_config,
99
+ text="Choose",
100
+ command=self.cb_setdir,
101
+ width=8,
102
+ bootstyle="secondary", # type: ignore
103
+ )
104
+
105
+ self.setdir_lbl.grid(column=0, row=0, columnspan=2, sticky="w", padx=3, pady=3)
106
+ self.setdir_entry.grid(column=0, row=1, sticky="w", padx=3, pady=3)
107
+ self.setdir_btn.grid(column=1, row=1, sticky="e", padx=3, pady=3)
108
+
109
+ GUIUtils.finalize_window(self)
110
+
111
+ def cb_get_cred(self) -> None:
112
+ m = GetViberAuth(self.cb_ask_str_viber)
113
+
114
+ viber_bin_path = None
115
+ if self.gui.viber_bin_path_var.get():
116
+ viber_bin_path = self.gui.viber_bin_path_var.get()
117
+
118
+ viber_auth, msg = m.get_cred(viber_bin_path)
119
+
120
+ if viber_auth:
121
+ if not self.gui.creds.get("viber"):
122
+ self.gui.creds["viber"] = {}
123
+ self.gui.creds["viber"]["auth"] = viber_auth
124
+ self.gui.viber_auth_var.set(viber_auth)
125
+
126
+ self.gui.save_creds()
127
+ self.gui.highlight_fields()
128
+
129
+ self.cb_msg_block_viber(msg)
130
+
131
+ def cb_launch_viber(self) -> None:
132
+ m = GetViberAuth(self.cb_ask_str_viber)
133
+ viber_bin_path = m.get_viber_desktop()
134
+
135
+ if self.gui.viber_auth_var.get():
136
+ viber_bin_path = self.gui.viber_auth_var.get()
137
+
138
+ if viber_bin_path:
139
+ Popen([viber_bin_path])
140
+ else:
141
+ self.cb_msg_block_viber("Error: Viber Desktop not installed.")
142
+
143
+ def cb_setdir(self) -> None:
144
+ orig_input_dir = self.gui.viber_bin_path_var.get()
145
+ if not Path(orig_input_dir).is_dir():
146
+ orig_input_dir = ""
147
+ input_dir = filedialog.askdirectory(initialdir=orig_input_dir)
148
+ if input_dir:
149
+ self.gui.viber_bin_path_var.set(input_dir)
@@ -21,6 +21,7 @@ from sticker_convert.job_option import CompOption, CredOption, InputOption, Outp
21
21
  from sticker_convert.uploaders.compress_wastickers import CompressWastickers
22
22
  from sticker_convert.uploaders.upload_signal import UploadSignal
23
23
  from sticker_convert.uploaders.upload_telegram import UploadTelegram
24
+ from sticker_convert.uploaders.upload_viber import UploadViber
24
25
  from sticker_convert.uploaders.xcode_imessage import XcodeImessage
25
26
  from sticker_convert.utils.callback import CallbackReturn, CbQueueType, ResultsListType, WorkQueueType
26
27
  from sticker_convert.utils.files.json_resources_loader import OUTPUT_JSON
@@ -305,6 +306,10 @@ class Job:
305
306
  error_msg += "[X] Uploading to signal requires uuid and password.\n"
306
307
  error_msg += save_to_local_tip
307
308
 
309
+ if self.opt_output.option == "viber" and not self.opt_cred.viber_auth:
310
+ error_msg += "[X] Uploading to Viber requires auth data.\n"
311
+ error_msg += save_to_local_tip
312
+
308
313
  output_presets = OUTPUT_JSON
309
314
 
310
315
  input_option = self.opt_input.option
@@ -656,6 +661,9 @@ class Job:
656
661
  if self.opt_output.option == "imessage":
657
662
  exporters.append(XcodeImessage.start)
658
663
 
664
+ if self.opt_output.option == "viber":
665
+ exporters.append(UploadViber.start)
666
+
659
667
  self.executor.start_workers(processes=1)
660
668
 
661
669
  for exporter in exporters:
@@ -222,6 +222,7 @@ class CredOption(BaseOption):
222
222
  kakao_country_code: str = ""
223
223
  kakao_phone_number: str = ""
224
224
  line_cookies: str = ""
225
+ viber_auth: str = ""
225
226
 
226
227
  def to_dict(self) -> Dict[Any, Any]:
227
228
  return {
@@ -235,4 +236,5 @@ class CredOption(BaseOption):
235
236
  "phone_number": self.kakao_phone_number,
236
237
  },
237
238
  "line": {"cookies": self.line_cookies},
239
+ "viber": {"auth": self.viber_auth},
238
240
  }
@@ -338,8 +338,8 @@
338
338
  "vid": ".png"
339
339
  },
340
340
  "fps": {
341
- "min": 1,
342
- "max": 1,
341
+ "min": 0,
342
+ "max": 0,
343
343
  "power": 1
344
344
  },
345
345
  "res": {
@@ -69,6 +69,9 @@
69
69
  "kakao_phone_number": "Set Kakao phone number (Phone number associated with your Kakao account)\nDo NOT enter country code\nExample: 7700900142\nUsed for send / receive verification code via SMS.\nRequired for generating Kakao auth_token.",
70
70
  "line_get_auth": "Get Line cookies from browser, which is required to create custom message stickers.",
71
71
  "line_cookies": "Set Line cookies, which is required to create custom message stickers.",
72
+ "viber_auth": "Set Viber authentication data.\nRequired for uploading Viber stickers.",
73
+ "viber_get_auth": "Generate Viber authentication data.",
74
+ "viber_bin_path": "Specify location of Viber Desktop application.\nUseful for portable installation.",
72
75
  "save_cred": "Save Signal and Telegram credentials."
73
76
  }
74
77
  }
@@ -0,0 +1,26 @@
1
+ #!/bin/bash
2
+ # Reference: https://github.com/hajzer/bash-memory-dump
3
+
4
+ OS_PAGESIZE=`getconf PAGESIZE`
5
+
6
+ PID=$1
7
+ PID_MAPS=/proc/$PID/maps
8
+ PID_MEM=/proc/$PID/mem
9
+
10
+ rm -f /tmp/viber.dmp.$PID
11
+ grep rw-p $PID_MAPS |
12
+ while IFS='' read -r line || [[ -n "$line" ]]; do
13
+ range=`echo $line | awk '{print $1;}'`
14
+
15
+ vma_start=$(( 0x`echo $range | cut -d- -f1` ))
16
+ vma_end=$(( 0x`echo $range | cut -d- -f2` ))
17
+ vma_size=$(( $vma_end - $vma_start ))
18
+
19
+ dd_start=$(( $vma_start / $OS_PAGESIZE ))
20
+ dd_bs=$OS_PAGESIZE
21
+ dd_count=$(( $vma_size / $OS_PAGESIZE ))
22
+
23
+ set +e
24
+ dd if="$PID_MEM" bs="$dd_bs" skip="$dd_start" count="$dd_count"
25
+ set -e
26
+ done
@@ -0,0 +1,8 @@
1
+ param($processId)
2
+ $dumpFilePath = "$Env:TEMP\memdump.bin.$processId"
3
+
4
+ Powershell -c rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump $processId $dumpFilePath full
5
+
6
+ icacls $dumpFilePath /remove "Everyone"
7
+ icacls $dumpFilePath /grant "Everyone:(r)"
8
+ icacls $dumpFilePath /grant "Everyone:(w)"
@@ -23,6 +23,14 @@
23
23
  "author": false
24
24
  }
25
25
  },
26
+ "viber": {
27
+ "full_name": "Upload to Viber",
28
+ "help": "Upload to Viber",
29
+ "metadata_requirements": {
30
+ "title": true,
31
+ "author": false
32
+ }
33
+ },
26
34
  "whatsapp": {
27
35
  "full_name": "Compress to .wastickers (WhatsApp)",
28
36
  "help": "Create a .wastickers file for uploading to WhatsApp",