def on_closing(self): ''' Callback for on closing event ''' save_state({ 'options': self.get_options(), 'accounts': self.accounts, }) self.root.destroy()
async def start_macro(self): ''' Starts the main batch process ''' options = self.get_selected_options() self.builder.get_object('start')['state'] = 'disabled' save_state({ 'options': self.get_options(), 'accounts': self.accounts, }) update(self.logger) for idx, account in enumerate(self.accounts): if len(account) == 2: tree = self.builder.get_object('accounts') child_id = tree.get_children()[idx] tree.focus(child_id) tree.selection_set(child_id) try: account_ = types.SimpleNamespace(username=account[0], password=account[1], region=REGION, locale=LOCALE) response = await self.macro.do_macro(options, account_) self.builder_wrapper.set_cell('accounts', idx, 3, response['blue_essence']) self.accounts[idx].append(response['blue_essence']) except AuthenticationFailureException: logging.info('Account %s has invalid credentials', account[0]) except ConsentRequiredException: logging.info('Account %s needs consent', account[0]) progress = (idx + 1) * 100 // len(self.accounts) self.builder.get_object('progress')['value'] = progress self.builder.get_object('start')['state'] = 'normal'