sticker-convert 2.9.4__tar.gz → 2.10.1__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {sticker_convert-2.9.4/src/sticker_convert.egg-info → sticker_convert-2.10.1}/PKG-INFO +41 -43
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/README.md +35 -38
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/pyproject.toml +2 -2
- sticker_convert-2.9.4/src/sticker_convert.egg-info/requires.txt → sticker_convert-2.10.1/requirements.txt +3 -2
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/cli.py +26 -13
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/downloaders/download_base.py +20 -23
- sticker_convert-2.10.1/src/sticker_convert/downloaders/download_discord.py +91 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/downloaders/download_kakao.py +3 -4
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/downloaders/download_line.py +3 -4
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/downloaders/download_signal.py +3 -4
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/downloaders/download_telegram.py +3 -4
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/downloaders/download_viber.py +3 -4
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui.py +15 -3
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/frames/cred_frame.py +22 -1
- sticker_convert-2.10.1/src/sticker_convert/gui_components/windows/discord_get_auth_window.py +82 -0
- sticker_convert-2.10.1/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +89 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/job.py +11 -1
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/job_option.py +2 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/compression.json +94 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/help.json +2 -1
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/input.json +21 -1
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/uploaders/upload_signal.py +5 -4
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/uploaders/upload_telegram.py +11 -10
- sticker_convert-2.10.1/src/sticker_convert/utils/auth/get_discord_auth.py +115 -0
- sticker_convert-2.10.1/src/sticker_convert/utils/auth/get_signal_auth.py +130 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/auth/get_viber_auth.py +10 -214
- sticker_convert-2.10.1/src/sticker_convert/utils/chrome_remotedebug.py +154 -0
- sticker_convert-2.10.1/src/sticker_convert/utils/emoji.py +16 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/files/run_bin.py +1 -1
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/media/codec_info.py +45 -60
- sticker_convert-2.10.1/src/sticker_convert/utils/process.py +187 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/url_detect.py +3 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/version.py +1 -1
- {sticker_convert-2.9.4 → sticker_convert-2.10.1/src/sticker_convert.egg-info}/PKG-INFO +41 -43
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert.egg-info/SOURCES.txt +6 -0
- sticker_convert-2.9.4/requirements.txt → sticker_convert-2.10.1/src/sticker_convert.egg-info/requires.txt +4 -3
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/tests/test_download.py +28 -0
- sticker_convert-2.9.4/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +0 -135
- sticker_convert-2.9.4/src/sticker_convert/utils/auth/get_signal_auth.py +0 -129
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/LICENSE +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/MANIFEST.in +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/setup.cfg +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/__init__.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/__main__.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/converter.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/definitions.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/downloaders/__init__.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/__init__.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/frames/__init__.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/frames/comp_frame.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/frames/config_frame.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/frames/control_frame.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/frames/input_frame.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/frames/output_frame.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/frames/progress_frame.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/frames/right_clicker.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/gui_utils.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/windows/__init__.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/windows/advanced_compression_window.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/windows/base_window.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/windows/line_get_auth_window.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/gui_components/windows/viber_get_auth_window.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/.gitignore +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/README.md +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers/Info.plist +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/App-Store-1024x1024pt.png +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@2x.png +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@3x.png +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@2x.png +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@3x.png +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/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.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcuserdata/niklaspeterson.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/NotoColorEmoji.ttf +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/appicon.icns +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/appicon.ico +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/appicon.png +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/emoji.json +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/memdump_linux.sh +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/memdump_windows.ps1 +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/resources/output.json +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/uploaders/__init__.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/uploaders/compress_wastickers.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/uploaders/upload_base.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/uploaders/upload_viber.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/uploaders/xcode_imessage.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/auth/get_kakao_auth.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/auth/get_line_auth.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/callback.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/files/cache_store.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/files/json_manager.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/files/json_resources_loader.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/files/metadata_handler.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/files/sanitize_filename.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/media/apple_png_normalize.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/media/decrypt_kakao.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/utils/media/format_verify.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert.egg-info/dependency_links.txt +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert.egg-info/entry_points.txt +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert.egg-info/top_level.txt +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/tests/test_compression.py +0 -0
- {sticker_convert-2.9.4 → sticker_convert-2.10.1}/tests/test_export.py +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.
|
4
|
-
Summary: Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, Viber, iMessage. Written in Python.
|
3
|
+
Version: 2.10.1
|
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>
|
7
7
|
License: GNU GENERAL PUBLIC LICENSE
|
@@ -349,7 +349,7 @@ Project-URL: Source, https://github.com/laggykiller/sticker-convert
|
|
349
349
|
Project-URL: Documentation, https://github.com/laggykiller/sticker-convert
|
350
350
|
Project-URL: Tracker, https://github.com/laggykiller/sticker-convert/issues
|
351
351
|
Project-URL: Repository, https://github.com/laggykiller/sticker-convert
|
352
|
-
Keywords: telegram,line,tgs,whatsapp,kakao,signal,imessage,wastickers,viber
|
352
|
+
Keywords: telegram,line,tgs,whatsapp,kakao,signal,imessage,wastickers,viber,discord
|
353
353
|
Classifier: Development Status :: 5 - Production/Stable
|
354
354
|
Classifier: Intended Audience :: End Users/Desktop
|
355
355
|
Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
|
@@ -370,6 +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
374
|
Requires-Dist: imagequant~=1.1.1
|
374
375
|
Requires-Dist: memory-tempfile~=2.2.3
|
375
376
|
Requires-Dist: mergedeep~=1.3.4
|
@@ -383,17 +384,17 @@ Requires-Dist: PyMemoryEditor~=1.5.22
|
|
383
384
|
Requires-Dist: requests~=2.32.3
|
384
385
|
Requires-Dist: rlottie_python~=1.3.6
|
385
386
|
Requires-Dist: signalstickers-client-fork-laggykiller~=3.3.0.post2
|
386
|
-
Requires-Dist:
|
387
|
-
Requires-Dist: tqdm~=4.66.4
|
387
|
+
Requires-Dist: tqdm~=4.66.5
|
388
388
|
Requires-Dist: ttkbootstrap-fork-laggykiller~=1.5.1
|
389
|
+
Requires-Dist: websocket_client~=1.8.0
|
389
390
|
|
390
391
|
# sticker-convert
|
391
|
-

