Ejemplo n.º 1
0
 def on_closing(self):
     ''' Callback for on closing event '''
     save_state({
         'options': self.get_options(),
         'accounts': self.accounts,
     })
     self.root.destroy()
Ejemplo n.º 2
0
    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'