sticker-convert 2.13.3.0__py3-none-any.whl → 2.17.0.0__py3-none-any.whl

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.
Files changed (93) hide show
  1. sticker_convert/__main__.py +24 -27
  2. sticker_convert/auth/__init__.py +0 -0
  3. sticker_convert/auth/auth_base.py +19 -0
  4. sticker_convert/{utils/auth/get_discord_auth.py → auth/auth_discord.py} +149 -118
  5. sticker_convert/{utils/auth/get_kakao_auth.py → auth/auth_kakao_android_login.py} +331 -330
  6. sticker_convert/auth/auth_kakao_desktop_login.py +327 -0
  7. sticker_convert/{utils/auth/get_kakao_desktop_auth.py → auth/auth_kakao_desktop_memdump.py} +281 -263
  8. sticker_convert/{utils/auth/get_line_auth.py → auth/auth_line.py} +98 -80
  9. sticker_convert/{utils/auth/get_signal_auth.py → auth/auth_signal.py} +139 -135
  10. sticker_convert/auth/auth_telethon.py +161 -0
  11. sticker_convert/{utils/auth/get_viber_auth.py → auth/auth_viber.py} +250 -235
  12. sticker_convert/{utils/auth → auth}/telegram_api.py +736 -675
  13. sticker_convert/cli.py +623 -608
  14. sticker_convert/converter.py +1093 -1084
  15. sticker_convert/definitions.py +4 -0
  16. sticker_convert/downloaders/download_band.py +111 -110
  17. sticker_convert/downloaders/download_base.py +171 -166
  18. sticker_convert/downloaders/download_discord.py +92 -91
  19. sticker_convert/downloaders/download_kakao.py +417 -404
  20. sticker_convert/downloaders/download_line.py +484 -475
  21. sticker_convert/downloaders/download_ogq.py +80 -79
  22. sticker_convert/downloaders/download_signal.py +108 -105
  23. sticker_convert/downloaders/download_telegram.py +56 -55
  24. sticker_convert/downloaders/download_viber.py +121 -120
  25. sticker_convert/gui.py +788 -873
  26. sticker_convert/gui_components/frames/comp_frame.py +180 -166
  27. sticker_convert/gui_components/frames/config_frame.py +156 -113
  28. sticker_convert/gui_components/frames/control_frame.py +32 -30
  29. sticker_convert/gui_components/frames/cred_frame.py +232 -233
  30. sticker_convert/gui_components/frames/input_frame.py +139 -137
  31. sticker_convert/gui_components/frames/output_frame.py +112 -110
  32. sticker_convert/gui_components/frames/right_clicker.py +25 -23
  33. sticker_convert/gui_components/windows/advanced_compression_window.py +757 -757
  34. sticker_convert/gui_components/windows/base_window.py +7 -2
  35. sticker_convert/gui_components/windows/discord_get_auth_window.py +79 -82
  36. sticker_convert/gui_components/windows/kakao_get_auth_window.py +511 -321
  37. sticker_convert/gui_components/windows/line_get_auth_window.py +94 -102
  38. sticker_convert/gui_components/windows/signal_get_auth_window.py +84 -89
  39. sticker_convert/gui_components/windows/viber_get_auth_window.py +168 -168
  40. sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +3 -3
  41. sticker_convert/ios-message-stickers-template/README.md +10 -10
  42. sticker_convert/ios-message-stickers-template/stickers/Info.plist +43 -43
  43. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +31 -31
  44. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +6 -6
  45. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +20 -20
  46. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +9 -9
  47. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +9 -9
  48. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +9 -9
  49. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +91 -91
  50. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +364 -364
  51. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -7
  52. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -8
  53. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +14 -14
  54. sticker_convert/job.py +166 -130
  55. sticker_convert/job_option.py +1 -0
  56. sticker_convert/locales/en_US/LC_MESSAGES/base.mo +0 -0
  57. sticker_convert/locales/ja_JP/LC_MESSAGES/base.mo +0 -0
  58. sticker_convert/locales/zh_CN/LC_MESSAGES/base.mo +0 -0
  59. sticker_convert/locales/zh_TW/LC_MESSAGES/base.mo +0 -0
  60. sticker_convert/py.typed +0 -0
  61. sticker_convert/resources/NotoColorEmoji.ttf +0 -0
  62. sticker_convert/resources/help.ja_JP.json +88 -0
  63. sticker_convert/resources/help.json +10 -7
  64. sticker_convert/resources/help.zh_CN.json +88 -0
  65. sticker_convert/resources/help.zh_TW.json +88 -0
  66. sticker_convert/resources/input.ja_JP.json +74 -0
  67. sticker_convert/resources/input.json +121 -121
  68. sticker_convert/resources/input.zh_CN.json +74 -0
  69. sticker_convert/resources/input.zh_TW.json +74 -0
  70. sticker_convert/resources/output.ja_JP.json +38 -0
  71. sticker_convert/resources/output.zh_CN.json +38 -0
  72. sticker_convert/resources/output.zh_TW.json +38 -0
  73. sticker_convert/uploaders/compress_wastickers.py +186 -177
  74. sticker_convert/uploaders/upload_base.py +44 -35
  75. sticker_convert/uploaders/upload_signal.py +218 -203
  76. sticker_convert/uploaders/upload_telegram.py +353 -338
  77. sticker_convert/uploaders/upload_viber.py +178 -169
  78. sticker_convert/uploaders/xcode_imessage.py +295 -286
  79. sticker_convert/utils/callback.py +238 -6
  80. sticker_convert/utils/emoji.py +16 -4
  81. sticker_convert/utils/files/json_resources_loader.py +24 -19
  82. sticker_convert/utils/files/metadata_handler.py +3 -3
  83. sticker_convert/utils/translate.py +108 -0
  84. sticker_convert/utils/url_detect.py +40 -37
  85. sticker_convert/version.py +1 -1
  86. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/METADATA +89 -74
  87. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/RECORD +91 -74
  88. sticker_convert/utils/auth/telethon_setup.py +0 -97
  89. sticker_convert/utils/singletons.py +0 -18
  90. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/WHEEL +0 -0
  91. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/entry_points.txt +0 -0
  92. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/licenses/LICENSE +0 -0
  93. {sticker_convert-2.13.3.0.dist-info → sticker_convert-2.17.0.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
  import platform
3
- from typing import TYPE_CHECKING, Tuple
3
+ from typing import TYPE_CHECKING, Optional, Tuple
4
4
 
5
5
  from ttkbootstrap import Toplevel # type: ignore
6
6
 
@@ -11,10 +11,15 @@ if TYPE_CHECKING:
11
11
 
12
12
 
13
13
  class BaseWindow(Toplevel):
14
- def __init__(self, gui: "GUI") -> None:
14
+ def __init__(self, gui: "GUI", parent: Optional[Toplevel] = None) -> None:
15
15
  super().__init__(alpha=0) # type: ignore
16
16
  self.gui = gui
17
17
 
18
+ if parent is None:
19
+ self.parent = gui
20
+ else:
21
+ self.parent = parent
22
+
18
23
  GUIUtils.set_icon(self)
19
24
 
20
25
  self.mousewheel: Tuple[str, ...]
@@ -1,82 +1,79 @@
1
- #!/usr/bin/env python3
2
- from functools import partial
3
- from threading import Thread
4
- from typing import Any
5
-
6
- from ttkbootstrap import Button, Frame, Label # type: ignore
7
-
8
- from sticker_convert.gui_components.gui_utils import GUIUtils
9
- from sticker_convert.gui_components.windows.base_window import BaseWindow
10
- from sticker_convert.utils.auth.get_discord_auth import GetDiscordAuth
11
-
12
-
13
- class DiscordGetAuthWindow(BaseWindow):
14
- def __init__(self, *args: Any, **kwargs: Any) -> None:
15
- super(DiscordGetAuthWindow, self).__init__(*args, **kwargs)
16
-
17
- self.title("Get Discord token")
18
-
19
- self.cb_msg_block_discord = partial(self.gui.cb_msg_block, parent=self)
20
- self.cb_ask_str_discord = partial(self.gui.cb_ask_str, parent=self)
21
-
22
- self.frame_info = Frame(self.scrollable_frame)
23
- self.frame_start_btn = Frame(self.scrollable_frame)
24
-
25
- self.frame_info.grid(column=0, row=0, sticky="news", padx=3, pady=3)
26
- self.frame_start_btn.grid(column=0, row=1, sticky="news", padx=3, pady=3)
27
-
28
- # Info frame
29
- self.explanation1_lbl = Label(
30
- self.frame_info,
31
- text="Please install Discord Desktop or Chrome",
32
- justify="left",
33
- anchor="w",
34
- )
35
- self.explanation2_lbl = Label(
36
- self.frame_info,
37
- text="After installation, you need to login to Discord",
38
- justify="left",
39
- anchor="w",
40
- )
41
- self.explanation3_lbl = Label(
42
- self.frame_info,
43
- text="Token will be automatically fetched",
44
- justify="left",
45
- anchor="w",
46
- )
47
-
48
- self.explanation1_lbl.grid(
49
- column=0, row=0, columnspan=3, sticky="w", padx=3, pady=3
50
- )
51
- self.explanation2_lbl.grid(
52
- column=0, row=1, columnspan=3, sticky="w", padx=3, pady=3
53
- )
54
- self.explanation3_lbl.grid(
55
- column=0, row=2, columnspan=3, sticky="w", padx=3, pady=3
56
- )
57
-
58
- # Start button frame
59
- self.login_btn = Button(
60
- self.frame_start_btn, text="Get token", command=self.cb_login
61
- )
62
-
63
- self.login_btn.pack()
64
-
65
- GUIUtils.finalize_window(self)
66
-
67
- def cb_login(self) -> None:
68
- Thread(target=self.cb_login_thread, daemon=True).start()
69
-
70
- def cb_login_thread(self, *args: Any) -> None:
71
- m = GetDiscordAuth(cb_msg=self.gui.cb_msg)
72
- discord_token, msg = m.get_cred()
73
- if discord_token:
74
- if not self.gui.creds.get("discord"):
75
- self.gui.creds["discord"] = {}
76
- self.gui.creds["discord"]["token"] = discord_token
77
- self.gui.discord_token_var.set(discord_token)
78
-
79
- self.gui.save_creds()
80
- self.gui.highlight_fields()
81
-
82
- self.cb_msg_block_discord(msg)
1
+ #!/usr/bin/env python3
2
+ from threading import Thread
3
+ from typing import Any
4
+
5
+ from ttkbootstrap import Button, Frame, Label # type: ignore
6
+
7
+ from sticker_convert.auth.auth_discord import AuthDiscord
8
+ from sticker_convert.gui_components.gui_utils import GUIUtils
9
+ from sticker_convert.gui_components.windows.base_window import BaseWindow
10
+ from sticker_convert.utils.translate import I
11
+
12
+
13
+ class DiscordGetAuthWindow(BaseWindow):
14
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
15
+ super(DiscordGetAuthWindow, self).__init__(*args, **kwargs)
16
+
17
+ self.title(I("Get Discord token"))
18
+
19
+ self.frame_info = Frame(self.scrollable_frame)
20
+ self.frame_start_btn = Frame(self.scrollable_frame)
21
+
22
+ self.frame_info.grid(column=0, row=0, sticky="news", padx=3, pady=3)
23
+ self.frame_start_btn.grid(column=0, row=1, sticky="news", padx=3, pady=3)
24
+
25
+ # Info frame
26
+ self.explanation1_lbl = Label(
27
+ self.frame_info,
28
+ text=I("Please install Discord Desktop or Chrome"),
29
+ justify="left",
30
+ anchor="w",
31
+ )
32
+ self.explanation2_lbl = Label(
33
+ self.frame_info,
34
+ text=I("After installation, you need to login to Discord"),
35
+ justify="left",
36
+ anchor="w",
37
+ )
38
+ self.explanation3_lbl = Label(
39
+ self.frame_info,
40
+ text=I("Token will be automatically fetched"),
41
+ justify="left",
42
+ anchor="w",
43
+ )
44
+
45
+ self.explanation1_lbl.grid(
46
+ column=0, row=0, columnspan=3, sticky="w", padx=3, pady=3
47
+ )
48
+ self.explanation2_lbl.grid(
49
+ column=0, row=1, columnspan=3, sticky="w", padx=3, pady=3
50
+ )
51
+ self.explanation3_lbl.grid(
52
+ column=0, row=2, columnspan=3, sticky="w", padx=3, pady=3
53
+ )
54
+
55
+ # Start button frame
56
+ self.login_btn = Button(
57
+ self.frame_start_btn, text=I("Get token"), command=self.cb_login
58
+ )
59
+
60
+ self.login_btn.pack()
61
+
62
+ GUIUtils.finalize_window(self)
63
+
64
+ def cb_login(self) -> None:
65
+ Thread(target=self.cb_login_thread, daemon=True).start()
66
+
67
+ def cb_login_thread(self, *args: Any) -> None:
68
+ m = AuthDiscord(self.gui.get_opt_cred(), self.gui.cb)
69
+ discord_token, msg = m.get_cred()
70
+ if discord_token:
71
+ if not self.gui.creds.get("discord"):
72
+ self.gui.creds["discord"] = {}
73
+ self.gui.creds["discord"]["token"] = discord_token
74
+ self.gui.discord_token_var.set(discord_token)
75
+
76
+ self.gui.save_creds()
77
+ self.gui.highlight_fields()
78
+
79
+ self.gui.cb.put(("msg_block", None, {"message": msg, "parent": self}))