sticker-convert 2.8.12__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 (124) hide show
  1. sticker_convert/__main__.py +24 -24
  2. sticker_convert/auth/__init__.py +0 -0
  3. sticker_convert/auth/auth_base.py +19 -0
  4. sticker_convert/auth/auth_discord.py +149 -0
  5. sticker_convert/{utils/auth/get_kakao_auth.py → auth/auth_kakao_android_login.py} +331 -300
  6. sticker_convert/auth/auth_kakao_desktop_login.py +327 -0
  7. sticker_convert/auth/auth_kakao_desktop_memdump.py +281 -0
  8. sticker_convert/{utils/auth/get_line_auth.py → auth/auth_line.py} +98 -80
  9. sticker_convert/auth/auth_signal.py +139 -0
  10. sticker_convert/auth/auth_telethon.py +161 -0
  11. sticker_convert/auth/auth_viber.py +250 -0
  12. sticker_convert/auth/telegram_api.py +736 -0
  13. sticker_convert/cli.py +623 -509
  14. sticker_convert/converter.py +1093 -962
  15. sticker_convert/definitions.py +11 -0
  16. sticker_convert/downloaders/download_band.py +111 -0
  17. sticker_convert/downloaders/download_base.py +171 -130
  18. sticker_convert/downloaders/download_discord.py +92 -0
  19. sticker_convert/downloaders/download_kakao.py +417 -255
  20. sticker_convert/downloaders/download_line.py +484 -472
  21. sticker_convert/downloaders/download_ogq.py +80 -0
  22. sticker_convert/downloaders/download_signal.py +108 -92
  23. sticker_convert/downloaders/download_telegram.py +56 -130
  24. sticker_convert/downloaders/download_viber.py +121 -95
  25. sticker_convert/gui.py +788 -795
  26. sticker_convert/gui_components/frames/comp_frame.py +180 -165
  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 -162
  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 -715
  34. sticker_convert/gui_components/windows/base_window.py +7 -2
  35. sticker_convert/gui_components/windows/discord_get_auth_window.py +79 -0
  36. sticker_convert/gui_components/windows/kakao_get_auth_window.py +511 -186
  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 -135
  39. sticker_convert/gui_components/windows/viber_get_auth_window.py +168 -0
  40. sticker_convert/ios-message-stickers-template/.github/FUNDING.yml +3 -3
  41. sticker_convert/ios-message-stickers-template/.gitignore +0 -0
  42. sticker_convert/ios-message-stickers-template/README.md +10 -10
  43. sticker_convert/ios-message-stickers-template/stickers/Info.plist +43 -43
  44. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Info.plist +31 -31
  45. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Contents.json +6 -6
  46. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Contents.json +20 -20
  47. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Contents.json +9 -9
  48. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 1.sticker/Sticker 1.png +0 -0
  49. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Contents.json +9 -9
  50. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 2.sticker/Sticker 2.png +0 -0
  51. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Contents.json +9 -9
  52. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/Sticker Pack.stickerpack/Sticker 3.sticker/Sticker 3.png +0 -0
  53. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/App-Store-1024x1024pt.png +0 -0
  54. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Contents.json +91 -91
  55. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-App-Store-1024x768pt.png +0 -0
  56. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-67x50pt@2x.png +0 -0
  57. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPad-Pro-74x55pt@2x.png +0 -0
  58. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@2x.png +0 -0
  59. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages-iPhone-60x45pt@3x.png +0 -0
  60. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@2x.png +0 -0
  61. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages27x20pt@3x.png +0 -0
  62. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@2x.png +0 -0
  63. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/Messages32x24pt@3x.png +0 -0
  64. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPad-Settings-29pt@2x.png +0 -0
  65. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-Settings-29pt@3x.png +0 -0
  66. sticker_convert/ios-message-stickers-template/stickers StickerPackExtension/Stickers.xcstickers/iMessage App Icon.stickersiconset/iPhone-settings-29pt@2x.png +0 -0
  67. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.pbxproj +364 -364
  68. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -7
  69. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -8
  70. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/project.xcworkspace/xcuserdata/niklaspeterson.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  71. sticker_convert/ios-message-stickers-template/stickers.xcodeproj/xcuserdata/niklaspeterson.xcuserdatad/xcschemes/xcschememanagement.plist +14 -14
  72. sticker_convert/job.py +279 -179
  73. sticker_convert/job_option.py +15 -2
  74. sticker_convert/locales/en_US/LC_MESSAGES/base.mo +0 -0
  75. sticker_convert/locales/ja_JP/LC_MESSAGES/base.mo +0 -0
  76. sticker_convert/locales/zh_CN/LC_MESSAGES/base.mo +0 -0
  77. sticker_convert/locales/zh_TW/LC_MESSAGES/base.mo +0 -0
  78. sticker_convert/py.typed +0 -0
  79. sticker_convert/resources/NotoColorEmoji.ttf +0 -0
  80. sticker_convert/resources/compression.json +220 -16
  81. sticker_convert/resources/emoji.json +527 -77
  82. sticker_convert/resources/help.ja_JP.json +88 -0
  83. sticker_convert/resources/help.json +24 -10
  84. sticker_convert/resources/help.zh_CN.json +88 -0
  85. sticker_convert/resources/help.zh_TW.json +88 -0
  86. sticker_convert/resources/input.ja_JP.json +74 -0
  87. sticker_convert/resources/input.json +121 -71
  88. sticker_convert/resources/input.zh_CN.json +74 -0
  89. sticker_convert/resources/input.zh_TW.json +74 -0
  90. sticker_convert/resources/memdump_linux.sh +25 -0
  91. sticker_convert/resources/memdump_windows.ps1 +8 -0
  92. sticker_convert/resources/output.ja_JP.json +38 -0
  93. sticker_convert/resources/output.json +24 -0
  94. sticker_convert/resources/output.zh_CN.json +38 -0
  95. sticker_convert/resources/output.zh_TW.json +38 -0
  96. sticker_convert/uploaders/compress_wastickers.py +186 -156
  97. sticker_convert/uploaders/upload_base.py +44 -35
  98. sticker_convert/uploaders/upload_signal.py +218 -173
  99. sticker_convert/uploaders/upload_telegram.py +353 -388
  100. sticker_convert/uploaders/upload_viber.py +178 -0
  101. sticker_convert/uploaders/xcode_imessage.py +295 -285
  102. sticker_convert/utils/callback.py +238 -6
  103. sticker_convert/utils/chrome_remotedebug.py +219 -0
  104. sticker_convert/utils/chromiums/linux.py +52 -0
  105. sticker_convert/utils/chromiums/osx.py +68 -0
  106. sticker_convert/utils/chromiums/windows.py +45 -0
  107. sticker_convert/utils/emoji.py +28 -0
  108. sticker_convert/utils/files/json_resources_loader.py +24 -19
  109. sticker_convert/utils/files/metadata_handler.py +8 -7
  110. sticker_convert/utils/files/run_bin.py +1 -1
  111. sticker_convert/utils/media/codec_info.py +99 -67
  112. sticker_convert/utils/media/format_verify.py +33 -20
  113. sticker_convert/utils/process.py +231 -0
  114. sticker_convert/utils/translate.py +108 -0
  115. sticker_convert/utils/url_detect.py +40 -33
  116. sticker_convert/version.py +1 -1
  117. {sticker_convert-2.8.12.dist-info → sticker_convert-2.17.0.0.dist-info}/METADATA +189 -96
  118. sticker_convert-2.17.0.0.dist-info/RECORD +138 -0
  119. {sticker_convert-2.8.12.dist-info → sticker_convert-2.17.0.0.dist-info}/WHEEL +1 -1
  120. sticker_convert/utils/auth/get_signal_auth.py +0 -129
  121. sticker_convert-2.8.12.dist-info/RECORD +0 -101
  122. {sticker_convert-2.8.12.dist-info → sticker_convert-2.17.0.0.dist-info}/entry_points.txt +0 -0
  123. {sticker_convert-2.8.12.dist-info → sticker_convert-2.17.0.0.dist-info/licenses}/LICENSE +0 -0
  124. {sticker_convert-2.8.12.dist-info → sticker_convert-2.17.0.0.dist-info}/top_level.txt +0 -0
