sticker-convert 2.7.5__tar.gz → 2.7.6__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.7.5/src/sticker_convert.egg-info → sticker-convert-2.7.6}/PKG-INFO +1 -1
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/cli.py +2 -2
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui.py +3 -4
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/frames/config_frame.py +1 -1
- sticker-convert-2.7.6/src/sticker_convert/gui_components/frames/progress_frame.py +129 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/windows/signal_get_auth_window.py +11 -5
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/job.py +10 -11
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/upload_telegram.py +42 -26
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/auth/get_signal_auth.py +8 -2
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/callback.py +4 -9
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/version.py +1 -1
- {sticker-convert-2.7.5 → sticker-convert-2.7.6/src/sticker_convert.egg-info}/PKG-INFO +1 -1
- sticker-convert-2.7.5/src/sticker_convert/gui_components/frames/progress_frame.py +0 -97
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/LICENSE +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/MANIFEST.in +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/README.md +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/pyproject.toml +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/requirements.txt +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/setup.cfg +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/__init__.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/__main__.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/converter.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/definitions.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/__init__.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/download_base.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/download_kakao.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/download_line.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/download_signal.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/download_telegram.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/__init__.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/frames/__init__.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/frames/comp_frame.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/frames/control_frame.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/frames/cred_frame.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/frames/input_frame.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/frames/output_frame.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/frames/right_clicker.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/gui_utils.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/windows/__init__.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/windows/advanced_compression_window.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/windows/base_window.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/windows/kakao_get_auth_window.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/windows/line_get_auth_window.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/.gitignore +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/README.md +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers/Info.plist +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/App-Store-1024x1024pt.png +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@2x.png +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@3x.png +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@2x.png +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@3x.png +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/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.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcuserdata/niklaspeterson.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/job_option.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/NotoColorEmoji.ttf +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/appicon.icns +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/appicon.ico +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/appicon.png +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/compression.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/emoji.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/help.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/input.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/output.json +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/__init__.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/compress_wastickers.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/upload_base.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/upload_signal.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/xcode_imessage.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/auth/get_kakao_auth.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/auth/get_line_auth.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/files/cache_store.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/files/json_manager.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/files/json_resources_loader.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/files/metadata_handler.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/files/run_bin.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/files/sanitize_filename.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/media/apple_png_normalize.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/media/codec_info.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/media/decrypt_kakao.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/media/format_verify.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/url_detect.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert.egg-info/SOURCES.txt +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert.egg-info/dependency_links.txt +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert.egg-info/entry_points.txt +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert.egg-info/requires.txt +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert.egg-info/top_level.txt +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/tests/test_compression.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/tests/test_download.py +0 -0
- {sticker-convert-2.7.5 → sticker-convert-2.7.6}/tests/test_export.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.7.
|
3
|
+
Version: 2.7.6
|
4
4
|
Summary: Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, iMessage. Written in Python.
|
5
5
|
Author-email: laggykiller <chaudominic2@gmail.com>
|
6
6
|
Maintainer-email: laggykiller <chaudominic2@gmail.com>
|
@@ -135,7 +135,7 @@ class CLI:
|
|
135
135
|
continue
|
136
136
|
parser_comp.add_argument(
|
137
137
|
f'--{k.replace("_", "-")}',
|
138
|
-
**keyword_args,
|
138
|
+
**keyword_args,
|
139
139
|
dest=k,
|
140
140
|
help=v,
|
141
141
|
)
|
@@ -154,7 +154,7 @@ class CLI:
|
|
154
154
|
keyword_args = {"action": "store_true"}
|
155
155
|
parser_cred.add_argument(
|
156
156
|
f'--{k.replace("_", "-")}',
|
157
|
-
**keyword_args,
|
157
|
+
**keyword_args,
|
158
158
|
dest=k,
|
159
159
|
help=v,
|
160
160
|
)
|
@@ -550,9 +550,8 @@ class GUI(Window):
|
|
550
550
|
|
551
551
|
def cancel_job(self) -> None:
|
552
552
|
if self.job:
|
553
|
-
|
554
|
-
self.job.cancel()
|
555
|
-
self.cb_bar(set_progress_mode="clear")
|
553
|
+
# Need to start new thread or else GUI may freeze
|
554
|
+
Thread(target=self.job.cancel, daemon=True).start()
|
556
555
|
|
557
556
|
def set_inputs(self, state: str) -> None:
|
558
557
|
# state: 'normal', 'disabled'
|
@@ -639,7 +638,7 @@ class GUI(Window):
|
|
639
638
|
*args: Any,
|
640
639
|
set_progress_mode: Optional[str] = None,
|
641
640
|
steps: int = 0,
|
642
|
-
update_bar:
|
641
|
+
update_bar: int = 0,
|
643
642
|
**kwargs: Any,
|
644
643
|
) -> None:
|
645
644
|
with self.bar_lock:
|
@@ -42,7 +42,7 @@ class ConfigFrame(LabelFrame):
|
|
42
42
|
)
|
43
43
|
|
44
44
|
self.settings_restore_default_lbl = Label(
|
45
|
-
self, text="
|
45
|
+
self, text="Default config", width=18, justify="left", anchor="w"
|
46
46
|
)
|
47
47
|
self.settings_restore_default_btn = Button(
|
48
48
|
self,
|
@@ -0,0 +1,129 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
from typing import TYPE_CHECKING, Any, Optional
|
3
|
+
|
4
|
+
from tqdm import tqdm
|
5
|
+
from ttkbootstrap import LabelFrame, Progressbar # type: ignore
|
6
|
+
from ttkbootstrap.scrolled import ScrolledText # type: ignore
|
7
|
+
|
8
|
+
from sticker_convert.gui_components.frames.right_clicker import RightClicker
|
9
|
+
|
10
|
+
if TYPE_CHECKING:
|
11
|
+
from sticker_convert.gui import GUI # type: ignore
|
12
|
+
|
13
|
+
|
14
|
+
class ProgressFrame(LabelFrame):
|
15
|
+
progress_bar_cli = None
|
16
|
+
progress_bar_steps = 0
|
17
|
+
auto_scroll = True
|
18
|
+
msg_cls = False
|
19
|
+
msg_buffer = ""
|
20
|
+
bar_mode_changed = False
|
21
|
+
bar_mode = "clear"
|
22
|
+
bar_updates = 0
|
23
|
+
bar_steps = 0
|
24
|
+
|
25
|
+
def __init__(self, gui: "GUI", *args: Any, **kwargs: Any) -> None:
|
26
|
+
self.gui = gui
|
27
|
+
super().__init__(*args, **kwargs) # type: ignore
|
28
|
+
|
29
|
+
self.message_box = ScrolledText(self, height=15, wrap="word")
|
30
|
+
self.message_box._text.bind("<Button-3><ButtonRelease-3>", RightClicker) # type: ignore
|
31
|
+
self.message_box._text.config(state="disabled") # type: ignore
|
32
|
+
self.progress_bar = Progressbar(self, orient="horizontal", mode="determinate")
|
33
|
+
|
34
|
+
self.message_box.bind("<Enter>", self.cb_disable_autoscroll)
|
35
|
+
self.message_box.bind("<Leave>", self.cb_enable_autoscroll)
|
36
|
+
|
37
|
+
self.message_box.pack(expand=True, fill="x")
|
38
|
+
self.progress_bar.pack(expand=True, fill="x")
|
39
|
+
|
40
|
+
self.after(40, self.update_ui)
|
41
|
+
|
42
|
+
def update_progress_bar(
|
43
|
+
self,
|
44
|
+
set_progress_mode: Optional[str] = None,
|
45
|
+
steps: int = 0,
|
46
|
+
update_bar: int = 0,
|
47
|
+
) -> None:
|
48
|
+
if update_bar:
|
49
|
+
self.bar_updates += update_bar
|
50
|
+
elif set_progress_mode:
|
51
|
+
self.bar_mode = set_progress_mode
|
52
|
+
self.bar_steps = steps
|
53
|
+
self.bar_updates = 0
|
54
|
+
self.bar_mode_changed = True
|
55
|
+
|
56
|
+
def update_message_box(self, *args: Any, **kwargs: Any) -> None:
|
57
|
+
msg = kwargs.get("msg")
|
58
|
+
cls = kwargs.get("cls")
|
59
|
+
|
60
|
+
if not msg and len(args) == 1:
|
61
|
+
msg = str(args[0])
|
62
|
+
|
63
|
+
if cls:
|
64
|
+
self.msg_cls = True
|
65
|
+
self.msg_buffer = ""
|
66
|
+
|
67
|
+
if msg:
|
68
|
+
self.msg_buffer += msg + "\n"
|
69
|
+
|
70
|
+
def update_ui(self) -> None:
|
71
|
+
if self.msg_cls or self.msg_buffer:
|
72
|
+
self.message_box._text.config(state="normal") # type: ignore
|
73
|
+
|
74
|
+
if self.msg_cls:
|
75
|
+
self.message_box.delete(1.0, "end") # type: ignore
|
76
|
+
|
77
|
+
if self.msg_buffer:
|
78
|
+
msg = self.msg_buffer.strip()
|
79
|
+
if self.progress_bar_cli:
|
80
|
+
self.progress_bar_cli.write(msg)
|
81
|
+
else:
|
82
|
+
print(msg)
|
83
|
+
|
84
|
+
self.message_box.insert("end", msg + "\n") # type: ignore
|
85
|
+
|
86
|
+
if self.auto_scroll:
|
87
|
+
self.message_box._text.yview_moveto(1.0) # type: ignore
|
88
|
+
|
89
|
+
self.msg_cls = False
|
90
|
+
self.msg_buffer = ""
|
91
|
+
|
92
|
+
self.message_box._text.config(state="disabled") # type: ignore
|
93
|
+
|
94
|
+
if self.bar_mode_changed:
|
95
|
+
if self.bar_mode == "determinate":
|
96
|
+
self.progress_bar_cli = tqdm(total=self.bar_steps)
|
97
|
+
self.progress_bar.config(mode="determinate")
|
98
|
+
self.progress_bar_steps = self.bar_steps
|
99
|
+
self.progress_bar.stop()
|
100
|
+
elif self.progress_bar_cli:
|
101
|
+
self.progress_bar_cli.close()
|
102
|
+
self.progress_bar_cli = None
|
103
|
+
|
104
|
+
if self.bar_mode == "indeterminate":
|
105
|
+
self.progress_bar.config(mode="indeterminate")
|
106
|
+
self.progress_bar.start(50)
|
107
|
+
elif self.bar_mode == "clear":
|
108
|
+
self.progress_bar.config(mode="determinate")
|
109
|
+
self.progress_bar.stop()
|
110
|
+
|
111
|
+
self.progress_bar["value"] = 0
|
112
|
+
|
113
|
+
if self.bar_updates and self.progress_bar_cli:
|
114
|
+
self.progress_bar_cli.update(self.bar_updates)
|
115
|
+
self.progress_bar["value"] += (
|
116
|
+
100 / self.progress_bar_steps * self.bar_updates
|
117
|
+
)
|
118
|
+
self.update_progress_bar(update_bar=self.bar_updates)
|
119
|
+
|
120
|
+
self.bar_mode_changed = False
|
121
|
+
self.bar_updates = 0
|
122
|
+
|
123
|
+
self.after(40, self.update_ui)
|
124
|
+
|
125
|
+
def cb_disable_autoscroll(self, *_: Any) -> None:
|
126
|
+
self.auto_scroll = False
|
127
|
+
|
128
|
+
def cb_enable_autoscroll(self, *_: Any) -> None:
|
129
|
+
self.auto_scroll = True
|
@@ -41,15 +41,21 @@ class SignalGetAuthWindow(BaseWindow):
|
|
41
41
|
|
42
42
|
# Start button frame
|
43
43
|
self.launch_btn = Button(
|
44
|
-
self.frame_btns,
|
44
|
+
self.frame_btns,
|
45
|
+
text="Launch Signal Desktop",
|
46
|
+
command=self.cb_launch_signal,
|
47
|
+
bootstyle="secondary", # type: ignore
|
45
48
|
)
|
46
49
|
|
47
|
-
self.
|
48
|
-
self.frame_btns,
|
50
|
+
self.get_cred_btn = Button(
|
51
|
+
self.frame_btns,
|
52
|
+
text="Get uuid and password",
|
53
|
+
command=self.cb_get_cred,
|
54
|
+
bootstyle="default", # type: ignore
|
49
55
|
)
|
50
56
|
|
51
57
|
self.launch_btn.pack()
|
52
|
-
self.
|
58
|
+
self.get_cred_btn.pack()
|
53
59
|
|
54
60
|
# Config frame
|
55
61
|
self.setdir_lbl = Label(
|
@@ -78,7 +84,7 @@ class SignalGetAuthWindow(BaseWindow):
|
|
78
84
|
|
79
85
|
GUIUtils.finalize_window(self)
|
80
86
|
|
81
|
-
def
|
87
|
+
def cb_get_cred(self) -> None:
|
82
88
|
m = GetSignalAuth()
|
83
89
|
|
84
90
|
signal_bin_path = None
|
@@ -11,7 +11,7 @@ from multiprocessing.managers import ListProxy, SyncManager
|
|
11
11
|
from pathlib import Path
|
12
12
|
from queue import Queue
|
13
13
|
from threading import Thread
|
14
|
-
from typing import TYPE_CHECKING, Any, Callable, Dict, Generator,
|
14
|
+
from typing import TYPE_CHECKING, Any, Callable, Dict, Generator, List, Optional, Tuple
|
15
15
|
from urllib.parse import urlparse
|
16
16
|
|
17
17
|
from sticker_convert.converter import StickerConvert
|
@@ -99,7 +99,7 @@ class Executor:
|
|
99
99
|
elif action == "bar":
|
100
100
|
self.cb_bar(*args, **kwargs)
|
101
101
|
elif action == "update_bar":
|
102
|
-
self.cb_bar(update_bar=
|
102
|
+
self.cb_bar(update_bar=1)
|
103
103
|
elif action == "msg_block":
|
104
104
|
cb_return.set_response(self.cb_msg_block(*args, **kwargs))
|
105
105
|
elif action == "ask_bool":
|
@@ -143,6 +143,7 @@ class Executor:
|
|
143
143
|
e += traceback.format_exc()
|
144
144
|
e += "#####################"
|
145
145
|
cb_queue.put(e)
|
146
|
+
|
146
147
|
work_list.append(None)
|
147
148
|
|
148
149
|
def start_workers(self, processes: int = 1) -> None:
|
@@ -175,12 +176,11 @@ class Executor:
|
|
175
176
|
pass
|
176
177
|
|
177
178
|
self.results_queue.put(None)
|
178
|
-
self.work_list =
|
179
|
+
self.work_list[:] = []
|
179
180
|
self.processes.clear()
|
180
181
|
|
181
182
|
def kill_workers(self, *_: Any, **__: Any) -> None:
|
182
183
|
self.is_cancel_job.value = 1 # type: ignore
|
183
|
-
self.work_list = self.manager.list()
|
184
184
|
|
185
185
|
for process in self.processes:
|
186
186
|
if platform.system() == "Windows":
|
@@ -189,16 +189,17 @@ class Executor:
|
|
189
189
|
process.close()
|
190
190
|
process.join()
|
191
191
|
|
192
|
-
self.cleanup()
|
192
|
+
self.cleanup(killed=True)
|
193
193
|
|
194
|
-
def cleanup(self) -> None:
|
194
|
+
def cleanup(self, killed: bool = False) -> None:
|
195
|
+
if killed:
|
196
|
+
self.cb_queue.put("Job cancelled.")
|
197
|
+
self.cb_queue.put(("bar", None, {"set_progress_mode": "clear"}))
|
195
198
|
self.cb_queue.put(None)
|
196
199
|
self.cb_thread_instance.join()
|
197
|
-
self.work_list = self.manager.list()
|
198
200
|
|
199
201
|
def get_result(self) -> Generator[Any, None, None]:
|
200
|
-
|
201
|
-
yield from gen
|
202
|
+
yield from iter(self.results_queue.get, None)
|
202
203
|
|
203
204
|
def cb(
|
204
205
|
self,
|
@@ -268,14 +269,12 @@ class Job:
|
|
268
269
|
|
269
270
|
if self.executor.is_cancel_job.value == 1: # type: ignore
|
270
271
|
code = 2
|
271
|
-
self.executor.cb("Job cancelled.")
|
272
272
|
break
|
273
273
|
if not success:
|
274
274
|
code = 1
|
275
275
|
self.executor.cb("An error occured during this run.")
|
276
276
|
break
|
277
277
|
|
278
|
-
self.executor.cb("bar", kwargs={"set_progress_mode": "clear"})
|
279
278
|
self.executor.cleanup()
|
280
279
|
|
281
280
|
return code
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/upload_telegram.py
RENAMED
@@ -3,11 +3,11 @@ import copy
|
|
3
3
|
import re
|
4
4
|
from pathlib import Path
|
5
5
|
from queue import Queue
|
6
|
-
from typing import Any, Dict, List, Optional, Union, cast
|
6
|
+
from typing import Any, Dict, List, Optional, Tuple, Union, cast
|
7
7
|
|
8
8
|
import anyio
|
9
|
-
from telegram import
|
10
|
-
from telegram.error import TelegramError
|
9
|
+
from telegram import InputSticker, Sticker
|
10
|
+
from telegram.error import BadRequest, TelegramError
|
11
11
|
from telegram.ext import AIORateLimiter, ApplicationBuilder
|
12
12
|
|
13
13
|
from sticker_convert.converter import StickerConvert
|
@@ -128,7 +128,22 @@ class UploadTelegram(UploadBase):
|
|
128
128
|
|
129
129
|
if response is True:
|
130
130
|
self.cb.put(f"Deleting all stickers from pack {pack_short_name}")
|
131
|
-
|
131
|
+
try:
|
132
|
+
await bot.delete_sticker_set(pack_short_name)
|
133
|
+
except BadRequest as e:
|
134
|
+
self.cb.put(
|
135
|
+
f"Cannot delete sticker set {pack_short_name} due to {e}"
|
136
|
+
)
|
137
|
+
if str(e) == "Stickerpack_not_found":
|
138
|
+
self.cb.put(
|
139
|
+
"Hint: You might had deleted and recreated pack too quickly. Wait about 3 minutes and try again."
|
140
|
+
)
|
141
|
+
return None
|
142
|
+
except TelegramError as e:
|
143
|
+
self.cb.put(
|
144
|
+
f"Cannot delete sticker set {pack_short_name} due to {e}"
|
145
|
+
)
|
146
|
+
return None
|
132
147
|
sticker_set = None
|
133
148
|
else:
|
134
149
|
self.cb.put(f"Not deleting existing pack {pack_short_name}")
|
@@ -138,7 +153,7 @@ class UploadTelegram(UploadBase):
|
|
138
153
|
else:
|
139
154
|
sticker_type = Sticker.REGULAR
|
140
155
|
|
141
|
-
input_stickers: List[InputSticker] = []
|
156
|
+
input_stickers: List[Tuple[Path, InputSticker]] = []
|
142
157
|
sticker_format = None
|
143
158
|
cover_spec_choice = None
|
144
159
|
ext = None
|
@@ -190,7 +205,7 @@ class UploadTelegram(UploadBase):
|
|
190
205
|
sticker_bytes = cast(bytes, convert_result)
|
191
206
|
|
192
207
|
input_stickers.append(
|
193
|
-
InputSticker(sticker=sticker_bytes, emoji_list=emoji_list)
|
208
|
+
(src, InputSticker(sticker=sticker_bytes, emoji_list=emoji_list))
|
194
209
|
)
|
195
210
|
|
196
211
|
cover_path = MetadataHandler.get_cover(self.opt_output.dir)
|
@@ -208,9 +223,7 @@ class UploadTelegram(UploadBase):
|
|
208
223
|
self.cb_return,
|
209
224
|
)
|
210
225
|
|
211
|
-
base_num = 1
|
212
226
|
if sticker_set is None and sticker_format is not None:
|
213
|
-
init_stickers = input_stickers[:50]
|
214
227
|
if len(input_stickers) > 50:
|
215
228
|
amount_str = "first 50"
|
216
229
|
else:
|
@@ -224,35 +237,38 @@ class UploadTelegram(UploadBase):
|
|
224
237
|
user_id=self.opt_cred.telegram_userid,
|
225
238
|
name=pack_short_name,
|
226
239
|
title=pack_title,
|
227
|
-
stickers=
|
240
|
+
stickers=[a for _, a in input_stickers[:50]],
|
228
241
|
sticker_format=sticker_format,
|
229
242
|
sticker_type=sticker_type,
|
230
243
|
)
|
231
244
|
self.cb.put(finish_msg)
|
232
245
|
input_stickers = input_stickers[50:]
|
233
|
-
base_num = 51
|
234
246
|
except TelegramError as e:
|
235
247
|
self.cb.put(f"{error_msg} {e}")
|
236
248
|
return None
|
237
249
|
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
250
|
+
for src, sticker in input_stickers:
|
251
|
+
try:
|
252
|
+
# We could use tg.start_soon() here
|
253
|
+
# But this would disrupt the order of stickers
|
254
|
+
await bot.add_sticker_to_set(
|
255
|
+
user_id=self.opt_cred.telegram_userid,
|
256
|
+
name=pack_short_name,
|
257
|
+
sticker=sticker,
|
258
|
+
)
|
259
|
+
self.cb.put(f"Uploaded sticker {src} of {pack_short_name}")
|
260
|
+
except BadRequest as e:
|
261
|
+
self.cb.put(
|
262
|
+
f"Cannot upload sticker {src} of {pack_short_name} due to {e}"
|
263
|
+
)
|
264
|
+
if str(e) == "Stickerpack_not_found":
|
253
265
|
self.cb.put(
|
254
|
-
|
266
|
+
"Hint: You might had deleted and recreated pack too quickly. Wait about 3 minutes and try again."
|
255
267
|
)
|
268
|
+
except TelegramError as e:
|
269
|
+
self.cb.put(
|
270
|
+
f"Cannot upload sticker {src} of {pack_short_name} due to {e}"
|
271
|
+
)
|
256
272
|
|
257
273
|
if thumbnail_bytes is not None:
|
258
274
|
try:
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/auth/get_signal_auth.py
RENAMED
@@ -36,10 +36,16 @@ class GetSignalAuth:
|
|
36
36
|
"~/Library/Application Support/Signal Beta"
|
37
37
|
)
|
38
38
|
else:
|
39
|
-
|
39
|
+
prod_which = shutil.which("signal-desktop")
|
40
|
+
if prod_which is None:
|
40
41
|
signal_bin_path_prod = "signal-desktop"
|
41
|
-
|
42
|
+
else:
|
43
|
+
signal_bin_path_prod = prod_which
|
44
|
+
beta_which = shutil.which("signal-desktop-beta")
|
45
|
+
if beta_which is None:
|
42
46
|
signal_bin_path_beta = "signal-desktop-beta"
|
47
|
+
else:
|
48
|
+
signal_bin_path_beta = beta_which
|
43
49
|
signal_user_data_dir_prod = os.path.expanduser("~/.config/Signal")
|
44
50
|
signal_user_data_dir_beta = os.path.expanduser("~/.config/Signal Beta")
|
45
51
|
|
@@ -79,7 +79,6 @@ class Callback:
|
|
79
79
|
return
|
80
80
|
|
81
81
|
msg = kwargs.get("msg")
|
82
|
-
file = kwargs.get("file")
|
83
82
|
|
84
83
|
if not msg and len(args) == 1:
|
85
84
|
msg = str(args[0])
|
@@ -87,8 +86,6 @@ class Callback:
|
|
87
86
|
if msg:
|
88
87
|
if self.progress_bar:
|
89
88
|
self.progress_bar.write(msg)
|
90
|
-
elif file:
|
91
|
-
print(msg, file=file)
|
92
89
|
else:
|
93
90
|
print(msg)
|
94
91
|
|
@@ -96,19 +93,17 @@ class Callback:
|
|
96
93
|
self,
|
97
94
|
set_progress_mode: Optional[str] = None,
|
98
95
|
steps: int = 0,
|
99
|
-
update_bar:
|
96
|
+
update_bar: int = 0,
|
100
97
|
) -> None:
|
101
98
|
if self.silent:
|
102
99
|
return
|
103
100
|
|
104
101
|
if self.progress_bar:
|
105
102
|
if update_bar:
|
106
|
-
self.progress_bar.update()
|
107
|
-
elif set_progress_mode
|
103
|
+
self.progress_bar.update(update_bar)
|
104
|
+
elif set_progress_mode in ("indeterminate", "clear"):
|
108
105
|
self.progress_bar.close()
|
109
106
|
self.progress_bar = None
|
110
|
-
elif set_progress_mode == "clear":
|
111
|
-
self.progress_bar.reset()
|
112
107
|
elif set_progress_mode == "determinate":
|
113
108
|
self.progress_bar = tqdm(total=steps)
|
114
109
|
|
@@ -190,7 +185,7 @@ class Callback:
|
|
190
185
|
elif action == "bar":
|
191
186
|
self.bar(**kwargs)
|
192
187
|
elif action == "update_bar":
|
193
|
-
self.bar(update_bar=
|
188
|
+
self.bar(update_bar=1)
|
194
189
|
elif action == "msg_block":
|
195
190
|
return self.msg_block(*args, **kwargs)
|
196
191
|
elif action == "ask_bool":
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sticker-convert
|
3
|
-
Version: 2.7.
|
3
|
+
Version: 2.7.6
|
4
4
|
Summary: Convert (animated) stickers to/from WhatsApp, Telegram, Signal, Line, Kakao, iMessage. Written in Python.
|
5
5
|
Author-email: laggykiller <chaudominic2@gmail.com>
|
6
6
|
Maintainer-email: laggykiller <chaudominic2@gmail.com>
|
@@ -1,97 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python3
|
2
|
-
from typing import TYPE_CHECKING, Any, Optional
|
3
|
-
|
4
|
-
from tqdm import tqdm
|
5
|
-
from ttkbootstrap import LabelFrame, Progressbar # type: ignore
|
6
|
-
from ttkbootstrap.scrolled import ScrolledText # type: ignore
|
7
|
-
|
8
|
-
from sticker_convert.gui_components.frames.right_clicker import RightClicker
|
9
|
-
|
10
|
-
if TYPE_CHECKING:
|
11
|
-
from sticker_convert.gui import GUI # type: ignore
|
12
|
-
|
13
|
-
|
14
|
-
class ProgressFrame(LabelFrame):
|
15
|
-
progress_bar_cli = None
|
16
|
-
progress_bar_steps = 0
|
17
|
-
auto_scroll = True
|
18
|
-
|
19
|
-
def __init__(self, gui: "GUI", *args: Any, **kwargs: Any) -> None:
|
20
|
-
self.gui = gui
|
21
|
-
super().__init__(*args, **kwargs) # type: ignore
|
22
|
-
|
23
|
-
self.message_box = ScrolledText(self, height=15, wrap="word")
|
24
|
-
self.message_box._text.bind("<Button-3><ButtonRelease-3>", RightClicker) # type: ignore
|
25
|
-
self.message_box._text.config(state="disabled") # type: ignore
|
26
|
-
self.progress_bar = Progressbar(self, orient="horizontal", mode="determinate")
|
27
|
-
|
28
|
-
self.message_box.bind("<Enter>", self.cb_disable_autoscroll)
|
29
|
-
self.message_box.bind("<Leave>", self.cb_enable_autoscroll)
|
30
|
-
|
31
|
-
self.message_box.pack(expand=True, fill="x")
|
32
|
-
self.progress_bar.pack(expand=True, fill="x")
|
33
|
-
|
34
|
-
def update_progress_bar(
|
35
|
-
self,
|
36
|
-
set_progress_mode: Optional[str] = None,
|
37
|
-
steps: int = 0,
|
38
|
-
update_bar: bool = False,
|
39
|
-
) -> None:
|
40
|
-
if update_bar and self.progress_bar_cli:
|
41
|
-
self.progress_bar_cli.update()
|
42
|
-
self.progress_bar["value"] += 100 / self.progress_bar_steps
|
43
|
-
elif set_progress_mode == "determinate":
|
44
|
-
self.progress_bar_cli = tqdm(total=steps)
|
45
|
-
self.progress_bar.config(mode="determinate")
|
46
|
-
self.progress_bar_steps = steps
|
47
|
-
self.progress_bar.stop()
|
48
|
-
self.progress_bar["value"] = 0
|
49
|
-
elif set_progress_mode == "indeterminate":
|
50
|
-
if self.progress_bar_cli:
|
51
|
-
self.progress_bar_cli.close()
|
52
|
-
self.progress_bar_cli = None
|
53
|
-
self.progress_bar["value"] = 0
|
54
|
-
self.progress_bar.config(mode="indeterminate")
|
55
|
-
self.progress_bar.start(50)
|
56
|
-
elif set_progress_mode == "clear":
|
57
|
-
if self.progress_bar_cli:
|
58
|
-
self.progress_bar_cli.reset()
|
59
|
-
self.progress_bar.config(mode="determinate")
|
60
|
-
self.progress_bar.stop()
|
61
|
-
self.progress_bar["value"] = 0
|
62
|
-
|
63
|
-
def update_message_box(self, *args: Any, **kwargs: Any) -> None:
|
64
|
-
msg = kwargs.get("msg")
|
65
|
-
cls = kwargs.get("cls")
|
66
|
-
file = kwargs.get("file")
|
67
|
-
|
68
|
-
if not msg and len(args) == 1:
|
69
|
-
msg = str(args[0])
|
70
|
-
|
71
|
-
if msg:
|
72
|
-
if self.progress_bar_cli:
|
73
|
-
self.progress_bar_cli.write(msg)
|
74
|
-
elif file:
|
75
|
-
print(msg, file=file)
|
76
|
-
else:
|
77
|
-
print(msg)
|
78
|
-
msg += "\n"
|
79
|
-
|
80
|
-
self.message_box._text.config(state="normal") # type: ignore
|
81
|
-
|
82
|
-
if cls:
|
83
|
-
self.message_box.delete(1.0, "end") # type: ignore
|
84
|
-
|
85
|
-
if msg:
|
86
|
-
self.message_box.insert("end", msg) # type: ignore
|
87
|
-
|
88
|
-
if self.auto_scroll:
|
89
|
-
self.message_box._text.yview_moveto(1.0) # type: ignore
|
90
|
-
|
91
|
-
self.message_box._text.config(state="disabled") # type: ignore
|
92
|
-
|
93
|
-
def cb_disable_autoscroll(self, *_: Any) -> None:
|
94
|
-
self.auto_scroll = False
|
95
|
-
|
96
|
-
def cb_enable_autoscroll(self, *_: Any) -> None:
|
97
|
-
self.auto_scroll = True
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/download_base.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/download_kakao.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/download_line.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/download_signal.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/downloaders/download_telegram.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/gui_components/gui_utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/NotoColorEmoji.ttf
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/resources/compression.json
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/compress_wastickers.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/upload_base.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/upload_signal.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/uploaders/xcode_imessage.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/auth/get_kakao_auth.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/auth/get_line_auth.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/files/cache_store.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/files/json_manager.py
RENAMED
File without changes
|
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/files/metadata_handler.py
RENAMED
File without changes
|
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/files/sanitize_filename.py
RENAMED
File without changes
|
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/media/codec_info.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/media/decrypt_kakao.py
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert/utils/media/format_verify.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert.egg-info/dependency_links.txt
RENAMED
File without changes
|
{sticker-convert-2.7.5 → sticker-convert-2.7.6}/src/sticker_convert.egg-info/entry_points.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|