Пример #1
0
    def callback(self, sender):
        func, *args = sender.callback_args

        if not hasattr(sender, 'no_sender'):
            args = list(itertools.chain((sender, ), args))

        if not hasattr(sender, 'not_threaded'):
            threads.run_threaded(func, *args)
        else:
            func(*args)
Пример #2
0
    def make_account_menu_item(self, username: str, password: str,
                               toon: str) -> rumps.MenuItem:
        account_menu = rumps.MenuItem(toon)

        account_menu.add(
            rumps.MenuItem('Login',
                           callback=lambda _: threads.run_threaded(
                               self.app.toontown.launch, username, password)))
        account_menu.add(
            rumps.MenuItem('Edit',
                           callback=lambda _: self.edit_account(
                               username, password, toon)))
        account_menu.add(None)
        account_menu.add(
            rumps.MenuItem(
                'Delete',
                callback=lambda _: self.delete_account(username, toon)))

        return account_menu
Пример #3
0
 def callback(self, sender: t.Optional[rumps.MenuItem] = None) -> None:
     threads.run_threaded(self._callback, sender)
Пример #4
0
        account_menu_item = self.app.menu[toon]

        if new_username := popup_question('Enter Username:'******'Enter Password:'******'Enter Main Toon:'):
            toon = new_toon
            account_menu_item.title = toon

        self.app.toontown_accounts.update(username,
                                          password=password,
                                          toon=toon)

        for title, menu_item in account_menu_item.items():
            if title == 'Login':
                menu_item.set_callback(lambda _: threads.run_threaded(
                    self.app.toontown.launch, username, password))
            elif title == 'Edit':
                menu_item.set_callback(
                    lambda _: self.edit_account(username, password, toon))
            elif title == 'Delete':
                menu_item.set_callback(
                    lambda _: self.delete_account(username, toon))

    def delete_account(self, username: str, toon: str) -> None:
        self.app.toontown_accounts.delete(username)
        self.app.delete(toon)