minor fix
This commit is contained in:
44
main.py
44
main.py
@@ -63,11 +63,10 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
t1 = Timer()
|
||||
t2 = Timer()
|
||||
options = dict()
|
||||
profiles: list[Profile] = list()
|
||||
status = Status.IDLE
|
||||
|
||||
def begin(opts: dict, args: dict):
|
||||
nonlocal options, status
|
||||
nonlocal status
|
||||
options.update(opts)
|
||||
status = Status.RUNNING
|
||||
parameters.update(args)
|
||||
@@ -94,20 +93,17 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
jsonrpc2.define('uptime', lambda: [t1.delta()])
|
||||
|
||||
try:
|
||||
for source, profile in zip(parameters.get('profile'), repeat(dict())):
|
||||
for key, value in map(lambda o: str.split(o, '=', 2), source):
|
||||
profile[key.lower().strip()] = value.strip()
|
||||
|
||||
item = Profile(**profile)
|
||||
profiles.append(item)
|
||||
profiles = [
|
||||
Profile(**{ k.lower().strip(): v.strip() for k, v in map(lambda o: str.split(o, '=', 2), p) })
|
||||
for p in parameters.get('profile')
|
||||
]
|
||||
except Exception as e:
|
||||
logger.critical('Unable to load profiles', exc_info=e)
|
||||
return 2
|
||||
|
||||
try:
|
||||
manifest = json.dumps(profiles, default=vars)
|
||||
driver.get(str(Path('index.html').resolve()))
|
||||
driver.execute_script(jsonrpc2.prelude(), manifest, parameters)
|
||||
driver.execute_script(jsonrpc2.prelude(), list(map(vars, profiles)), parameters)
|
||||
except Exception as e:
|
||||
logger.critical('Unable to load starup page', exc_info=e)
|
||||
return 3
|
||||
@@ -234,7 +230,7 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
@classmethod
|
||||
def perform(cls):
|
||||
nonlocal status
|
||||
statis = Status.READY
|
||||
status = Status.READY
|
||||
driver.switch_to.window(driver.window_handles[0])
|
||||
raise cls
|
||||
|
||||
@@ -380,13 +376,29 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
progress['number'] = number
|
||||
progress['index'] = i-1
|
||||
|
||||
if (id := item['category_id']) not in categories:
|
||||
if (x := item['category_id']) not in categories:
|
||||
flow.react()
|
||||
categories[id] = fetch(f'{base}/categories/{id}.json?api_token={profile.token}')
|
||||
response = fetch(f'{base}/categories/{x}.json?api_token={profile.token}')
|
||||
|
||||
if (id := item['client_id']) not in clients:
|
||||
if 'error' in response:
|
||||
error = response['error']
|
||||
code = response['code']
|
||||
logger.warning("Error while fetching 'category' (code: %s, message: %s); skipping", code, error)
|
||||
continue
|
||||
else:
|
||||
categories[x] = response
|
||||
|
||||
if (x := item['client_id']) not in clients:
|
||||
flow.react()
|
||||
clients[id] = fetch(f'{base}/clients/{id}.json?api_token={profile.token}')
|
||||
response = fetch(f'{base}/clients/{x}.json?api_token={profile.token}')
|
||||
|
||||
if 'error' in response:
|
||||
error = response['error']
|
||||
code = response['code']
|
||||
logger.warning("Error while fetching 'client' (code: %s, message: %s); skipping", code, error)
|
||||
continue
|
||||
else:
|
||||
clients[x] = response
|
||||
|
||||
category = categories.get(item['category_id'])
|
||||
client = clients.get(item['client_id'])
|
||||
@@ -535,6 +547,7 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
|
||||
while index < len(data):
|
||||
try:
|
||||
attempts += 1
|
||||
driver.switch_to.window(driver.window_handles[2])
|
||||
item = data[index]
|
||||
kind = item['kind']
|
||||
@@ -542,7 +555,6 @@ def main(driver: WebDriver, logger = logging.getLogger('main')):
|
||||
number = profile.format(item['number'])
|
||||
positions = item['positions']
|
||||
opportunity = None
|
||||
attempts += 1
|
||||
|
||||
if kind != 'vat':
|
||||
logger.info('[%d/%d] Skipping %s', index+1, len(data), number)
|
||||
|
||||
Reference in New Issue
Block a user