@@ -1,30 +1,32 @@
1
- #!/usr/bin/env python3
2
- from typing import TYPE_CHECKING, Any
3
-
4
- from ttkbootstrap import Button, Frame # type: ignore
5
-
6
- if TYPE_CHECKING:
7
- from sticker_convert.gui import GUI
8
-
9
-
10
- class ControlFrame(Frame):
11
- def __init__(self, gui: "GUI", *args: Any, **kwargs: Any) -> None:
12
- self.gui = gui
13
- super().__init__(*args, **kwargs)
14
-
15
- self.start_btn = Button(
16
- self,
17
- text="Start",
18
- command=self.cb_start_btn,
19
- bootstyle="default", # type: ignore
20
- )
21
-
22
- self.start_btn.pack(expand=True, fill="x")
23
-
24
- def cb_start_btn(self, *args: Any, **kwargs: Any) -> None:
25
- if self.gui.job:
26
- response = self.gui.cb_ask_bool("Cancel job?")
27
- if response is True:
28
- self.gui.cancel_job()
29
- else:
30
- self.gui.start_job()
1
+ #!/usr/bin/env python3
2
+ from typing import TYPE_CHECKING, Any
3
+
4
+ from ttkbootstrap import Button, Frame # type: ignore
5
+
6
+ from sticker_convert.utils.translate import I
7
+
8
+ if TYPE_CHECKING:
9
+ from sticker_convert.gui import GUI
10
+
11
+
12
+ class ControlFrame(Frame):
13
+ def __init__(self, gui: "GUI", *args: Any, **kwargs: Any) -> None:
14
+ self.gui = gui
15
+ super().__init__(*args, **kwargs)
16
+
17
+ self.start_btn = Button(
18
+ self,
19
+ text=I("Start"),
20
+ command=self.cb_start_btn,
21
+ bootstyle="default", # type: ignore
22
+ )
23
+
24
+ self.start_btn.pack(expand=True, fill="x")
25
+
26
+ def cb_start_btn(self, *args: Any, **kwargs: Any) -> None:
27
+ if self.gui.job:
28
+ response = self.gui.cb.ask_bool(I("Cancel job?"))
29
+ if response is True:
30
+ self.gui.cancel_job()
31
+ else:
32
+ self.gui.start_job()
@@ -1,162 +1,232 @@
1
- #!/usr/bin/env python3
2
- import webbrowser
3
- from typing import TYPE_CHECKING, Any
4
-
5
- from ttkbootstrap import Button, Entry, Label, LabelFrame # type: ignore
6
-
7
- from sticker_convert.gui_components.frames.right_clicker import RightClicker
8
- from sticker_convert.gui_components.windows.kakao_get_auth_window import KakaoGetAuthWindow
9
- from sticker_convert.gui_components.windows.line_get_auth_window import LineGetAuthWindow
10
- from sticker_convert.gui_components.windows.signal_get_auth_window import SignalGetAuthWindow
11
-
12
- if TYPE_CHECKING:
13
- from sticker_convert.gui import GUI # type: ignore
14
-
15
-
16
- class CredFrame(LabelFrame):
17
- def __init__(self, gui: "GUI", *args: Any, **kwargs: Any) -> None:
18
- self.gui = gui
19
- super().__init__(*args, **kwargs)
20
-
21
- self.grid_columnconfigure(1, weight=1)
22
-
23
- self.signal_uuid_lbl = Label(
24
- self, text="Signal uuid", width=18, justify="left", anchor="w"
25
- )
26
- self.signal_uuid_entry = Entry(
27
- self,
28
- textvariable=self.gui.signal_uuid_var,
29
- width=50,
30
- validate="focusout",
31
- validatecommand=self.gui.highlight_fields,
32
- )
33
- self.signal_uuid_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
34
-
35
- self.signal_password_lbl = Label(
36
- self, text="Signal password", justify="left", anchor="w"
37
- )
38
- self.signal_password_entry = Entry(
39
- self,
40
- textvariable=self.gui.signal_password_var,
41
- width=50,
42
- validate="focusout",
43
- validatecommand=self.gui.highlight_fields,
44
- )
45
- self.signal_password_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
46
-
47
- self.signal_get_auth_btn = Button(
48
- self,
49
- text="Generate",
50
- command=self.cb_signal_get_auth,
51
- bootstyle="secondary", # type: ignore
52
- )
53
-
54
- self.telegram_token_lbl = Label(
55
- self, text="Telegram token", justify="left", anchor="w"
56
- )
57
- self.telegram_token_entry = Entry(
58
- self,
59
- textvariable=self.gui.telegram_token_var,
60
- width=50,
61
- validate="focusout",
62
- validatecommand=self.gui.highlight_fields,
63
- )
64
- self.telegram_token_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
65
-
66
- self.telegram_userid_lbl = Label(
67
- self, text="Telegram user_id", justify="left", anchor="w"
68
- )
69
- self.telegram_userid_entry = Entry(
70
- self,
71
- textvariable=self.gui.telegram_userid_var,
72
- width=50,
73
- validate="focusout",
74
- validatecommand=self.gui.highlight_fields,
75
- )
76
- self.telegram_userid_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
77
-
78
- self.kakao_auth_token_lbl = Label(
79
- self, text="Kakao auth_token", justify="left", anchor="w"
80
- )
81
- self.kakao_auth_token_entry = Entry(
82
- self, textvariable=self.gui.kakao_auth_token_var, width=35
83
- )
84
- self.kakao_auth_token_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
85
- self.kakao_get_auth_btn = Button(
86
- self,
87
- text="Generate",
88
- command=self.cb_kakao_get_auth,
89
- bootstyle="secondary", # type: ignore
90
- )
91
-
92
- self.line_cookies_lbl = Label(
93
- self, text="Line cookies", width=18, justify="left", anchor="w"
94
- )
95
- self.line_cookies_entry = Entry(
96
- self, textvariable=self.gui.line_cookies_var, width=35
97
- )
98
- self.line_cookies_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
99
- self.line_get_auth_btn = Button(
100
- self,
101
- text="Generate",
102
- command=self.cb_line_get_auth,
103
- bootstyle="secondary", # type: ignore
104
- )
105
-
106
- self.help_btn = Button(
107
- self,
108
- text="Get help",
109
- command=self.cb_cred_help,
110
- bootstyle="secondary", # type: ignore
111
- )
112
-
113
- self.signal_uuid_lbl.grid(column=0, row=0, sticky="w", padx=3, pady=3)
114
- self.signal_uuid_entry.grid(
115
- column=1, row=0, columnspan=2, sticky="w", padx=3, pady=3
116
- )
117
- self.signal_password_lbl.grid(column=0, row=1, sticky="w", padx=3, pady=3)
118
- self.signal_password_entry.grid(
119
- column=1, row=1, columnspan=2, sticky="w", padx=3, pady=3
120
- )
121
- self.signal_get_auth_btn.grid(column=2, row=2, sticky="e", padx=3, pady=3)
122
- self.telegram_token_lbl.grid(column=0, row=3, sticky="w", padx=3, pady=3)
123
- self.telegram_token_entry.grid(
124
- column=1, row=3, columnspan=2, sticky="w", padx=3, pady=3
125
- )
126
- self.telegram_userid_lbl.grid(column=0, row=4, sticky="w", padx=3, pady=3)
127
- self.telegram_userid_entry.grid(
128
- column=1, row=4, columnspan=2, sticky="w", padx=3, pady=3
129
- )
130
- self.kakao_auth_token_lbl.grid(column=0, row=5, sticky="w", padx=3, pady=3)
131
- self.kakao_auth_token_entry.grid(column=1, row=5, sticky="w", padx=3, pady=3)
132
- self.kakao_get_auth_btn.grid(column=2, row=5, sticky="e", padx=3, pady=3)
133
- self.line_cookies_lbl.grid(column=0, row=6, sticky="w", padx=3, pady=3)
134
- self.line_cookies_entry.grid(column=1, row=6, sticky="w", padx=3, pady=3)
135
- self.line_get_auth_btn.grid(column=2, row=6, sticky="e", padx=3, pady=3)
136
- self.help_btn.grid(column=2, row=8, sticky="e", padx=3, pady=3)
137
-
138
- def cb_cred_help(self, *_: Any) -> None:
139
- faq_site = "https://github.com/laggykiller/sticker-convert#faq"
140
- success = webbrowser.open(faq_site)
141
- if not success:
142
- self.gui.cb_ask_str("You can get help from:", initialvalue=faq_site)
143
-
144
- def cb_kakao_get_auth(self, *_: Any) -> None:
145
- KakaoGetAuthWindow(self.gui)
146
-
147
- def cb_signal_get_auth(self, *_: Any) -> None:
148
- SignalGetAuthWindow(self.gui)
149
-
150
- def cb_line_get_auth(self, *_: Any) -> None:
151
- LineGetAuthWindow(self.gui)
152
-
153
- def set_states(self, state: str) -> None:
154
- self.signal_uuid_entry.config(state=state)
155
- self.signal_password_entry.config(state=state)
156
- self.signal_get_auth_btn.config(state=state)
157
- self.telegram_token_entry.config(state=state)
158
- self.telegram_userid_entry.config(state=state)
159
- self.kakao_auth_token_entry.config(state=state)
160
- self.kakao_get_auth_btn.config(state=state)
161
- self.line_cookies_entry.config(state=state)
162
- self.line_get_auth_btn.config(state=state)
1
+ #!/usr/bin/env python3
2
+ import webbrowser
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ from ttkbootstrap import Button, Entry, Label, LabelFrame # type: ignore
6
+
7
+ from sticker_convert.auth.auth_telethon import AuthTelethon
8
+ from sticker_convert.gui_components.frames.right_clicker import RightClicker
9
+ from sticker_convert.gui_components.windows.discord_get_auth_window import DiscordGetAuthWindow
10
+ from sticker_convert.gui_components.windows.kakao_get_auth_window import KakaoGetAuthWindow
11
+ from sticker_convert.gui_components.windows.line_get_auth_window import LineGetAuthWindow
12
+ from sticker_convert.gui_components.windows.signal_get_auth_window import SignalGetAuthWindow
13
+ from sticker_convert.gui_components.windows.viber_get_auth_window import ViberGetAuthWindow
14
+ from sticker_convert.utils.translate import I
15
+
16
+ if TYPE_CHECKING:
17
+ from sticker_convert.gui import GUI # type: ignore
18
+
19
+
20
+ class CredFrame(LabelFrame):
21
+ def __init__(self, gui: "GUI", *args: Any, **kwargs: Any) -> None:
22
+ self.gui = gui
23
+ super().__init__(*args, **kwargs)
24
+
25
+ self.grid_columnconfigure(1, weight=1)
26
+
27
+ self.signal_uuid_lbl = Label(
28
+ self, text=I("Signal uuid"), width=18, justify="left", anchor="w"
29
+ )
30
+ self.signal_uuid_entry = Entry(
31
+ self,
32
+ textvariable=self.gui.signal_uuid_var,
33
+ width=50,
34
+ validate="focusout",
35
+ validatecommand=self.gui.highlight_fields,
36
+ )
37
+ self.signal_uuid_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
38
+
39
+ self.signal_password_lbl = Label(
40
+ self, text=I("Signal password"), justify="left", anchor="w"
41
+ )
42
+ self.signal_password_entry = Entry(
43
+ self,
44
+ textvariable=self.gui.signal_password_var,
45
+ width=50,
46
+ validate="focusout",
47
+ validatecommand=self.gui.highlight_fields,
48
+ )
49
+ self.signal_password_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
50
+
51
+ self.signal_get_auth_btn = Button(
52
+ self,
53
+ text=I("Generate"),
54
+ command=self.cb_signal_get_auth,
55
+ bootstyle="secondary", # type: ignore
56
+ )
57
+
58
+ self.telegram_token_lbl = Label(
59
+ self, text=I("Telegram token"), justify="left", anchor="w"
60
+ )
61
+ self.telegram_token_entry = Entry(
62
+ self,
63
+ textvariable=self.gui.telegram_token_var,
64
+ width=50,
65
+ validate="focusout",
66
+ validatecommand=self.gui.highlight_fields,
67
+ )
68
+ self.telegram_token_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
69
+
70
+ self.telegram_userid_lbl = Label(
71
+ self, text=I("Telegram user_id"), justify="left", anchor="w"
72
+ )
73
+ self.telegram_userid_entry = Entry(
74
+ self,
75
+ textvariable=self.gui.telegram_userid_var,
76
+ width=50,
77
+ validate="focusout",
78
+ validatecommand=self.gui.highlight_fields,
79
+ )
80
+ self.telegram_userid_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
81
+
82
+ self.telethon_auth_lbl = Label(
83
+ self, text=I("Telethon authorization"), justify="left", anchor="w"
84
+ )
85
+ self.telethon_auth_btn = Button(
86
+ self,
87
+ text=I("Generate"),
88
+ command=self.cb_telethon_get_auth,
89
+ bootstyle="secondary", # type: ignore
90
+ )
91
+
92
+ self.kakao_auth_token_lbl = Label(
93
+ self, text=I("Kakao auth_token"), justify="left", anchor="w"
94
+ )
95
+ self.kakao_auth_token_entry = Entry(
96
+ self, textvariable=self.gui.kakao_auth_token_var, width=35
97
+ )
98
+ self.kakao_auth_token_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
99
+ self.kakao_get_auth_btn = Button(
100
+ self,
101
+ text=I("Generate"),
102
+ command=self.cb_kakao_get_auth,
103
+ bootstyle="secondary", # type: ignore
104
+ )
105
+
106
+ self.line_cookies_lbl = Label(
107
+ self, text=I("Line cookies"), width=18, justify="left", anchor="w"
108
+ )
109
+ self.line_cookies_entry = Entry(
110
+ self, textvariable=self.gui.line_cookies_var, width=35
111
+ )
112
+ self.line_cookies_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
113
+ self.line_get_auth_btn = Button(
114
+ self,
115
+ text=I("Generate"),
116
+ command=self.cb_line_get_auth,
117
+ bootstyle="secondary", # type: ignore
118
+ )
119
+
120
+ self.viber_auth_lbl = Label(
121
+ self, text=I("Viber auth"), width=18, justify="left", anchor="w"
122
+ )
123
+ self.viber_auth_entry = Entry(
124
+ self, textvariable=self.gui.viber_auth_var, width=35
125
+ )
126
+ self.viber_auth_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
127
+ self.viber_get_auth_btn = Button(
128
+ self,
129
+ text=I("Generate"),
130
+ command=self.cb_viber_get_auth,
131
+ bootstyle="secondary", # type: ignore
132
+ )
133
+
134
+ self.discord_token_lbl = Label(
135
+ self, text=I("Discord token"), width=18, justify="left", anchor="w"
136
+ )
137
+ self.discord_token_entry = Entry(
138
+ self, textvariable=self.gui.discord_token_var, width=35
139
+ )
140
+ self.discord_token_entry.bind("<Button-3><ButtonRelease-3>", RightClicker)
141
+ self.discord_get_auth_btn = Button(
142
+ self,
143
+ text=I("Generate"),
144
+ command=self.cb_discord_get_auth,
145
+ bootstyle="secondary", # type: ignore
146
+ )
147
+
148
+ self.help_btn = Button(
149
+ self,
150
+ text=I("Get help"),
151
+ command=self.cb_cred_help,
152
+ bootstyle="secondary", # type: ignore
153
+ )
154
+
155
+ self.signal_uuid_lbl.grid(column=0, row=0, sticky="w", padx=3, pady=3)
156
+ self.signal_uuid_entry.grid(
157
+ column=1, row=0, columnspan=2, sticky="w", padx=3, pady=3
158
+ )
159
+ self.signal_password_lbl.grid(column=0, row=1, sticky="w", padx=3, pady=3)
160
+ self.signal_password_entry.grid(
161
+ column=1, row=1, columnspan=2, sticky="w", padx=3, pady=3
162
+ )
163
+ self.signal_get_auth_btn.grid(column=2, row=2, sticky="e", padx=3, pady=3)
164
+ self.telegram_token_lbl.grid(column=0, row=3, sticky="w", padx=3, pady=3)
165
+ self.telegram_token_entry.grid(
166
+ column=1, row=3, columnspan=2, sticky="w", padx=3, pady=3
167
+ )
168
+ self.telegram_userid_lbl.grid(column=0, row=4, sticky="w", padx=3, pady=3)
169
+ self.telegram_userid_entry.grid(
170
+ column=1, row=4, columnspan=2, sticky="w", padx=3, pady=3
171
+ )
172
+ self.telethon_auth_lbl.grid(column=0, row=5, sticky="w", padx=3, pady=3)
173
+ self.telethon_auth_btn.grid(column=2, row=5, sticky="e", padx=3, pady=3)
174
+ self.kakao_auth_token_lbl.grid(column=0, row=6, sticky="w", padx=3, pady=3)
175
+ self.kakao_auth_token_entry.grid(column=1, row=6, sticky="w", padx=3, pady=3)
176
+ self.kakao_get_auth_btn.grid(column=2, row=6, sticky="e", padx=3, pady=3)
177
+ self.line_cookies_lbl.grid(column=0, row=7, sticky="w", padx=3, pady=3)
178
+ self.line_cookies_entry.grid(column=1, row=7, sticky="w", padx=3, pady=3)
179
+ self.line_get_auth_btn.grid(column=2, row=7, sticky="e", padx=3, pady=3)
180
+ self.viber_auth_lbl.grid(column=0, row=8, sticky="w", padx=3, pady=3)
181
+ self.viber_auth_entry.grid(column=1, row=8, sticky="w", padx=3, pady=3)
182
+ self.viber_get_auth_btn.grid(column=2, row=8, sticky="e", padx=3, pady=3)
183
+ self.discord_token_lbl.grid(column=0, row=9, sticky="w", padx=3, pady=3)
184
+ self.discord_token_entry.grid(column=1, row=9, sticky="w", padx=3, pady=3)
185
+ self.discord_get_auth_btn.grid(column=2, row=9, sticky="e", padx=3, pady=3)
186
+ self.help_btn.grid(column=2, row=10, sticky="e", padx=3, pady=3)
187
+
188
+ def cb_cred_help(self, *_: Any) -> None:
189
+ faq_site = "https://github.com/laggykiller/sticker-convert#faq"
190
+ success = webbrowser.open(faq_site)
191
+ if not success:
192
+ self.gui.cb.ask_str(I("You can get help from:"), initialvalue=faq_site)
193
+
194
+ def cb_telethon_get_auth(self, *_: Any) -> None:
195
+ success, _client, api_id, api_hash, msg = AuthTelethon(
196
+ self.gui.get_opt_cred(), self.gui.cb
197
+ ).start(check_auth_only=True)
198
+ if success:
199
+ self.gui.telethon_api_id_var.set(api_id)
200
+ self.gui.telethon_api_hash_var.set(api_hash)
201
+ self.gui.save_creds()
202
+ self.gui.cb.put(("msg_block", (msg,), None))
203
+
204
+ def cb_kakao_get_auth(self, *_: Any) -> None:
205
+ KakaoGetAuthWindow(self.gui)
206
+
207
+ def cb_signal_get_auth(self, *_: Any) -> None:
208
+ SignalGetAuthWindow(self.gui)
209
+
210
+ def cb_line_get_auth(self, *_: Any) -> None:
211
+ LineGetAuthWindow(self.gui)
212
+
213
+ def cb_viber_get_auth(self, *_: Any) -> None:
214
+ ViberGetAuthWindow(self.gui)
215
+
216
+ def cb_discord_get_auth(self, *_: Any) -> None:
217
+ DiscordGetAuthWindow(self.gui)
218
+
219
+ def set_states(self, state: str) -> None:
220
+ self.signal_uuid_entry.config(state=state)
221
+ self.signal_password_entry.config(state=state)
222
+ self.signal_get_auth_btn.config(state=state)
223
+ self.telegram_token_entry.config(state=state)
224
+ self.telegram_userid_entry.config(state=state)
225
+ self.kakao_auth_token_entry.config(state=state)
226
+ self.kakao_get_auth_btn.config(state=state)
227
+ self.line_cookies_entry.config(state=state)
228
+ self.line_get_auth_btn.config(state=state)
229
+ self.viber_auth_entry.config(state=state)
230
+ self.viber_get_auth_btn.config(state=state)
231
+ self.discord_token_entry.config(state=state)
232
+ self.discord_get_auth_btn.config(state=state)