sticker-convert 2.10.1__tar.gz → 2.10.2__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {sticker_convert-2.10.1/src/sticker_convert.egg-info → sticker_convert-2.10.2}/PKG-INFO +22 -9
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/README.md +21 -8
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/cli.py +16 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/downloaders/download_base.py +24 -5
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/downloaders/download_kakao.py +7 -3
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui.py +1 -0
- sticker_convert-2.10.2/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +304 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/windows/viber_get_auth_window.py +5 -1
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/help.json +3 -1
- sticker_convert-2.10.2/src/sticker_convert/utils/auth/get_kakao_desktop_auth.py +180 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/version.py +1 -1
- {sticker_convert-2.10.1 → sticker_convert-2.10.2/src/sticker_convert.egg-info}/PKG-INFO +22 -9
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert.egg-info/SOURCES.txt +1 -0
- sticker_convert-2.10.1/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +0 -186
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/LICENSE +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/MANIFEST.in +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/pyproject.toml +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/requirements.txt +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/setup.cfg +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/__init__.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/__main__.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/converter.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/definitions.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/downloaders/__init__.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/downloaders/download_discord.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/downloaders/download_line.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/downloaders/download_signal.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/downloaders/download_telegram.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/downloaders/download_viber.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/__init__.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/frames/__init__.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/frames/comp_frame.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/frames/config_frame.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/frames/control_frame.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/frames/cred_frame.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/frames/input_frame.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/frames/output_frame.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/frames/progress_frame.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/frames/right_clicker.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/gui_utils.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/windows/__init__.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/windows/advanced_compression_window.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/windows/base_window.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/windows/discord_get_auth_window.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/windows/line_get_auth_window.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/.gitignore +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/README.md +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers/Info.plist +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Sticker 1.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Sticker 2.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Sticker 3.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/App-Store-1024x1024pt.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-App-Store-1024x768pt.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-67x50pt@2x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-Pro-74x55pt@2x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@2x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@3x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@2x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@3x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@2x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@3x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPad-Settings-29pt@2x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-Settings-29pt@3x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-settings-29pt@2x.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcuserdata/niklaspeterson.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/job.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/job_option.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/NotoColorEmoji.ttf +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/appicon.icns +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/appicon.ico +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/appicon.png +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/compression.json +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/emoji.json +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/input.json +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/memdump_linux.sh +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/memdump_windows.ps1 +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/resources/output.json +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/uploaders/__init__.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/uploaders/compress_wastickers.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/uploaders/upload_base.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/uploaders/upload_signal.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/uploaders/upload_telegram.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/uploaders/upload_viber.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/uploaders/xcode_imessage.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/auth/get_discord_auth.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/auth/get_kakao_auth.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/auth/get_line_auth.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/auth/get_signal_auth.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/auth/get_viber_auth.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/callback.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/chrome_remotedebug.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/emoji.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/files/cache_store.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/files/json_manager.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/files/json_resources_loader.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/files/metadata_handler.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/files/run_bin.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/files/sanitize_filename.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/media/apple_png_normalize.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/media/codec_info.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/media/decrypt_kakao.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/media/format_verify.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/process.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/utils/url_detect.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert.egg-info/dependency_links.txt +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert.egg-info/entry_points.txt +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert.egg-info/requires.txt +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert.egg-info/top_level.txt +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/tests/test_compression.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/tests/test_download.py +0 -0
- {sticker_convert-2.10.1 → sticker_convert-2.10.2}/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.
|
3
|
+
Version: 2.10.2
|
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>
|
@@ -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]
|
492
|
-
[--
|
493
|
-
[--
|
494
|
-
[--
|
495
|
-
[--
|
496
|
-
[--
|
497
|
-
[--
|
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]
|
102
|
-
[--
|
103
|
-
[--
|
104
|
-
[--
|
105
|
-
[--
|
106
|
-
[--
|
107
|
-
[--
|
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
|
@@ -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
|
|
{sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/downloaders/download_base.py
RENAMED
@@ -29,14 +29,24 @@ class DownloadBase:
|
|
29
29
|
self.cb_return = cb_return
|
30
30
|
|
31
31
|
def download_multiple_files(
|
32
|
-
self,
|
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(
|
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,
|
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,
|
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(
|
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:
|
{sticker_convert-2.10.1 → sticker_convert-2.10.2}/src/sticker_convert/downloaders/download_kakao.py
RENAMED
@@ -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]
|
@@ -157,6 +157,7 @@ class GUI(Window):
|
|
157
157
|
self.kakao_password_var = StringVar(self)
|
158
158
|
self.kakao_country_code_var = StringVar(self)
|
159
159
|
self.kakao_phone_number_var = StringVar(self)
|
160
|
+
self.kakao_bin_path_var = StringVar(self)
|
160
161
|
self.line_cookies_var = StringVar(self)
|
161
162
|
self.viber_auth_var = StringVar(self)
|
162
163
|
self.viber_bin_path_var = StringVar(self)
|
@@ -0,0 +1,304 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
import platform
|
3
|
+
import subprocess
|
4
|
+
from functools import partial
|
5
|
+
from threading import Thread
|
6
|
+
from typing import Any, Optional
|
7
|
+
|
8
|
+
from ttkbootstrap import Button, Entry, Frame, Label, LabelFrame # type: ignore
|
9
|
+
|
10
|
+
from sticker_convert.gui_components.frames.right_clicker import RightClicker
|
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_kakao_auth import GetKakaoAuth
|
14
|
+
from sticker_convert.utils.auth.get_kakao_desktop_auth import GetKakaoDesktopAuth
|
15
|
+
|
16
|
+
|
17
|
+
class KakaoGetAuthWindow(BaseWindow):
|
18
|
+
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
19
|
+
super().__init__(*args, **kwargs)
|
20
|
+
|
21
|
+
self.title("Get Kakao auth_token")
|
22
|
+
|
23
|
+
self.cb_msg_block_kakao = partial(self.gui.cb_msg_block, parent=self)
|
24
|
+
self.cb_ask_str_kakao = partial(self.gui.cb_ask_str, parent=self)
|
25
|
+
|
26
|
+
self.frame_from_desktop = LabelFrame(
|
27
|
+
self.scrollable_frame, text="Method 1: From KakaoTalk Desktop"
|
28
|
+
)
|
29
|
+
self.frame_simulate_login = LabelFrame(
|
30
|
+
self.scrollable_frame, text="Method 2: Simulate login"
|
31
|
+
)
|
32
|
+
self.frame_login_btn = Frame(self.scrollable_frame)
|
33
|
+
|
34
|
+
self.frame_from_desktop.grid(column=0, row=0, sticky="news", padx=3, pady=3)
|
35
|
+
self.frame_simulate_login.grid(column=0, row=1, sticky="news", padx=3, pady=3)
|
36
|
+
|
37
|
+
# Method 1 frame
|
38
|
+
self.explanation1_1_lbl = Label(
|
39
|
+
self.frame_from_desktop,
|
40
|
+
text="This will get Kakao auth_token from Kakao Desktop (Windows only)",
|
41
|
+
justify="left",
|
42
|
+
anchor="w",
|
43
|
+
)
|
44
|
+
self.explanation1_2_lbl = Label(
|
45
|
+
self.frame_from_desktop,
|
46
|
+
text="Download Kakao Desktop, login and press 'Get auth_token'",
|
47
|
+
justify="left",
|
48
|
+
anchor="w",
|
49
|
+
)
|
50
|
+
self.explanation1_3_lbl = Label(
|
51
|
+
self.frame_from_desktop,
|
52
|
+
text="This can take about a minute.",
|
53
|
+
justify="left",
|
54
|
+
anchor="w",
|
55
|
+
)
|
56
|
+
self.kakao_bin_path_lbl = Label(
|
57
|
+
self.frame_from_desktop,
|
58
|
+
text="Kakao app path (Optional):",
|
59
|
+
justify="left",
|
60
|
+
anchor="w",
|
61
|
+
)
|
62
|
+
self.kakao_bin_path_entry = Entry(
|
63
|
+
self.frame_from_desktop,
|
64
|
+
textvariable=self.gui.kakao_bin_path_var,
|
65
|
+
width=30,
|
66
|
+
)
|
67
|
+
self.launch_desktop_btn = Button(
|
68
|
+
self.frame_from_desktop,
|
69
|
+
text="Launch Desktop app",
|
70
|
+
command=self.cb_launch_desktop,
|
71
|
+
width=24,
|
72
|
+
bootstyle="secondary", # type: ignore
|
73
|
+
state="normal" if platform.system() == "Windows" else "disabled",
|
74
|
+
)
|
75
|
+
self.get_auth_desktop_btn = Button(
|
76
|
+
self.frame_from_desktop,
|
77
|
+
text="Get auth_token",
|
78
|
+
command=self.cb_from_desktop,
|
79
|
+
width=24,
|
80
|
+
state="normal" if platform.system() == "Windows" else "disabled",
|
81
|
+
)
|
82
|
+
|
83
|
+
self.explanation1_1_lbl.grid(
|
84
|
+
column=0, row=0, columnspan=2, sticky="w", padx=3, pady=3
|
85
|
+
)
|
86
|
+
self.explanation1_2_lbl.grid(
|
87
|
+
column=0, row=1, columnspan=2, sticky="w", padx=3, pady=3
|
88
|
+
)
|
89
|
+
self.explanation1_3_lbl.grid(
|
90
|
+
column=0, row=2, columnspan=2, sticky="w", padx=3, pady=3
|
91
|
+
)
|
92
|
+
self.kakao_bin_path_lbl.grid(column=0, row=3, sticky="w", padx=3, pady=3)
|
93
|
+
self.kakao_bin_path_entry.grid(column=1, row=3, sticky="w", padx=3, pady=3)
|
94
|
+
self.launch_desktop_btn.grid(column=0, row=4, columnspan=2, padx=3, pady=3)
|
95
|
+
self.get_auth_desktop_btn.grid(column=0, row=5, columnspan=2, padx=3, pady=3)
|
96
|
+
|
97
|
+
# Method 2 frame
|
98
|
+
self.explanation2_1_lbl = Label(
|
99
|
+
self.frame_simulate_login,
|
100
|
+
text="This will simulate login to Android Kakao app",
|
101
|
+
justify="left",
|
102
|
+
anchor="w",
|
103
|
+
)
|
104
|
+
self.explanation2_2_lbl = Label(
|
105
|
+
self.frame_simulate_login,
|
106
|
+
text="You will send / receive verification code via SMS",
|
107
|
+
justify="left",
|
108
|
+
anchor="w",
|
109
|
+
)
|
110
|
+
self.explanation2_3_lbl = Label(
|
111
|
+
self.frame_simulate_login,
|
112
|
+
text="You will be logged out of existing device",
|
113
|
+
justify="left",
|
114
|
+
anchor="w",
|
115
|
+
)
|
116
|
+
|
117
|
+
self.kakao_username_help_btn = Button(
|
118
|
+
self.frame_simulate_login,
|
119
|
+
text="?",
|
120
|
+
width=1,
|
121
|
+
command=lambda: self.cb_msg_block_kakao(
|
122
|
+
self.gui.help["cred"]["kakao_username"]
|
123
|
+
),
|
124
|
+
bootstyle="secondary", # type: ignore
|
125
|
+
)
|
126
|
+
self.kakao_username_lbl = Label(
|
127
|
+
self.frame_simulate_login,
|
128
|
+
text="Username",
|
129
|
+
width=18,
|
130
|
+
justify="left",
|
131
|
+
anchor="w",
|
132
|
+
)
|
133
|
+
self.kakao_username_entry = Entry(
|
134
|
+
self.frame_simulate_login,
|
135
|
+
textvariable=self.gui.kakao_username_var,
|
136
|
+
width=30,
|
137
|
+
)
|
138
|
+
self.kakao_username_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
139
|
+
|
140
|
+
self.kakao_password_help_btn = Button(
|
141
|
+
self.frame_simulate_login,
|
142
|
+
text="?",
|
143
|
+
width=1,
|
144
|
+
command=lambda: self.cb_msg_block_kakao(
|
145
|
+
self.gui.help["cred"]["kakao_password"]
|
146
|
+
),
|
147
|
+
bootstyle="secondary", # type: ignore
|
148
|
+
)
|
149
|
+
self.kakao_password_lbl = Label(
|
150
|
+
self.frame_simulate_login, text="Password", justify="left", anchor="w"
|
151
|
+
)
|
152
|
+
self.kakao_password_entry = Entry(
|
153
|
+
self.frame_simulate_login,
|
154
|
+
textvariable=self.gui.kakao_password_var,
|
155
|
+
width=30,
|
156
|
+
)
|
157
|
+
self.kakao_password_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
158
|
+
|
159
|
+
self.kakao_country_code_help_btn = Button(
|
160
|
+
self.frame_simulate_login,
|
161
|
+
text="?",
|
162
|
+
width=1,
|
163
|
+
command=lambda: self.cb_msg_block_kakao(
|
164
|
+
self.gui.help["cred"]["kakao_country_code"]
|
165
|
+
),
|
166
|
+
bootstyle="secondary", # type: ignore
|
167
|
+
)
|
168
|
+
self.kakao_country_code_lbl = Label(
|
169
|
+
self.frame_simulate_login, text="Country code", justify="left", anchor="w"
|
170
|
+
)
|
171
|
+
self.kakao_country_code_entry = Entry(
|
172
|
+
self.frame_simulate_login,
|
173
|
+
textvariable=self.gui.kakao_country_code_var,
|
174
|
+
width=30,
|
175
|
+
)
|
176
|
+
self.kakao_country_code_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
177
|
+
|
178
|
+
self.kakao_phone_number_help_btn = Button(
|
179
|
+
self.frame_simulate_login,
|
180
|
+
text="?",
|
181
|
+
width=1,
|
182
|
+
command=lambda: self.cb_msg_block_kakao(
|
183
|
+
self.gui.help["cred"]["kakao_phone_number"]
|
184
|
+
),
|
185
|
+
bootstyle="secondary", # type: ignore
|
186
|
+
)
|
187
|
+
self.kakao_phone_number_lbl = Label(
|
188
|
+
self.frame_simulate_login, text="Phone number", justify="left", anchor="w"
|
189
|
+
)
|
190
|
+
self.kakao_phone_number_entry = Entry(
|
191
|
+
self.frame_simulate_login,
|
192
|
+
textvariable=self.gui.kakao_phone_number_var,
|
193
|
+
width=30,
|
194
|
+
)
|
195
|
+
self.kakao_phone_number_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
|
196
|
+
|
197
|
+
self.login_btn = Button(
|
198
|
+
self.frame_simulate_login,
|
199
|
+
text="Login and get auth_token",
|
200
|
+
command=self.cb_simulate_login,
|
201
|
+
width=24,
|
202
|
+
)
|
203
|
+
|
204
|
+
self.explanation2_1_lbl.grid(
|
205
|
+
column=0, row=0, columnspan=3, sticky="w", padx=3, pady=3
|
206
|
+
)
|
207
|
+
self.explanation2_2_lbl.grid(
|
208
|
+
column=0, row=1, columnspan=3, sticky="w", padx=3, pady=3
|
209
|
+
)
|
210
|
+
self.explanation2_3_lbl.grid(
|
211
|
+
column=0, row=2, columnspan=3, sticky="w", padx=3, pady=3
|
212
|
+
)
|
213
|
+
|
214
|
+
self.kakao_username_help_btn.grid(column=0, row=3, sticky="w", padx=3, pady=3)
|
215
|
+
self.kakao_username_lbl.grid(column=1, row=3, sticky="w", padx=3, pady=3)
|
216
|
+
self.kakao_username_entry.grid(column=2, row=3, sticky="w", padx=3, pady=3)
|
217
|
+
|
218
|
+
self.kakao_password_help_btn.grid(column=0, row=4, sticky="w", padx=3, pady=3)
|
219
|
+
self.kakao_password_lbl.grid(column=1, row=4, sticky="w", padx=3, pady=3)
|
220
|
+
self.kakao_password_entry.grid(column=2, row=4, sticky="w", padx=3, pady=3)
|
221
|
+
|
222
|
+
self.kakao_country_code_help_btn.grid(
|
223
|
+
column=0, row=5, sticky="w", padx=3, pady=3
|
224
|
+
)
|
225
|
+
self.kakao_country_code_lbl.grid(column=1, row=5, sticky="w", padx=3, pady=3)
|
226
|
+
self.kakao_country_code_entry.grid(column=2, row=5, sticky="w", padx=3, pady=3)
|
227
|
+
|
228
|
+
self.kakao_phone_number_help_btn.grid(
|
229
|
+
column=0, row=6, sticky="w", padx=3, pady=3
|
230
|
+
)
|
231
|
+
self.kakao_phone_number_lbl.grid(column=1, row=6, sticky="w", padx=3, pady=3)
|
232
|
+
self.kakao_phone_number_entry.grid(column=2, row=6, sticky="w", padx=3, pady=3)
|
233
|
+
self.login_btn.grid(column=0, row=7, columnspan=3, padx=3, pady=3)
|
234
|
+
|
235
|
+
GUIUtils.finalize_window(self)
|
236
|
+
|
237
|
+
def cb_simulate_login(self) -> None:
|
238
|
+
Thread(target=self.cb_simulate_login_thread, daemon=True).start()
|
239
|
+
|
240
|
+
def cb_simulate_login_thread(self, *_: Any) -> None:
|
241
|
+
self.gui.save_creds()
|
242
|
+
m = GetKakaoAuth(
|
243
|
+
opt_cred=self.gui.get_opt_cred(),
|
244
|
+
cb_msg=self.gui.cb_msg,
|
245
|
+
cb_msg_block=self.cb_msg_block_kakao,
|
246
|
+
cb_ask_str=self.cb_ask_str_kakao,
|
247
|
+
)
|
248
|
+
|
249
|
+
auth_token = m.get_cred()
|
250
|
+
|
251
|
+
if auth_token:
|
252
|
+
if not self.gui.creds.get("kakao"):
|
253
|
+
self.gui.creds["kakao"] = {}
|
254
|
+
self.gui.creds["kakao"]["auth_token"] = auth_token
|
255
|
+
self.gui.kakao_auth_token_var.set(auth_token)
|
256
|
+
|
257
|
+
self.cb_msg_block_kakao(f"Got auth_token successfully: {auth_token}")
|
258
|
+
self.gui.save_creds()
|
259
|
+
self.gui.highlight_fields()
|
260
|
+
else:
|
261
|
+
self.cb_msg_block_kakao("Failed to get auth_token")
|
262
|
+
|
263
|
+
def cb_launch_desktop(self) -> None:
|
264
|
+
m = GetKakaoDesktopAuth(
|
265
|
+
cb_ask_str=self.cb_ask_str_kakao,
|
266
|
+
)
|
267
|
+
if self.gui.kakao_bin_path_var.get() != "":
|
268
|
+
bin_path = self.gui.kakao_bin_path_var.get()
|
269
|
+
else:
|
270
|
+
bin_path = m.get_kakao_desktop()
|
271
|
+
|
272
|
+
if bin_path is not None:
|
273
|
+
subprocess.Popen([bin_path])
|
274
|
+
else:
|
275
|
+
self.cb_msg_block_kakao(
|
276
|
+
"Error: Cannot launch Kakao Desktop. Is it installed?"
|
277
|
+
)
|
278
|
+
|
279
|
+
def cb_from_desktop(self) -> None:
|
280
|
+
Thread(target=self.cb_from_desktop_thread, daemon=True).start()
|
281
|
+
|
282
|
+
def cb_from_desktop_thread(self, *_: Any) -> None:
|
283
|
+
self.gui.save_creds()
|
284
|
+
m = GetKakaoDesktopAuth(
|
285
|
+
cb_ask_str=self.cb_ask_str_kakao,
|
286
|
+
)
|
287
|
+
|
288
|
+
bin_path: Optional[str]
|
289
|
+
if self.gui.kakao_bin_path_var.get() != "":
|
290
|
+
bin_path = self.gui.kakao_bin_path_var.get()
|
291
|
+
else:
|
292
|
+
bin_path = None
|
293
|
+
auth_token, msg = m.get_cred(bin_path)
|
294
|
+
|
295
|
+
if auth_token:
|
296
|
+
if not self.gui.creds.get("kakao"):
|
297
|
+
self.gui.creds["kakao"] = {}
|
298
|
+
self.gui.creds["kakao"]["auth_token"] = auth_token
|
299
|
+
self.gui.kakao_auth_token_var.set(auth_token)
|
300
|
+
|
301
|
+
self.gui.save_creds()
|
302
|
+
self.gui.highlight_fields()
|
303
|
+
|
304
|
+
self.cb_msg_block_kakao(msg)
|
@@ -3,6 +3,7 @@ import platform
|
|
3
3
|
from functools import partial
|
4
4
|
from pathlib import Path
|
5
5
|
from subprocess import Popen
|
6
|
+
from threading import Thread
|
6
7
|
from tkinter import filedialog
|
7
8
|
from typing import Any
|
8
9
|
|
@@ -108,7 +109,10 @@ class ViberGetAuthWindow(BaseWindow):
|
|
108
109
|
|
109
110
|
GUIUtils.finalize_window(self)
|
110
111
|
|
111
|
-
def cb_get_cred(self)
|
112
|
+
def cb_get_cred(self):
|
113
|
+
Thread(target=self.cb_get_cred_thread, daemon=True).start()
|
114
|
+
|
115
|
+
def cb_get_cred_thread(self) -> None:
|
112
116
|
m = GetViberAuth(self.cb_ask_str_viber)
|
113
117
|
|
114
118
|
viber_bin_path = None
|
@@ -61,7 +61,9 @@
|
|
61
61
|
"telegram_token": "Set Telegram token. Required for uploading and downloading Telegram stickers.",
|
62
62
|
"telegram_userid": "Set telegram user_id (From real account, not bot account). Required for uploading Telegram stickers.",
|
63
63
|
"kakao_auth_token": "Set Kakao auth_token. Required for downloading animated stickers from https://e.kakao.com/t/xxxxx",
|
64
|
-
"kakao_get_auth": "Generate Kakao auth_token. Kakao username, password, country code and phone number are also required.",
|
64
|
+
"kakao_get_auth": "Generate Kakao auth_token by simulating login. Kakao username, password, country code and phone number are also required.",
|
65
|
+
"kakao_get_auth_desktop": "Get Kakao auth_token from Kakao Desktop application.\n(Only working on Windows.)",
|
66
|
+
"kakao_bin_path": "Set Kakao Desktop application path for launching and getting auth_token.\nUseful for portable installation.",
|
65
67
|
"kakao_username": "Set Kakao username, which is email or phone number used for signing up Kakao account\nExample: +447700900142\nRequired for generating Kakao auth_token.",
|
66
68
|
"kakao_password": "Set Kakao password (Password of Kakao account).\nRequired for generating Kakao auth_token.",
|
67
69
|
"kakao_country_code": "Set Kakao country code of phone.\nExample: 82 (For korea), 44 (For UK), 1 (For USA).\nRequired for generating Kakao auth_token.",
|