|
392
393
|

|
393
394
|
|
394
395
|
- A python script for creating, downloading, converting+compressing and uploading stickers from multiple instant messaging applications.
|
395
396
|
- With GUI and CLI that runs on Windows, MacOS and Linux
|
396
|
-
- Currently supports Signal, Telegram, WhatsApp (Create .wastickers), Line (Download only), Kakao (Download only), Viber, iMessage (Create Xcode sticker pack project)
|
397
|
+
- Currently supports Signal, Telegram, WhatsApp (Create .wastickers), Line (Download only), Kakao (Download only), Viber, Discord (Download only), iMessage (Create Xcode sticker pack project)
|
397
398
|
- Supports static and animated stickers, with transparency support
|
398
399
|
|
399
400
|
## Downloads
|
@@ -432,6 +433,7 @@ Requires-Dist: ttkbootstrap-fork-laggykiller~=1.5.1
|
|
432
433
|
| [Line](docs/guide_line.md) | ✅ | 🚫 (Need to submit for manual approval) |
|
433
434
|
| [Kakao](docs/guide_kakao.md) | ✅ (Need 'share link' for animated) | 🚫 (Need to submit for manual approval) |
|
434
435
|
| [Viber](docs/guide_viber.md) | ✅ | ✅ (Require `viber_auth`) |
|
436
|
+
| [Discord](docs/guide_discord.md) | ✅ (Require `token`) | 🚫 |
|
435
437
|
| [iMessage](docs/guide_imessage.md) | 🚫 | ⭕ (Create Xcode stickerpack project for sideload) |
|
436
438
|
|
437
439
|
✅ = Supported ⭕ = Partially supported 🚫 = Not supported
|
@@ -441,14 +443,14 @@ Requires-Dist: ttkbootstrap-fork-laggykiller~=1.5.1
|
|
441
443
|
- Upload: Supported
|
442
444
|
- `uuid` and `password` are needed if you want to automatically upload the pack with the program. View FAQ for more information.
|
443
445
|
- Alternatively, you may use Signal Desktop to manually upload and create sticker pack with the output of this prorgam.
|
444
|
-
- Telegram
|
445
|
-
- Download: Supported for both stickers and custom emoji, but require bot token
|
446
|
+
- Telegram
|
447
|
+
- Download: Supported (e.g. `https://telegram.me/addstickers/xxxxx`) for both stickers and custom emoji, but require bot token.
|
446
448
|
- Upload: Supported for both stickers and custom emoji, but require bot token and user_id. Alternatively, you may manually upload and create sticker pack with the output of this program.
|
447
449
|
- WhatsApp
|
448
|
-
- Download: You have to manually find sticker packs / extract from your phone or from WhatsApp Web
|
450
|
+
- Download: You have to manually find sticker packs / extract from your phone or from WhatsApp Web.
|
449
451
|
- Android Phone: Inside `/storage/emulated/0/Whatsapp/media/Whatsapp Stickers` OR `/storage/emulated/0/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp Stickers`
|
450
452
|
- Any: Go to WhatsApp Web, right click on sticker and click "Save image as..."
|
451
|
-
- Upload: The program can create .wastickers file, which could then be imported into WhatsApp via a third-party app named 'Sticker Maker' (The author of this repo is NOT affiliated with Sticker Maker). View FAQ for more information
|
453
|
+
- Upload: The program can create .wastickers file, which could then be imported into WhatsApp via a third-party app named 'Sticker Maker' (The author of this repo is NOT affiliated with Sticker Maker). View FAQ for more information.
|
452
454
|
- Line
|
453
455
|
- Download: Supported (e.g. `https://store.line.me/stickershop/product/1234/en` OR `line://shop/detail/1234` OR `1234`)
|
454
456
|
- Search on official site: https://store.line.me/stickershop
|
@@ -461,6 +463,9 @@ Requires-Dist: ttkbootstrap-fork-laggykiller~=1.5.1
|
|
461
463
|
- Viber
|
462
464
|
- Download: Supported (e.g. `https://stickers.viber.com/pages/example` OR `https://stickers.viber.com/pages/custom-sticker-packs/example`)
|
463
465
|
- Upload: Supported. Viber authentication data required for uploading Viber stickers, which could be fetched from Viber Desktop application automatically.
|
466
|
+
- Discord
|
467
|
+
- Download: Supported (e.g. `https://discord.com/channels/169256939211980800/@home` OR `169256939211980800`), but require user token.
|
468
|
+
- Upload: Not supported.
|
464
469
|
- iMessage
|
465
470
|
- Download: Not supported.
|
466
471
|
- Upload: The program can create Xcode project for iMessage sticker pack, which could then be compiled and sideloaded using Xcode.
|
@@ -481,31 +486,15 @@ Requires-Dist: ttkbootstrap-fork-laggykiller~=1.5.1
|
|
481
486
|
To run in CLI mode, pass on any arguments
|
482
487
|
|
483
488
|
```
|
484
|
-
usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS]
|
485
|
-
[--
|
486
|
-
[--
|
487
|
-
[--
|
488
|
-
[--
|
489
|
-
[--
|
490
|
-
[--
|
491
|
-
[--
|
492
|
-
[--
|
493
|
-
[--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX]
|
494
|
-
[--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX]
|
495
|
-
[--quality-power QUALITY_POWER] [--color-min COLOR_MIN] [--color-max COLOR_MAX]
|
496
|
-
[--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX]
|
497
|
-
[--padding-percent PADDING_PERCENT] [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX]
|
498
|
-
[--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]
|
500
|
-
[--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID]
|
501
|
-
[--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
|
502
|
-
[--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
|
503
|
-
[--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN]
|
504
|
-
[--kakao-get-auth] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
|
505
|
-
[--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
|
506
|
-
[--line-get-auth] [--line-cookies LINE_COOKIES] [--viber-auth VIBER_AUTH]
|
507
|
-
[--viber-get-auth VIBER_GET_AUTH] [--viber-bin-path VIBER_BIN_PATH]
|
508
|
-
[--save-cred SAVE_CRED]
|
489
|
+
usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
|
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]
|
509
498
|
|
510
499
|
CLI for stickers-convert
|
511
500
|
|
@@ -524,7 +513,7 @@ Input options:
|
|
524
513
|
Specify input directory.
|
525
514
|
--download-auto DOWNLOAD_AUTO
|
526
515
|
Auto detect URL type and download
|
527
|
-
(Supported input sources: Signal, Telegram, Line, Kakao, Viber)
|
516
|
+
(Supported input sources: Signal, Telegram, Line, Kakao, Viber, Discord)
|
528
517
|
--download-signal DOWNLOAD_SIGNAL
|
529
518
|
Download signal stickers from a URL as input
|
530
519
|
(Example: https://signal.art/addstickers/#pack_id=xxxxx&pack_key=xxxxx)
|
@@ -544,6 +533,14 @@ Input options:
|
|
544
533
|
Download viber stickers from a URL as input
|
545
534
|
(Example: https://stickers.viber.com/pages/example
|
546
535
|
OR https://stickers.viber.com/pages/custom-sticker-packs/example)
|
536
|
+
--download-discord DOWNLOAD_DISCORD
|
537
|
+
Download discord stickers from a channel URL / ID as input
|
538
|
+
(Example: https://discord.com/channels/169256939211980800/@home
|
539
|
+
OR 169256939211980800)
|
540
|
+
--download-discord-emoji DOWNLOAD_DISCORD_EMOJI
|
541
|
+
Download discord emojis from a channel URL / ID as input
|
542
|
+
(Example: https://discord.com/channels/169256939211980800/@home
|
543
|
+
OR 169256939211980800)
|
547
544
|
|
548
545
|
Output options:
|
549
546
|
--output-dir OUTPUT_DIR
|
@@ -554,13 +551,13 @@ Output options:
|
|
554
551
|
--export-telegram Upload to Telegram
|
555
552
|
--export-telegram-emoji
|
556
553
|
Upload to Telegram (Custom emoji)
|
557
|
-
--export-whatsapp Create a .wastickers file for uploading to WhatsApp
|
558
554
|
--export-viber Upload to Viber
|
555
|
+
--export-whatsapp Create a .wastickers file for uploading to WhatsApp
|
559
556
|
--export-imessage Create Xcode project for importing to iMessage
|
560
557
|
|
561
558
|
Compression options:
|
562
559
|
--no-compress Do not compress files. Useful for only downloading stickers.
|
563
|
-
--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}
|
560
|
+
--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}
|
564
561
|
Apply preset for compression.
|
565
562
|
--steps STEPS Set number of divisions between min and max settings.
|
566
563
|
Steps higher = Slower but yields file more closer to the specified file size limit.
|
@@ -644,9 +641,6 @@ Credentials options:
|
|
644
641
|
--signal-password SIGNAL_PASSWORD
|
645
642
|
Set Signal password. Required for uploading Signal stickers.
|
646
643
|
--signal-get-auth Generate Signal uuid and password.
|
647
|
-
--signal-data-dir SIGNAL_DATA_DIR
|
648
|
-
Optionally specify Signal data directory
|
649
|
-
for getting uuid and password. Useful for portable Signal.
|
650
644
|
--telegram-token TELEGRAM_TOKEN
|
651
645
|
Set Telegram token. Required for uploading and downloading Telegram stickers.
|
652
646
|
--telegram-userid TELEGRAM_USERID
|
@@ -682,6 +676,9 @@ Credentials options:
|
|
682
676
|
--viber-bin-path VIBER_BIN_PATH
|
683
677
|
Specify location of Viber Desktop application.
|
684
678
|
Useful for portable installation.
|
679
|
+
--discord-get-auth Get Discord token.
|
680
|
+
--discord-token DISCORD_TOKEN
|
681
|
+
Set Discord token. Required for downloading Discord stickers and emojis.
|
685
682
|
--save-cred SAVE_CRED
|
686
683
|
Save Signal and Telegram credentials.
|
687
684
|
```
|
@@ -794,6 +791,7 @@ See [docs/COMPILING.md](docs/COMPILING.md)
|
|
794
791
|
- [Line](docs/guide_line.md)
|
795
792
|
- [Kakao](docs/guide_kakao.md)
|
796
793
|
- [Viber](docs/guide_viber.md)
|
794
|
+
- [Discord](docs/guide_discord.md)
|
797
795
|
- [iMessage](docs/guide_imessage.md)
|
798
796
|
|
799
797
|
### Conversion is slow
|
@@ -854,5 +852,5 @@ See [docs/TODO.md](docs/TODO.md)
|
|
854
852
|
- Banner generated from [GitHub Socialify](https://socialify.git.ci/)
|
855
853
|
|
856
854
|
## DISCLAIMER
|
857
|
-
- The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Viber, iMessage or Sticker Maker.
|
855
|
+
- The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Viber, Discord, iMessage or Sticker Maker.
|
858
856
|
- The author of this repo is NOT repsonsible for any legal consequences and loss incurred from using this repo.
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# sticker-convert
|
2
|
-

|
3
3
|

|
4
4
|
|
5
5
|
- A python script for creating, downloading, converting+compressing and uploading stickers from multiple instant messaging applications.
|
6
6
|
- With GUI and CLI that runs on Windows, MacOS and Linux
|
7
|
-
- Currently supports Signal, Telegram, WhatsApp (Create .wastickers), Line (Download only), Kakao (Download only), Viber, iMessage (Create Xcode sticker pack project)
|
7
|
+
- Currently supports Signal, Telegram, WhatsApp (Create .wastickers), Line (Download only), Kakao (Download only), Viber, Discord (Download only), iMessage (Create Xcode sticker pack project)
|
8
8
|
- Supports static and animated stickers, with transparency support
|
9
9
|
|
10
10
|
## Downloads
|
@@ -43,6 +43,7 @@
|
|
43
43
|
| [Line](docs/guide_line.md) | ✅ | 🚫 (Need to submit for manual approval) |
|
44
44
|
| [Kakao](docs/guide_kakao.md) | ✅ (Need 'share link' for animated) | 🚫 (Need to submit for manual approval) |
|
45
45
|
| [Viber](docs/guide_viber.md) | ✅ | ✅ (Require `viber_auth`) |
|
46
|
+
| [Discord](docs/guide_discord.md) | ✅ (Require `token`) | 🚫 |
|
46
47
|
| [iMessage](docs/guide_imessage.md) | 🚫 | ⭕ (Create Xcode stickerpack project for sideload) |
|
47
48
|
|
48
49
|
✅ = Supported ⭕ = Partially supported 🚫 = Not supported
|
@@ -52,14 +53,14 @@
|
|
52
53
|
- Upload: Supported
|
53
54
|
- `uuid` and `password` are needed if you want to automatically upload the pack with the program. View FAQ for more information.
|
54
55
|
- Alternatively, you may use Signal Desktop to manually upload and create sticker pack with the output of this prorgam.
|
55
|
-
- Telegram
|
56
|
-
- Download: Supported for both stickers and custom emoji, but require bot token
|
56
|
+
- Telegram
|
57
|
+
- Download: Supported (e.g. `https://telegram.me/addstickers/xxxxx`) for both stickers and custom emoji, but require bot token.
|
57
58
|
- Upload: Supported for both stickers and custom emoji, but require bot token and user_id. Alternatively, you may manually upload and create sticker pack with the output of this program.
|
58
59
|
- WhatsApp
|
59
|
-
- Download: You have to manually find sticker packs / extract from your phone or from WhatsApp Web
|
60
|
+
- Download: You have to manually find sticker packs / extract from your phone or from WhatsApp Web.
|
60
61
|
- Android Phone: Inside `/storage/emulated/0/Whatsapp/media/Whatsapp Stickers` OR `/storage/emulated/0/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp Stickers`
|
61
62
|
- Any: Go to WhatsApp Web, right click on sticker and click "Save image as..."
|
62
|
-
- Upload: The program can create .wastickers file, which could then be imported into WhatsApp via a third-party app named 'Sticker Maker' (The author of this repo is NOT affiliated with Sticker Maker). View FAQ for more information
|
63
|
+
- Upload: The program can create .wastickers file, which could then be imported into WhatsApp via a third-party app named 'Sticker Maker' (The author of this repo is NOT affiliated with Sticker Maker). View FAQ for more information.
|
63
64
|
- Line
|
64
65
|
- Download: Supported (e.g. `https://store.line.me/stickershop/product/1234/en` OR `line://shop/detail/1234` OR `1234`)
|
65
66
|
- Search on official site: https://store.line.me/stickershop
|
@@ -72,6 +73,9 @@
|
|
72
73
|
- Viber
|
73
74
|
- Download: Supported (e.g. `https://stickers.viber.com/pages/example` OR `https://stickers.viber.com/pages/custom-sticker-packs/example`)
|
74
75
|
- Upload: Supported. Viber authentication data required for uploading Viber stickers, which could be fetched from Viber Desktop application automatically.
|
76
|
+
- Discord
|
77
|
+
- Download: Supported (e.g. `https://discord.com/channels/169256939211980800/@home` OR `169256939211980800`), but require user token.
|
78
|
+
- Upload: Not supported.
|
75
79
|
- iMessage
|
76
80
|
- Download: Not supported.
|
77
81
|
- Upload: The program can create Xcode project for iMessage sticker pack, which could then be compiled and sideloaded using Xcode.
|
@@ -92,31 +96,15 @@
|
|
92
96
|
To run in CLI mode, pass on any arguments
|
93
97
|
|
94
98
|
```
|
95
|
-
usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS]
|
96
|
-
[--
|
97
|
-
[--
|
98
|
-
[--
|
99
|
-
[--
|
100
|
-
[--
|
101
|
-
[--
|
102
|
-
[--
|
103
|
-
[--
|
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]
|
113
|
-
[--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
|
114
|
-
[--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN]
|
115
|
-
[--kakao-get-auth] [--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
|
116
|
-
[--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER]
|
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]
|
99
|
+
usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
|
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]
|
120
108
|
|
121
109
|
CLI for stickers-convert
|
122
110
|
|
@@ -135,7 +123,7 @@ Input options:
|
|
135
123
|
Specify input directory.
|
136
124
|
--download-auto DOWNLOAD_AUTO
|
137
125
|
Auto detect URL type and download
|
138
|
-
(Supported input sources: Signal, Telegram, Line, Kakao, Viber)
|
126
|
+
(Supported input sources: Signal, Telegram, Line, Kakao, Viber, Discord)
|
139
127
|
--download-signal DOWNLOAD_SIGNAL
|
140
128
|
Download signal stickers from a URL as input
|
141
129
|
(Example: https://signal.art/addstickers/#pack_id=xxxxx&pack_key=xxxxx)
|
@@ -155,6 +143,14 @@ Input options:
|
|
155
143
|
Download viber stickers from a URL as input
|
156
144
|
(Example: https://stickers.viber.com/pages/example
|
157
145
|
OR https://stickers.viber.com/pages/custom-sticker-packs/example)
|
146
|
+
--download-discord DOWNLOAD_DISCORD
|
147
|
+
Download discord stickers from a channel URL / ID as input
|
148
|
+
(Example: https://discord.com/channels/169256939211980800/@home
|
149
|
+
OR 169256939211980800)
|
150
|
+
--download-discord-emoji DOWNLOAD_DISCORD_EMOJI
|
151
|
+
Download discord emojis from a channel URL / ID as input
|
152
|
+
(Example: https://discord.com/channels/169256939211980800/@home
|
153
|
+
OR 169256939211980800)
|
158
154
|
|
159
155
|
Output options:
|
160
156
|
--output-dir OUTPUT_DIR
|
@@ -165,13 +161,13 @@ Output options:
|
|
165
161
|
--export-telegram Upload to Telegram
|
166
162
|
--export-telegram-emoji
|
167
163
|
Upload to Telegram (Custom emoji)
|
168
|
-
--export-whatsapp Create a .wastickers file for uploading to WhatsApp
|
169
164
|
--export-viber Upload to Viber
|
165
|
+
--export-whatsapp Create a .wastickers file for uploading to WhatsApp
|
170
166
|
--export-imessage Create Xcode project for importing to iMessage
|
171
167
|
|
172
168
|
Compression options:
|
173
169
|
--no-compress Do not compress files. Useful for only downloading stickers.
|
174
|
-
--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,imessage_small,imessage_medium,imessage_large,custom}
|
170
|
+
--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}
|
175
171
|
Apply preset for compression.
|
176
172
|
--steps STEPS Set number of divisions between min and max settings.
|
177
173
|
Steps higher = Slower but yields file more closer to the specified file size limit.
|
@@ -255,9 +251,6 @@ Credentials options:
|
|
255
251
|
--signal-password SIGNAL_PASSWORD
|
256
252
|
Set Signal password. Required for uploading Signal stickers.
|
257
253
|
--signal-get-auth Generate Signal uuid and password.
|
258
|
-
--signal-data-dir SIGNAL_DATA_DIR
|
259
|
-
Optionally specify Signal data directory
|
260
|
-
for getting uuid and password. Useful for portable Signal.
|
261
254
|
--telegram-token TELEGRAM_TOKEN
|
262
255
|
Set Telegram token. Required for uploading and downloading Telegram stickers.
|
263
256
|
--telegram-userid TELEGRAM_USERID
|
@@ -293,6 +286,9 @@ Credentials options:
|
|
293
286
|
--viber-bin-path VIBER_BIN_PATH
|
294
287
|
Specify location of Viber Desktop application.
|
295
288
|
Useful for portable installation.
|
289
|
+
--discord-get-auth Get Discord token.
|
290
|
+
--discord-token DISCORD_TOKEN
|
291
|
+
Set Discord token. Required for downloading Discord stickers and emojis.
|
296
292
|
--save-cred SAVE_CRED
|
297
293
|
Save Signal and Telegram credentials.
|
298
294
|
```
|
@@ -405,6 +401,7 @@ See [docs/COMPILING.md](docs/COMPILING.md)
|
|
405
401
|
- [Line](docs/guide_line.md)
|
406
402
|
- [Kakao](docs/guide_kakao.md)
|
407
403
|
- [Viber](docs/guide_viber.md)
|
404
|
+
- [Discord](docs/guide_discord.md)
|
408
405
|
- [iMessage](docs/guide_imessage.md)
|
409
406
|
|
410
407
|
### Conversion is slow
|
@@ -465,5 +462,5 @@ See [docs/TODO.md](docs/TODO.md)
|
|
465
462
|
- Banner generated from [GitHub Socialify](https://socialify.git.ci/)
|
466
463
|
|
467
464
|
## DISCLAIMER
|
468
|
-
- The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Viber, iMessage or Sticker Maker.
|
465
|
+
- The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Viber, Discord, iMessage or Sticker Maker.
|
469
466
|
- The author of this repo is NOT repsonsible for any legal consequences and loss incurred from using this repo.
|
@@ -1,10 +1,10 @@
|
|
1
1
|
[project]
|
2
2
|
name = "sticker-convert"
|
3
|
-
description = "Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, Viber, iMessage. Written in Python."
|
3
|
+
description = "Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, Viber, Discord, iMessage. Written in Python."
|
4
4
|
readme = "README.md"
|
5
5
|
requires-python = ">=3.8"
|
6
6
|
license = {file = "LICENSE"}
|
7
|
-
keywords = ["telegram", "line", "tgs", "whatsapp", "kakao", "signal", "imessage", "wastickers", "viber"]
|
7
|
+
keywords = ["telegram", "line", "tgs", "whatsapp", "kakao", "signal", "imessage", "wastickers", "viber", "discord"]
|
8
8
|
authors = [
|
9
9
|
{name = "laggykiller", email = "chaudominic2@gmail.com" } # Optional
|
10
10
|
]
|
@@ -4,6 +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
8
|
imagequant~=1.1.1
|
8
9
|
memory-tempfile~=2.2.3
|
9
10
|
mergedeep~=1.3.4
|
@@ -17,6 +18,6 @@ PyMemoryEditor~=1.5.22
|
|
17
18
|
requests~=2.32.3
|
18
19
|
rlottie_python~=1.3.6
|
19
20
|
signalstickers-client-fork-laggykiller~=3.3.0.post2
|
20
|
-
|
21
|
-
tqdm~=4.66.4
|
21
|
+
tqdm~=4.66.5
|
22
22
|
ttkbootstrap-fork-laggykiller~=1.5.1
|
23
|
+
websocket_client~=1.8.0
|
@@ -14,6 +14,7 @@ from mergedeep import merge # type: ignore
|
|
14
14
|
from sticker_convert.definitions import CONFIG_DIR, DEFAULT_DIR
|
15
15
|
from sticker_convert.job import Job
|
16
16
|
from sticker_convert.job_option import CompOption, CredOption, InputOption, OutputOption
|
17
|
+
from sticker_convert.utils.auth.get_discord_auth import GetDiscordAuth
|
17
18
|
from sticker_convert.utils.auth.get_kakao_auth import GetKakaoAuth
|
18
19
|
from sticker_convert.utils.auth.get_line_auth import GetLineAuth
|
19
20
|
from sticker_convert.utils.auth.get_signal_auth import GetSignalAuth
|
@@ -164,7 +165,12 @@ class CLI:
|
|
164
165
|
)
|
165
166
|
|
166
167
|
parser_cred = parser.add_argument_group("Credentials options")
|
167
|
-
flags_cred_bool = (
|
168
|
+
flags_cred_bool = (
|
169
|
+
"signal_get_auth",
|
170
|
+
"kakao_get_auth",
|
171
|
+
"line_get_auth",
|
172
|
+
"discord_get_auth",
|
173
|
+
)
|
168
174
|
for k, v in self.help["cred"].items():
|
169
175
|
keyword_args = {}
|
170
176
|
if k in flags_cred_bool:
|
@@ -220,6 +226,8 @@ class CLI:
|
|
220
226
|
"telegram": args.download_telegram,
|
221
227
|
"kakao": args.download_kakao,
|
222
228
|
"viber": args.download_viber,
|
229
|
+
"discord": args.download_discord,
|
230
|
+
"discord_emoji": args.download_discord_emoji,
|
223
231
|
}
|
224
232
|
|
225
233
|
download_option = "local"
|
@@ -456,6 +464,9 @@ class CLI:
|
|
456
464
|
viber_auth=args.viber_auth
|
457
465
|
if args.viber_auth
|
458
466
|
else creds.get("viber", {}).get("auth"),
|
467
|
+
discord_token=args.discord_token
|
468
|
+
if args.discord_token
|
469
|
+
else creds.get("discord", {}).get("token"),
|
459
470
|
)
|
460
471
|
|
461
472
|
if args.kakao_get_auth:
|
@@ -473,23 +484,16 @@ class CLI:
|
|
473
484
|
self.cb.msg(f"Got auth_token successfully: {auth_token}")
|
474
485
|
|
475
486
|
if args.signal_get_auth:
|
476
|
-
|
477
|
-
|
478
|
-
signal_bin_path = None
|
479
|
-
signal_user_data_dir = None
|
480
|
-
if args.signal_data_dir:
|
481
|
-
signal_bin_path = "(User specified)"
|
482
|
-
signal_user_data_dir = args.signal_data_dir
|
483
|
-
|
484
|
-
uuid, password, msg = get_signal_auth.get_cred(
|
485
|
-
signal_bin_path, signal_user_data_dir
|
486
|
-
)
|
487
|
+
m = GetSignalAuth(cb_msg=self.cb.msg, cb_ask_str=self.cb.ask_str)
|
487
488
|
|
489
|
+
uuid, password = m.get_cred()
|
488
490
|
if uuid and password:
|
489
491
|
opt_cred.signal_uuid = uuid
|
490
492
|
opt_cred.signal_password = password
|
491
493
|
|
492
|
-
|
494
|
+
self.cb.msg(f"Got uuid and password successfully: {uuid}, {password}")
|
495
|
+
|
496
|
+
self.cb.msg("Failed to get uuid and password")
|
493
497
|
|
494
498
|
if args.line_get_auth:
|
495
499
|
get_line_auth = GetLineAuth()
|
@@ -519,6 +523,15 @@ class CLI:
|
|
519
523
|
|
520
524
|
self.cb.msg(msg)
|
521
525
|
|
526
|
+
if args.discord_get_auth:
|
527
|
+
get_discord_auth = GetDiscordAuth(self.cb.msg)
|
528
|
+
discord_token, msg = get_discord_auth.get_cred()
|
529
|
+
|
530
|
+
if discord_token:
|
531
|
+
opt_cred.discord_token = discord_token
|
532
|
+
|
533
|
+
self.cb.msg(msg)
|
534
|
+
|
522
535
|
if args.save_cred:
|
523
536
|
creds_path = CONFIG_DIR / "creds.json"
|
524
537
|
JsonManager.save_json(creds_path, opt_cred.to_dict())
|
{sticker_convert-2.9.4 → sticker_convert-2.10.1}/src/sticker_convert/downloaders/download_base.py
RENAMED
@@ -6,23 +6,24 @@ from pathlib import Path
|
|
6
6
|
from typing import Any, List, Optional, Tuple
|
7
7
|
|
8
8
|
import anyio
|
9
|
+
import httpx
|
9
10
|
import requests
|
10
11
|
|
11
|
-
from sticker_convert.job_option import CredOption
|
12
|
+
from sticker_convert.job_option import CredOption, InputOption
|
12
13
|
from sticker_convert.utils.callback import CallbackProtocol, CallbackReturn
|
13
14
|
|
14
15
|
|
15
16
|
class DownloadBase:
|
16
17
|
def __init__(
|
17
18
|
self,
|
18
|
-
|
19
|
-
out_dir: Path,
|
19
|
+
opt_input: InputOption,
|
20
20
|
opt_cred: Optional[CredOption],
|
21
21
|
cb: CallbackProtocol,
|
22
22
|
cb_return: CallbackReturn,
|
23
23
|
) -> None:
|
24
|
-
self.url = url
|
25
|
-
self.out_dir =
|
24
|
+
self.url = opt_input.url
|
25
|
+
self.out_dir = opt_input.dir
|
26
|
+
self.input_option = opt_input.option
|
26
27
|
self.opt_cred = opt_cred
|
27
28
|
self.cb = cb
|
28
29
|
self.cb_return = cb_return
|
@@ -42,36 +43,32 @@ class DownloadBase:
|
|
42
43
|
("bar", None, {"set_progress_mode": "determinate", "steps": len(targets)})
|
43
44
|
)
|
44
45
|
|
45
|
-
async with
|
46
|
-
|
47
|
-
|
46
|
+
async with httpx.AsyncClient() as client:
|
47
|
+
async with anyio.create_task_group() as tg:
|
48
|
+
for url, dest in targets:
|
49
|
+
tg.start_soon(
|
50
|
+
self.download_file_async, client, url, dest, retries, **kwargs
|
51
|
+
)
|
48
52
|
|
49
53
|
async def download_file_async(
|
50
54
|
self,
|
55
|
+
client: httpx.AsyncClient,
|
51
56
|
url: str,
|
52
57
|
dest: Path,
|
53
58
|
retries: int = 3,
|
54
59
|
**kwargs: Any,
|
55
60
|
) -> None:
|
61
|
+
self.cb.put(f"Downloading {url}")
|
56
62
|
for retry in range(retries):
|
57
|
-
|
58
|
-
response = requests.get(url, allow_redirects=True, **kwargs)
|
59
|
-
|
60
|
-
if not response.ok:
|
61
|
-
self.cb.put("update_bar")
|
62
|
-
raise requests.exceptions.RequestException(
|
63
|
-
f"Error {response.status_code}"
|
64
|
-
)
|
63
|
+
response = await client.get(url, follow_redirects=True, **kwargs)
|
65
64
|
|
66
|
-
|
67
|
-
with
|
68
|
-
f.write(response.content)
|
65
|
+
if response.is_success:
|
66
|
+
async with await anyio.open_file(dest, "wb+") as f:
|
67
|
+
await f.write(response.content)
|
69
68
|
self.cb.put(f"Downloaded {url}")
|
70
|
-
|
71
|
-
|
72
|
-
except requests.exceptions.RequestException as e:
|
69
|
+
else:
|
73
70
|
self.cb.put(
|
74
|
-
f"
|
71
|
+
f"Error {response.status_code}: {url} (tried {retry+1}/{retries} times)"
|
75
72
|
)
|
76
73
|
|
77
74
|
self.cb.put("update_bar")
|