sticker-convert 2.13.0__tar.gz → 2.13.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sticker_convert-2.13.0/src/sticker_convert.egg-info → sticker_convert-2.13.2.0}/PKG-INFO +20 -13
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/README.md +15 -7
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/requirements.txt +4 -5
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/cli.py +3 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/converter.py +1 -1
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/downloaders/download_line.py +8 -4
- sticker_convert-2.13.2.0/src/sticker_convert/downloaders/download_ogq.py +79 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/windows/advanced_compression_window.py +1 -1
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +25 -4
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/windows/viber_get_auth_window.py +15 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/job.py +4 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/compression.json +47 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/help.json +1 -1
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/input.json +10 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/auth/get_discord_auth.py +1 -1
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/auth/get_kakao_desktop_auth.py +36 -41
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/auth/get_viber_auth.py +2 -4
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/auth/telegram_api.py +3 -1
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/auth/telethon_setup.py +18 -7
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/chrome_remotedebug.py +9 -23
- sticker_convert-2.13.2.0/src/sticker_convert/utils/chromiums/linux.py +52 -0
- sticker_convert-2.13.2.0/src/sticker_convert/utils/chromiums/osx.py +68 -0
- sticker_convert-2.13.2.0/src/sticker_convert/utils/chromiums/windows.py +45 -0
- sticker_convert-2.13.2.0/src/sticker_convert/utils/process.py +231 -0
- sticker_convert-2.13.2.0/src/sticker_convert/version.py +3 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0/src/sticker_convert.egg-info}/PKG-INFO +20 -13
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert.egg-info/SOURCES.txt +4 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert.egg-info/requires.txt +4 -5
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/tests/test_download.py +42 -0
- sticker_convert-2.13.0/src/sticker_convert/utils/process.py +0 -187
- sticker_convert-2.13.0/src/sticker_convert/version.py +0 -3
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/LICENSE +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/MANIFEST.in +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/pyproject.toml +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/setup.cfg +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/__init__.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/__main__.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/definitions.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/downloaders/__init__.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/downloaders/download_band.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/downloaders/download_base.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/downloaders/download_discord.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/downloaders/download_kakao.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/downloaders/download_signal.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/downloaders/download_telegram.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/downloaders/download_viber.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/__init__.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/frames/__init__.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/frames/comp_frame.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/frames/config_frame.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/frames/control_frame.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/frames/cred_frame.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/frames/input_frame.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/frames/output_frame.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/frames/progress_frame.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/frames/right_clicker.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/gui_utils.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/windows/__init__.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/windows/base_window.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/windows/discord_get_auth_window.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/windows/line_get_auth_window.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/.gitignore +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/README.md +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers/Info.plist +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/App-Store-1024x1024pt.png +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@2x.png +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@3x.png +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@2x.png +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@3x.png +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/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.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcuserdata/niklaspeterson.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/job_option.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/NotoColorEmoji.ttf +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/appicon.icns +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/appicon.ico +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/appicon.png +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/emoji.json +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/memdump_linux.sh +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/memdump_windows.ps1 +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/output.json +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/uploaders/__init__.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/uploaders/compress_wastickers.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/uploaders/upload_base.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/uploaders/upload_signal.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/uploaders/upload_telegram.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/uploaders/upload_viber.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/uploaders/xcode_imessage.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/auth/get_kakao_auth.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/auth/get_line_auth.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/auth/get_signal_auth.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/callback.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/emoji.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/files/cache_store.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/files/json_manager.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/files/json_resources_loader.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/files/metadata_handler.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/files/run_bin.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/files/sanitize_filename.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/media/apple_png_normalize.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/media/codec_info.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/media/decrypt_kakao.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/media/format_verify.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/singletons.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/utils/url_detect.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert.egg-info/dependency_links.txt +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert.egg-info/entry_points.txt +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert.egg-info/top_level.txt +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/tests/test_compression.py +0 -0
- {sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/tests/test_export.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.13.0
|
3
|
+
Version: 2.13.2.0
|
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>
|
@@ -367,7 +367,7 @@ Requires-Dist: aiolimiter~=1.2.1
|
|
367
367
|
Requires-Dist: anyio~=4.9.0
|
368
368
|
Requires-Dist: apngasm_python~=1.3.2
|
369
369
|
Requires-Dist: av>=13.1.0
|
370
|
-
Requires-Dist: beautifulsoup4~=4.13.
|
370
|
+
Requires-Dist: beautifulsoup4~=4.13.4
|
371
371
|
Requires-Dist: cryptg~=0.5.0.post0
|
372
372
|
Requires-Dist: rookiepy~=0.5.6
|
373
373
|
Requires-Dist: httpx~=0.28.1
|
@@ -376,16 +376,15 @@ Requires-Dist: memory-tempfile~=2.2.3
|
|
376
376
|
Requires-Dist: mergedeep~=1.3.4
|
377
377
|
Requires-Dist: numpy>=1.22.4
|
378
378
|
Requires-Dist: Pillow~=11.2.1
|
379
|
-
Requires-Dist: pybrowsers~=0.8.0
|
380
379
|
Requires-Dist: pyoxipng~=9.1.0
|
381
|
-
Requires-Dist: python-telegram-bot~=22.
|
380
|
+
Requires-Dist: python-telegram-bot~=22.1
|
382
381
|
Requires-Dist: psutil~=7.0.0
|
383
382
|
Requires-Dist: PyMemoryEditor~=1.5.22
|
384
|
-
Requires-Dist: requests~=2.32.
|
383
|
+
Requires-Dist: requests~=2.32.4
|
385
384
|
Requires-Dist: rlottie_python~=1.3.7
|
386
385
|
Requires-Dist: signalstickers-client-fork-laggykiller~=3.3.0.post2
|
387
386
|
Requires-Dist: socksio~=1.0.0
|
388
|
-
Requires-Dist: telethon~=1.
|
387
|
+
Requires-Dist: telethon~=1.40.0
|
389
388
|
Requires-Dist: tqdm~=4.67.1
|
390
389
|
Requires-Dist: ttkbootstrap-fork-laggykiller~=1.5.1
|
391
390
|
Requires-Dist: websocket_client~=1.8.0
|
@@ -397,12 +396,12 @@ Dynamic: license-file
|
|
397
396
|
|
398
397
|
- A python script for creating, downloading, converting+compressing and uploading stickers from multiple instant messaging applications.
|
399
398
|
- With GUI and CLI that runs on Windows, MacOS and Linux
|
400
|
-
- Currently supports Signal, Telegram, WhatsApp (Create .wastickers), Line (Download only), Kakao (Download only), Naver Band (Download only), Viber, Discord (Download only), iMessage (Create Xcode sticker pack project)
|
399
|
+
- Currently supports Signal, Telegram, WhatsApp (Create .wastickers), Line (Download only), Kakao (Download only), Naver Band (Download only), OGQ (Download only), Viber, Discord (Download only), iMessage (Create Xcode sticker pack project)
|
401
400
|
- Supports static and animated stickers, with transparency support
|
402
401
|
|
403
402
|
## Downloads
|
404
403
|
- [Pre-compiled releases](https://github.com/laggykiller/sticker-convert/releases) for Windows, MacOS and Linux (As AppImage).
|
405
|
-
- Windows: Unzip the downloaded file and run `sticker-convert.exe
|
404
|
+
- Windows: Unzip the downloaded file and run `sticker-convert.exe`, or download msi file for installation
|
406
405
|
- MacOS: Unzip the downloaded file, hold control and open `hold_control_and_click_open_me.command` for the first time, then `sticker-convert.app` in the future
|
407
406
|
- Linux:
|
408
407
|
- AppImage: `chmod +x` the downloaded AppImage and run it
|
@@ -439,6 +438,7 @@ Dynamic: license-file
|
|
439
438
|
| [Line](docs/guide_line.md) | ✅ | 🚫 (Need to submit for manual approval) |
|
440
439
|
| [Kakao](docs/guide_kakao.md) | ✅ (Need 'auth_token' for animated) | 🚫 (Need to submit for manual approval) |
|
441
440
|
| [Band](docs/guide_band.md) | ✅ | 🚫 (Need to submit for manual approval) |
|
441
|
+
| [OGQ](docs/guide_ogq.md) | ✅ | 🚫 (Need to submit for manual approval) |
|
442
442
|
| [Viber](docs/guide_viber.md) | ✅ | ✅ (Require `viber_auth`) |
|
443
443
|
| [Discord](docs/guide_discord.md) | ✅ (Require `token`) | 🚫 |
|
444
444
|
| [iMessage](docs/guide_imessage.md) | 🚫 | ⭕ (Create Xcode stickerpack project for sideload) |
|
@@ -468,6 +468,9 @@ Dynamic: license-file
|
|
468
468
|
- Band
|
469
469
|
- Download: Supported (e.g. `https://www.band.us/sticker/xxxx` OR 2535). Learn how to get share link from [docs/guide_band.md](docs/guide_band.md)
|
470
470
|
- Upload: Not supported. You need to manually submit sticker pack for approval before you can use in app.
|
471
|
+
- OGQ
|
472
|
+
- Download: Supported (e.g. `https://ogqmarket.naver.com/artworks/sticker/detail?artworkId=xxxxx`)
|
473
|
+
- Upload: Not supported. You need to manually submit sticker pack for approval before you can use in app.
|
471
474
|
- Viber
|
472
475
|
- Download: Supported (e.g. `https://stickers.viber.com/pages/example` OR `https://stickers.viber.com/pages/custom-sticker-packs/example`)
|
473
476
|
- Upload: Supported. Viber authentication data required for uploading Viber stickers, which could be fetched from Viber Desktop application automatically.
|
@@ -495,11 +498,11 @@ To run in CLI mode, pass on any arguments
|
|
495
498
|
|
496
499
|
```
|
497
500
|
usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
|
498
|
-
[--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-telegram-telethon DOWNLOAD_TELEGRAM_TELETHON | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-band DOWNLOAD_BAND | --download-viber DOWNLOAD_VIBER | --download-discord DOWNLOAD_DISCORD | --download-discord-emoji DOWNLOAD_DISCORD_EMOJI]
|
501
|
+
[--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-telegram-telethon DOWNLOAD_TELEGRAM_TELETHON | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-band DOWNLOAD_BAND | --download-ogq DOWNLOAD_OGQ | --download-viber DOWNLOAD_VIBER | --download-discord DOWNLOAD_DISCORD | --download-discord-emoji DOWNLOAD_DISCORD_EMOJI]
|
499
502
|
[--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
|
500
503
|
[--export-signal | --export-telegram | --export-telegram-emoji | --export-telegram-telethon | --export-telegram-emoji-telethon | --export-viber | --export-whatsapp | --export-imessage]
|
501
504
|
[--no-compress]
|
502
|
-
[--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}]
|
505
|
+
[--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,band,ogq,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}]
|
503
506
|
[--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER]
|
504
507
|
[--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]
|
505
508
|
[--res-h-max RES_H_MAX] [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX]
|
@@ -556,6 +559,9 @@ Input options:
|
|
556
559
|
--download-band DOWNLOAD_BAND
|
557
560
|
Download Naver Band stickers from a URL / ID as input
|
558
561
|
(Example: https://www.band.us/sticker/xxxx OR 2535)
|
562
|
+
--download-ogq DOWNLOAD_OGQ
|
563
|
+
Download OGQ stickers from a URL / ID as input
|
564
|
+
(Example: https://ogqmarket.naver.com/artworks/sticker/detail?artworkId=xxxxx)
|
559
565
|
--download-viber DOWNLOAD_VIBER
|
560
566
|
Download viber stickers from a URL as input
|
561
567
|
(Example: https://stickers.viber.com/pages/example
|
@@ -588,7 +594,7 @@ Output options:
|
|
588
594
|
|
589
595
|
Compression options:
|
590
596
|
--no-compress Do not compress files. Useful for only downloading stickers.
|
591
|
-
--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}
|
597
|
+
--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,band,ogq,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}
|
592
598
|
Apply preset for compression.
|
593
599
|
--steps STEPS Set number of divisions between min and max settings.
|
594
600
|
Steps higher = Slower but yields file more closer to the specified file size limit.
|
@@ -686,7 +692,6 @@ Credentials options:
|
|
686
692
|
--kakao-get-auth Generate Kakao auth_token by simulating login. Kakao username, password, country code and phone number are also required.
|
687
693
|
--kakao-get-auth-desktop
|
688
694
|
Get Kakao auth_token from Kakao Desktop application.
|
689
|
-
(Only working on Windows.)
|
690
695
|
--kakao-bin-path KAKAO_BIN_PATH
|
691
696
|
Set Kakao Desktop application path for launching and getting auth_token.
|
692
697
|
Useful for portable installation.
|
@@ -889,9 +894,11 @@ See [docs/TODO.md](docs/TODO.md)
|
|
889
894
|
- Information about Line stickers: https://github.com/doubleplusc/Line-sticker-downloader
|
890
895
|
- Information about Kakao animated stickers: https://gist.github.com/chitacan/9802668
|
891
896
|
- Downloading and decrypting Kakao animated stickers: https://github.com/blluv/KakaoTalkEmoticonDownloader
|
897
|
+
- Finding browser executable paths: https://github.com/roniemartinez/browsers
|
892
898
|
- Application icon taken from [Icons8](https://icons8.com/)
|
893
899
|
- Banner generated from [GitHub Socialify](https://socialify.git.ci/)
|
900
|
+
- Free code signing on Windows provided by [SignPath.io](https://about.signpath.io/), certificate by [SignPath Foundation](https://signpath.org/)
|
894
901
|
|
895
902
|
## DISCLAIMER
|
896
|
-
- The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Naver Band, Viber, Discord, iMessage or Sticker Maker.
|
903
|
+
- The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Naver Band, OGQ, Viber, Discord, iMessage or Sticker Maker.
|
897
904
|
- The author of this repo is NOT repsonsible for any legal consequences and loss incurred from using this repo.
|
@@ -4,12 +4,12 @@
|
|
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), Naver Band (Download only), Viber, Discord (Download only), iMessage (Create Xcode sticker pack project)
|
7
|
+
- Currently supports Signal, Telegram, WhatsApp (Create .wastickers), Line (Download only), Kakao (Download only), Naver Band (Download only), OGQ (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
|
11
11
|
- [Pre-compiled releases](https://github.com/laggykiller/sticker-convert/releases) for Windows, MacOS and Linux (As AppImage).
|
12
|
-
- Windows: Unzip the downloaded file and run `sticker-convert.exe
|
12
|
+
- Windows: Unzip the downloaded file and run `sticker-convert.exe`, or download msi file for installation
|
13
13
|
- MacOS: Unzip the downloaded file, hold control and open `hold_control_and_click_open_me.command` for the first time, then `sticker-convert.app` in the future
|
14
14
|
- Linux:
|
15
15
|
- AppImage: `chmod +x` the downloaded AppImage and run it
|
@@ -46,6 +46,7 @@
|
|
46
46
|
| [Line](docs/guide_line.md) | ✅ | 🚫 (Need to submit for manual approval) |
|
47
47
|
| [Kakao](docs/guide_kakao.md) | ✅ (Need 'auth_token' for animated) | 🚫 (Need to submit for manual approval) |
|
48
48
|
| [Band](docs/guide_band.md) | ✅ | 🚫 (Need to submit for manual approval) |
|
49
|
+
| [OGQ](docs/guide_ogq.md) | ✅ | 🚫 (Need to submit for manual approval) |
|
49
50
|
| [Viber](docs/guide_viber.md) | ✅ | ✅ (Require `viber_auth`) |
|
50
51
|
| [Discord](docs/guide_discord.md) | ✅ (Require `token`) | 🚫 |
|
51
52
|
| [iMessage](docs/guide_imessage.md) | 🚫 | ⭕ (Create Xcode stickerpack project for sideload) |
|
@@ -75,6 +76,9 @@
|
|
75
76
|
- Band
|
76
77
|
- Download: Supported (e.g. `https://www.band.us/sticker/xxxx` OR 2535). Learn how to get share link from [docs/guide_band.md](docs/guide_band.md)
|
77
78
|
- Upload: Not supported. You need to manually submit sticker pack for approval before you can use in app.
|
79
|
+
- OGQ
|
80
|
+
- Download: Supported (e.g. `https://ogqmarket.naver.com/artworks/sticker/detail?artworkId=xxxxx`)
|
81
|
+
- Upload: Not supported. You need to manually submit sticker pack for approval before you can use in app.
|
78
82
|
- Viber
|
79
83
|
- Download: Supported (e.g. `https://stickers.viber.com/pages/example` OR `https://stickers.viber.com/pages/custom-sticker-packs/example`)
|
80
84
|
- Upload: Supported. Viber authentication data required for uploading Viber stickers, which could be fetched from Viber Desktop application automatically.
|
@@ -102,11 +106,11 @@ To run in CLI mode, pass on any arguments
|
|
102
106
|
|
103
107
|
```
|
104
108
|
usage: sticker-convert.py [-h] [--version] [--no-confirm] [--no-progress] [--custom-presets CUSTOM_PRESETS] [--input-dir INPUT_DIR]
|
105
|
-
[--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-telegram-telethon DOWNLOAD_TELEGRAM_TELETHON | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-band DOWNLOAD_BAND | --download-viber DOWNLOAD_VIBER | --download-discord DOWNLOAD_DISCORD | --download-discord-emoji DOWNLOAD_DISCORD_EMOJI]
|
109
|
+
[--download-auto DOWNLOAD_AUTO | --download-signal DOWNLOAD_SIGNAL | --download-telegram DOWNLOAD_TELEGRAM | --download-telegram-telethon DOWNLOAD_TELEGRAM_TELETHON | --download-line DOWNLOAD_LINE | --download-kakao DOWNLOAD_KAKAO | --download-band DOWNLOAD_BAND | --download-ogq DOWNLOAD_OGQ | --download-viber DOWNLOAD_VIBER | --download-discord DOWNLOAD_DISCORD | --download-discord-emoji DOWNLOAD_DISCORD_EMOJI]
|
106
110
|
[--output-dir OUTPUT_DIR] [--author AUTHOR] [--title TITLE]
|
107
111
|
[--export-signal | --export-telegram | --export-telegram-emoji | --export-telegram-telethon | --export-telegram-emoji-telethon | --export-viber | --export-whatsapp | --export-imessage]
|
108
112
|
[--no-compress]
|
109
|
-
[--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}]
|
113
|
+
[--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,band,ogq,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}]
|
110
114
|
[--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX] [--fps-power FPS_POWER]
|
111
115
|
[--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]
|
112
116
|
[--res-h-max RES_H_MAX] [--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX]
|
@@ -163,6 +167,9 @@ Input options:
|
|
163
167
|
--download-band DOWNLOAD_BAND
|
164
168
|
Download Naver Band stickers from a URL / ID as input
|
165
169
|
(Example: https://www.band.us/sticker/xxxx OR 2535)
|
170
|
+
--download-ogq DOWNLOAD_OGQ
|
171
|
+
Download OGQ stickers from a URL / ID as input
|
172
|
+
(Example: https://ogqmarket.naver.com/artworks/sticker/detail?artworkId=xxxxx)
|
166
173
|
--download-viber DOWNLOAD_VIBER
|
167
174
|
Download viber stickers from a URL as input
|
168
175
|
(Example: https://stickers.viber.com/pages/example
|
@@ -195,7 +202,7 @@ Output options:
|
|
195
202
|
|
196
203
|
Compression options:
|
197
204
|
--no-compress Do not compress files. Useful for only downloading stickers.
|
198
|
-
--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}
|
205
|
+
--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,band,ogq,viber,discord,discord_emoji,imessage_small,imessage_medium,imessage_large,custom}
|
199
206
|
Apply preset for compression.
|
200
207
|
--steps STEPS Set number of divisions between min and max settings.
|
201
208
|
Steps higher = Slower but yields file more closer to the specified file size limit.
|
@@ -293,7 +300,6 @@ Credentials options:
|
|
293
300
|
--kakao-get-auth Generate Kakao auth_token by simulating login. Kakao username, password, country code and phone number are also required.
|
294
301
|
--kakao-get-auth-desktop
|
295
302
|
Get Kakao auth_token from Kakao Desktop application.
|
296
|
-
(Only working on Windows.)
|
297
303
|
--kakao-bin-path KAKAO_BIN_PATH
|
298
304
|
Set Kakao Desktop application path for launching and getting auth_token.
|
299
305
|
Useful for portable installation.
|
@@ -496,9 +502,11 @@ See [docs/TODO.md](docs/TODO.md)
|
|
496
502
|
- Information about Line stickers: https://github.com/doubleplusc/Line-sticker-downloader
|
497
503
|
- Information about Kakao animated stickers: https://gist.github.com/chitacan/9802668
|
498
504
|
- Downloading and decrypting Kakao animated stickers: https://github.com/blluv/KakaoTalkEmoticonDownloader
|
505
|
+
- Finding browser executable paths: https://github.com/roniemartinez/browsers
|
499
506
|
- Application icon taken from [Icons8](https://icons8.com/)
|
500
507
|
- Banner generated from [GitHub Socialify](https://socialify.git.ci/)
|
508
|
+
- Free code signing on Windows provided by [SignPath.io](https://about.signpath.io/), certificate by [SignPath Foundation](https://signpath.org/)
|
501
509
|
|
502
510
|
## DISCLAIMER
|
503
|
-
- The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Naver Band, Viber, Discord, iMessage or Sticker Maker.
|
511
|
+
- The author of this repo is NOT affiliated with Signal, Telegram, WhatsApp, Line, Kakao, Naver Band, OGQ, Viber, Discord, iMessage or Sticker Maker.
|
504
512
|
- The author of this repo is NOT repsonsible for any legal consequences and loss incurred from using this repo.
|
@@ -2,7 +2,7 @@ aiolimiter~=1.2.1
|
|
2
2
|
anyio~=4.9.0
|
3
3
|
apngasm_python~=1.3.2
|
4
4
|
av>=13.1.0
|
5
|
-
beautifulsoup4~=4.13.
|
5
|
+
beautifulsoup4~=4.13.4
|
6
6
|
cryptg~=0.5.0.post0
|
7
7
|
rookiepy~=0.5.6
|
8
8
|
httpx~=0.28.1
|
@@ -11,16 +11,15 @@ memory-tempfile~=2.2.3
|
|
11
11
|
mergedeep~=1.3.4
|
12
12
|
numpy>=1.22.4
|
13
13
|
Pillow~=11.2.1
|
14
|
-
pybrowsers~=0.8.0
|
15
14
|
pyoxipng~=9.1.0
|
16
|
-
python-telegram-bot~=22.
|
15
|
+
python-telegram-bot~=22.1
|
17
16
|
psutil~=7.0.0
|
18
17
|
PyMemoryEditor~=1.5.22
|
19
|
-
requests~=2.32.
|
18
|
+
requests~=2.32.4
|
20
19
|
rlottie_python~=1.3.7
|
21
20
|
signalstickers-client-fork-laggykiller~=3.3.0.post2
|
22
21
|
socksio~=1.0.0
|
23
|
-
telethon~=1.
|
22
|
+
telethon~=1.40.0
|
24
23
|
tqdm~=4.67.1
|
25
24
|
ttkbootstrap-fork-laggykiller~=1.5.1
|
26
25
|
websocket_client~=1.8.0
|
@@ -233,6 +233,7 @@ class CLI:
|
|
233
233
|
"telegram_telethon": args.download_telegram_telethon,
|
234
234
|
"kakao": args.download_kakao,
|
235
235
|
"band": args.download_band,
|
236
|
+
"ogq": args.download_ogq,
|
236
237
|
"viber": args.download_viber,
|
237
238
|
"discord": args.download_discord,
|
238
239
|
"discord_emoji": args.download_discord_emoji,
|
@@ -551,6 +552,8 @@ class CLI:
|
|
551
552
|
opt_cred.telethon_api_hash = telethon_api_hash
|
552
553
|
|
553
554
|
self.cb.msg("Telethon setup successful")
|
555
|
+
else:
|
556
|
+
self.cb.msg("Telethon setup failed")
|
554
557
|
|
555
558
|
if args.line_get_auth:
|
556
559
|
get_line_auth = GetLineAuth()
|
{sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/downloaders/download_line.py
RENAMED
@@ -77,7 +77,7 @@ class MetadataLine:
|
|
77
77
|
@staticmethod
|
78
78
|
def get_metadata_sticon(
|
79
79
|
pack_id: str, region: str
|
80
|
-
) -> Optional[Tuple[str, str, List[Dict[str, Any]], str, bool]]:
|
80
|
+
) -> Optional[Tuple[str, str, List[Dict[str, Any]], str, bool, bool]]:
|
81
81
|
pack_meta_r = requests.get(
|
82
82
|
f"https://stickershop.line-scdn.net/sticonshop/v1/{pack_id}/sticon/iphone/meta.json"
|
83
83
|
)
|
@@ -114,14 +114,15 @@ class MetadataLine:
|
|
114
114
|
files = pack_meta["orders"]
|
115
115
|
|
116
116
|
resource_type = pack_meta.get("sticonResourceType")
|
117
|
+
has_animation = True if resource_type == "ANIMATION" else False
|
117
118
|
has_sound = False
|
118
119
|
|
119
|
-
return title, author, files, resource_type, has_sound
|
120
|
+
return title, author, files, resource_type, has_animation, has_sound
|
120
121
|
|
121
122
|
@staticmethod
|
122
123
|
def get_metadata_stickers(
|
123
124
|
pack_id: str, region: str
|
124
|
-
) -> Optional[Tuple[str, str, List[Dict[str, Any]], str, bool]]:
|
125
|
+
) -> Optional[Tuple[str, str, List[Dict[str, Any]], str, bool, bool]]:
|
125
126
|
pack_meta_r = requests.get(
|
126
127
|
f"https://stickershop.line-scdn.net/stickershop/v1/product/{pack_id}/android/productInfo.meta"
|
127
128
|
)
|
@@ -153,9 +154,10 @@ class MetadataLine:
|
|
153
154
|
files = pack_meta["stickers"]
|
154
155
|
|
155
156
|
resource_type = pack_meta.get("stickerResourceType")
|
157
|
+
has_animation = pack_meta.get("hasAnimation")
|
156
158
|
has_sound = pack_meta.get("hasSound")
|
157
159
|
|
158
|
-
return title, author, files, resource_type, has_sound
|
160
|
+
return title, author, files, resource_type, has_animation, has_sound
|
159
161
|
|
160
162
|
|
161
163
|
class DownloadLine(DownloadBase):
|
@@ -207,6 +209,7 @@ class DownloadLine(DownloadBase):
|
|
207
209
|
if (
|
208
210
|
self.resource_type in ("ANIMATION", "ANIMATION_SOUND", "POPUP")
|
209
211
|
or self.has_sound is True
|
212
|
+
or self.has_animation is True
|
210
213
|
):
|
211
214
|
pack_url = f"https://stickershop.line-scdn.net/stickershop/v1/product/{self.pack_id}/iphone/stickerpack@2x.zip"
|
212
215
|
elif self.resource_type == "PER_STICKER_TEXT":
|
@@ -419,6 +422,7 @@ class DownloadLine(DownloadBase):
|
|
419
422
|
self.author,
|
420
423
|
self.pack_files,
|
421
424
|
self.resource_type,
|
425
|
+
self.has_animation,
|
422
426
|
self.has_sound,
|
423
427
|
) = metadata
|
424
428
|
else:
|
@@ -0,0 +1,79 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
from __future__ import annotations
|
3
|
+
|
4
|
+
from pathlib import Path
|
5
|
+
from typing import Any, List, Optional, Tuple
|
6
|
+
from urllib import parse
|
7
|
+
|
8
|
+
import requests
|
9
|
+
from bs4 import BeautifulSoup
|
10
|
+
|
11
|
+
from sticker_convert.downloaders.download_base import DownloadBase
|
12
|
+
from sticker_convert.job_option import CredOption, InputOption
|
13
|
+
from sticker_convert.utils.callback import CallbackProtocol, CallbackReturn
|
14
|
+
from sticker_convert.utils.files.metadata_handler import MetadataHandler
|
15
|
+
|
16
|
+
# Reference: https://github.com/star-39/moe-sticker-bot/issues/49
|
17
|
+
|
18
|
+
|
19
|
+
class DownloadOgq(DownloadBase):
|
20
|
+
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
21
|
+
super().__init__(*args, **kwargs)
|
22
|
+
self.headers = {"User-Agent": "Mozilla/5.0"}
|
23
|
+
|
24
|
+
def download_stickers_ogq(self) -> Tuple[int, int]:
|
25
|
+
url_parse = parse.urlparse(self.url)
|
26
|
+
if (
|
27
|
+
url_parse.netloc != "ogqmarket.naver.com"
|
28
|
+
or url_parse.path.startswith("/artworks/sticker/detail") is False
|
29
|
+
):
|
30
|
+
self.cb.put(f"Invalid url: {self.url}")
|
31
|
+
artwork_id = {
|
32
|
+
i.split("=")[0]: i.split("=")[1] for i in url_parse.query.split("&")
|
33
|
+
}["artworkId"]
|
34
|
+
|
35
|
+
html = requests.get(self.url, headers=self.headers).text
|
36
|
+
soup = BeautifulSoup(html, "html.parser")
|
37
|
+
|
38
|
+
author_tag = soup.select_one("div.info div.nickname span") # type: ignore
|
39
|
+
author = author_tag.text.strip() if author_tag else "OGQ"
|
40
|
+
title_tag = soup.select_one("div.header div div.title p") # type: ignore
|
41
|
+
title = title_tag.text.strip() if title_tag else artwork_id
|
42
|
+
|
43
|
+
seen: List[str] = []
|
44
|
+
imgs: List[str] = []
|
45
|
+
targets: List[Tuple[str, Path]] = []
|
46
|
+
n = 0
|
47
|
+
for img in soup.find_all("img", alt="sticker-detail-image-prevew"):
|
48
|
+
src = img.get("src")
|
49
|
+
if not src:
|
50
|
+
continue
|
51
|
+
src = src.split("?")[0]
|
52
|
+
if src in seen:
|
53
|
+
continue
|
54
|
+
seen.append(src)
|
55
|
+
imgs.append(src)
|
56
|
+
sticker_url = f"{src}?type=ma480_480"
|
57
|
+
sticker_url_parse = parse.urlparse(sticker_url)
|
58
|
+
ext = sticker_url_parse.path.split(".")[-1]
|
59
|
+
if sticker_url_parse.path.split("/")[-1].startswith("original_"):
|
60
|
+
path = self.out_dir / f"{n}.{ext}"
|
61
|
+
else:
|
62
|
+
path = self.out_dir / f"cover.{ext}"
|
63
|
+
targets.append((sticker_url, path))
|
64
|
+
n += 1
|
65
|
+
|
66
|
+
results = self.download_multiple_files(targets)
|
67
|
+
MetadataHandler.set_metadata(self.out_dir, title=title, author=author)
|
68
|
+
|
69
|
+
return len(results.values()), len(targets)
|
70
|
+
|
71
|
+
@staticmethod
|
72
|
+
def start(
|
73
|
+
opt_input: InputOption,
|
74
|
+
opt_cred: Optional[CredOption],
|
75
|
+
cb: CallbackProtocol,
|
76
|
+
cb_return: CallbackReturn,
|
77
|
+
) -> Tuple[int, int]:
|
78
|
+
downloader = DownloadOgq(opt_input, opt_cred, cb, cb_return)
|
79
|
+
return downloader.download_stickers_ogq()
|
@@ -609,7 +609,7 @@ class AdvancedCompressionWindow(BaseWindow):
|
|
609
609
|
)[1]
|
610
610
|
if color:
|
611
611
|
self.gui.bg_color_var.set(color.replace("#", "") + "00")
|
612
|
-
self.lift()
|
612
|
+
self.lift() # type: ignore
|
613
613
|
self.attributes("-topmost", True) # type: ignore
|
614
614
|
self.attributes("-topmost", False) # type: ignore
|
615
615
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env python3
|
2
|
+
import platform
|
2
3
|
from functools import partial
|
3
4
|
from threading import Thread
|
4
5
|
from typing import Any, Optional
|
@@ -51,6 +52,20 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
51
52
|
justify="left",
|
52
53
|
anchor="w",
|
53
54
|
)
|
55
|
+
if platform.system() != "Darwin":
|
56
|
+
self.explanation1_4_lbl = Label(
|
57
|
+
self.frame_from_desktop,
|
58
|
+
text="Note: This will download ProcDump and read memory of KakaoTalk Desktop",
|
59
|
+
justify="left",
|
60
|
+
anchor="w",
|
61
|
+
)
|
62
|
+
else:
|
63
|
+
self.explanation1_4_lbl = Label(
|
64
|
+
self.frame_from_desktop,
|
65
|
+
text="Note: This will read memory of KakaoTalk Desktop",
|
66
|
+
justify="left",
|
67
|
+
anchor="w",
|
68
|
+
)
|
54
69
|
self.kakao_bin_path_lbl = Label(
|
55
70
|
self.frame_from_desktop,
|
56
71
|
text="Kakao app path (Optional):",
|
@@ -85,10 +100,13 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
85
100
|
self.explanation1_3_lbl.grid(
|
86
101
|
column=0, row=2, columnspan=2, sticky="w", padx=3, pady=3
|
87
102
|
)
|
88
|
-
self.
|
89
|
-
|
90
|
-
|
91
|
-
self.
|
103
|
+
self.explanation1_4_lbl.grid(
|
104
|
+
column=0, row=3, columnspan=2, sticky="w", padx=3, pady=3
|
105
|
+
)
|
106
|
+
self.kakao_bin_path_lbl.grid(column=0, row=4, sticky="w", padx=3, pady=3)
|
107
|
+
self.kakao_bin_path_entry.grid(column=1, row=4, sticky="w", padx=3, pady=3)
|
108
|
+
self.launch_desktop_btn.grid(column=0, row=5, columnspan=2, padx=3, pady=3)
|
109
|
+
self.get_auth_desktop_btn.grid(column=0, row=6, columnspan=2, padx=3, pady=3)
|
92
110
|
|
93
111
|
# Method 2 frame
|
94
112
|
self.explanation2_1_lbl = Label(
|
@@ -277,6 +295,8 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
277
295
|
|
278
296
|
def cb_from_desktop_thread(self, *_: Any) -> None:
|
279
297
|
self.gui.save_creds()
|
298
|
+
self.gui.cb_msg("Getting auth_token, this may take a minute...")
|
299
|
+
self.gui.cb_bar("indeterminate")
|
280
300
|
m = GetKakaoDesktopAuth(
|
281
301
|
cb_ask_str=self.cb_ask_str_kakao,
|
282
302
|
)
|
@@ -298,3 +318,4 @@ class KakaoGetAuthWindow(BaseWindow):
|
|
298
318
|
self.gui.highlight_fields()
|
299
319
|
|
300
320
|
self.cb_msg_block_kakao(msg)
|
321
|
+
self.gui.cb_bar("clear")
|
@@ -59,10 +59,25 @@ class ViberGetAuthWindow(BaseWindow):
|
|
59
59
|
justify="left",
|
60
60
|
anchor="w",
|
61
61
|
)
|
62
|
+
if platform.system() != "Darwin":
|
63
|
+
self.explanation_lbl3 = Label(
|
64
|
+
self.frame_info,
|
65
|
+
text="Note: This will download ProcDump and read memory of Viber Desktop",
|
66
|
+
justify="left",
|
67
|
+
anchor="w",
|
68
|
+
)
|
69
|
+
else:
|
70
|
+
self.explanation_lbl3 = Label(
|
71
|
+
self.frame_info,
|
72
|
+
text="Note: This will read memory of Viber Desktop",
|
73
|
+
justify="left",
|
74
|
+
anchor="w",
|
75
|
+
)
|
62
76
|
|
63
77
|
self.explanation_lbl0.grid(column=0, row=0, sticky="w", padx=3, pady=3)
|
64
78
|
self.explanation_lbl1.grid(column=0, row=1, sticky="w", padx=3, pady=3)
|
65
79
|
self.explanation_lbl2.grid(column=0, row=2, sticky="w", padx=3, pady=3)
|
80
|
+
self.explanation_lbl3.grid(column=0, row=3, sticky="w", padx=3, pady=3)
|
66
81
|
|
67
82
|
# Start button frame
|
68
83
|
self.launch_btn = Button(
|
@@ -16,6 +16,7 @@ from sticker_convert.downloaders.download_band import DownloadBand
|
|
16
16
|
from sticker_convert.downloaders.download_discord import DownloadDiscord
|
17
17
|
from sticker_convert.downloaders.download_kakao import DownloadKakao
|
18
18
|
from sticker_convert.downloaders.download_line import DownloadLine
|
19
|
+
from sticker_convert.downloaders.download_ogq import DownloadOgq
|
19
20
|
from sticker_convert.downloaders.download_signal import DownloadSignal
|
20
21
|
from sticker_convert.downloaders.download_telegram import DownloadTelegram
|
21
22
|
from sticker_convert.downloaders.download_viber import DownloadViber
|
@@ -570,6 +571,9 @@ class Job:
|
|
570
571
|
if self.opt_input.option == "band":
|
571
572
|
downloaders.append(DownloadBand.start)
|
572
573
|
|
574
|
+
if self.opt_input.option == "ogq":
|
575
|
+
downloaders.append(DownloadOgq.start)
|
576
|
+
|
573
577
|
if self.opt_input.option == "viber":
|
574
578
|
downloaders.append(DownloadViber.start)
|
575
579
|
|
{sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/compression.json
RENAMED
@@ -375,6 +375,53 @@
|
|
375
375
|
"quantize_method": "imagequant",
|
376
376
|
"default_emoji": "😀"
|
377
377
|
},
|
378
|
+
"ogq": {
|
379
|
+
"size_max": {
|
380
|
+
"img": 0,
|
381
|
+
"vid": 0
|
382
|
+
},
|
383
|
+
"format": {
|
384
|
+
"img": ".png",
|
385
|
+
"vid": ".gif"
|
386
|
+
},
|
387
|
+
"fps": {
|
388
|
+
"min": 1,
|
389
|
+
"max": 30,
|
390
|
+
"power": -0.5
|
391
|
+
},
|
392
|
+
"res": {
|
393
|
+
"w": {
|
394
|
+
"min": 480,
|
395
|
+
"max": 480
|
396
|
+
},
|
397
|
+
"h": {
|
398
|
+
"min": 480,
|
399
|
+
"max": 480
|
400
|
+
},
|
401
|
+
"power": 3
|
402
|
+
},
|
403
|
+
"quality": {
|
404
|
+
"min": 10,
|
405
|
+
"max": 95,
|
406
|
+
"power": 5
|
407
|
+
},
|
408
|
+
"color": {
|
409
|
+
"min": 32,
|
410
|
+
"max": 257,
|
411
|
+
"power": 3
|
412
|
+
},
|
413
|
+
"duration": {
|
414
|
+
"min": 83,
|
415
|
+
"max": 4000
|
416
|
+
},
|
417
|
+
"padding_percent": 0,
|
418
|
+
"bg_color": "",
|
419
|
+
"steps": 16,
|
420
|
+
"fake_vid": false,
|
421
|
+
"scale_filter": "bicubic",
|
422
|
+
"quantize_method": "imagequant",
|
423
|
+
"default_emoji": "😀"
|
424
|
+
},
|
378
425
|
"viber": {
|
379
426
|
"size_max": {
|
380
427
|
"img": 0,
|
@@ -64,7 +64,7 @@
|
|
64
64
|
"telethon_setup": "Setup Telethon",
|
65
65
|
"kakao_auth_token": "Set Kakao auth_token. Required for downloading animated stickers from https://e.kakao.com/t/xxxxx",
|
66
66
|
"kakao_get_auth": "Generate Kakao auth_token by simulating login. Kakao username, password, country code and phone number are also required.",
|
67
|
-
"kakao_get_auth_desktop": "Get Kakao auth_token from Kakao Desktop application
|
67
|
+
"kakao_get_auth_desktop": "Get Kakao auth_token from Kakao Desktop application.",
|
68
68
|
"kakao_bin_path": "Set Kakao Desktop application path for launching and getting auth_token.\nUseful for portable installation.",
|
69
69
|
"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.",
|
70
70
|
"kakao_password": "Set Kakao password (Password of Kakao account).\nRequired for generating Kakao auth_token.",
|
{sticker_convert-2.13.0 → sticker_convert-2.13.2.0}/src/sticker_convert/resources/input.json
RENAMED
@@ -69,6 +69,16 @@
|
|
69
69
|
"author": false
|
70
70
|
}
|
71
71
|
},
|
72
|
+
"ogq": {
|
73
|
+
"full_name": "Download from OGQ",
|
74
|
+
"help": "Download OGQ stickers from a URL / ID as input",
|
75
|
+
"example": "Example: https://ogqmarket.naver.com/artworks/sticker/detail?artworkId=xxxxx",
|
76
|
+
"address_lbls": "URL address",
|
77
|
+
"metadata_provides": {
|
78
|
+
"title": true,
|
79
|
+
"author": false
|
80
|
+
}
|
81
|
+
},
|
72
82
|
"viber": {
|
73
83
|
"full_name": "Download from Viber",
|
74
84
|
"help": "Download viber stickers from a URL as input",
|