import time from tkinter import * from tkinter import messagebox from tkinter.ttk import * import typing from fishy.helper import helper from fishy.web import web from fishy.libs.tkhtmlview import HTMLLabel from ..helper.config import config if typing.TYPE_CHECKING: from . import GUI # noinspection PyProtectedMember def discord_login(gui: 'GUI'): if web.is_logged_in(config.get("uid")): if web.logout(config.get("uid")): gui.login.set(0) return # set notification checkbutton gui.login.set(0) def quit_top(): top.destroy() top_running[0] = False def check(): code = int(login_code.get()) if login_code.get().isdigit() else 0 if web.login(config.get("uid"), code): gui.login.set(1) messagebox.showinfo("Note!", "Logged in successfuly!") quit_top() else: messagebox.showerror("Error", "Logged wasn't successful") top_running = [True] top = Toplevel(background=gui._root["background"]) top.minsize(width=300, height=300) top.title("Notification Setup") html_label = HTMLLabel(top, html=f'
' f'

Step 1.
' f'Join Discord server

' f'

Step 2.
' f'run !login command in #bot-spam channel' f'

Step 3.
' f'enter login code' f'

', background=gui._root["background"]) html_label.pack(pady=(20, 5)) html_label.fit_height() login_code = Entry(top, justify=CENTER, font="Calibri 15") login_code.pack(padx=(15, 15), expand=True, fill=BOTH) html_label = HTMLLabel(top, html=f'
' f'

Step 4.

' f'
', background=gui._root["background"]) html_label.pack(pady=(5, 5)) html_label.fit_height() Button(top, text="REGISTER", command=check).pack(pady=(5, 20)) top.protocol("WM_DELETE_WINDOW", quit_top) top.grab_set() while top_running[0]: top.update() time.sleep(0.01) top.grab_release()