From 151a915911f0c316011e6d746570b5f796e744a3 Mon Sep 17 00:00:00 2001 From: Noretsa Date: Sat, 10 Oct 2020 10:07:54 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit было добавлено задание на сервере --- des.py | 154 +++++++++++------------------------------------- des_assigned.py | 36 +++++------ 2 files changed, 54 insertions(+), 136 deletions(-) diff --git a/des.py b/des.py index 55d92f7..5360369 100644 --- a/des.py +++ b/des.py @@ -23,107 +23,30 @@ def send_image(session, headers, url, photo): 'image': (photo[-5:], open(photo, 'rb')), } # print(files) - img = session.post('https://knd.mosreg.ru//api/v1/executions/'+str(url)+'/images', headers=headers, files=files) + img = session.post('https://knd.mosreg.ru//api/v1/executions/'+str(url) + + '/images', headers=headers, files=files) if img.status_code == 200: print(f"Фото {photo} успешно отправлено") return img.json() else: - print(f"Не удалось загрузить фото на сервер по заданию {url}, статус ошибки {img.status_code}! Повторная попытка!") + print(f"Не удалось загрузить фото на сервер по заданию {url}, \ + статус ошибки {img.status_code}! Повторная попытка!") second_img = send_image(session, headers, url, photo) return second_img -# def complete_task(session, headers, task, address): -# photos = get_photo(address, headers['uid']) -# if len(photos) > 0: -# photos.sort() -# print(task['id']) -# id_task = task['id'] -# questions = get_questions(id_task, session, headers) -# data = [] -# for answers in questions: -# answer_chain = { -# 'id': answers['id'], -# 'questions': [] # answers['questions'] -# } -# if answer_chain['id'] == 6146: # Цепочка без ответов -# continue -# for components in answers['questions']: -# comp = [] -# q_c = { -# 'id': components['id'], -# 'question_components': [] -# } -# if q_c['id'] == 6560: # Вопрос без ответа -# continue -# comp.append(q_c) -# answer_chain.update({'questions': comp}) -# data.append(answer_chain) -# if len(data) == len(photos): -# for chain in data: -# for item in chain['questions']: -# if len(data) == len(photos): -# photo_from_photos = photos.pop(0) -# img = send_image(session, headers, task['id'], photo_from_photos) # photos.pop(0)) -# # count_send_photo = 0 -# # while img['id'] is None: -# # count_send_photo += 1 -# # print("Попытка № " + str(count_send_photo) + "отправить фото" + str(photo_from_photos)) -# # img = send_image(session, headers, task['id'], photo_from_photos)#photos.pop(0)) -# first = {"id": 18850, "answer": [img['id']], 'answer_status': None, 'start_time': int(time.time())} -# time.sleep(2) -# first.update({'end_time': int(time.time())}) -# second = {"id": 18851, "answer": {"location": task['coord']}, 'answer_status': None, 'start_time': int(time.time())} -# time.sleep(2) -# second.update({'end_time': int(time.time())}) -# item['question_components'].append(first) -# item['question_components'].append(second) -# else: -# # img = send_image(session, headers, task['id'], photos.pop(0)) -# photo_from_photos = photos.pop(0) -# img = send_image(session, headers, task['id'], photo_from_photos) # photos.pop(0)) -# # count_send_photo = 0 -# # while img['id'] is None: -# # count_send_photo += 1 -# # print("Попытка № " + str(count_send_photo) + " отправить фото" + str(photo_from_photos)) -# # img = send_image(session, headers, task['id'], photo_from_photos)#photos.pop(0)) -# first = {"id": 18856, "answer": 77, 'answer_status': None, 'start_time': int(time.time())} -# time.sleep(2) -# first.update({'end_time': int(time.time())}) -# second = {"id": 18857, "answer": [img['id']], 'answer_status': None, 'start_time': int(time.time())} -# time.sleep(2) -# second.update({'end_time': int(time.time())}) -# item['question_components'].append(first) -# item['question_components'].append(second) -# ans = {"question_chains": data} -# # print(ans) -# session_t = session -# session_t.headers.update( -# { -# 'referer': 'https://knd.mosreg.ru/executions'+str(task['id'])+'/solve', -# 'x-platform': 'wb', -# 'accept': '*/*' -# } -# ) -# complete = session_t.post('https://knd.mosreg.ru//api/v1/executions/'+str(task['id'])+'/answers', headers=headers, json=ans) -# if complete.status_code == 200: -# print(f'Задание по адресу {address} выполнено успешно!') -# else: -# print(f'Задание по адресу {address} не выполненно! Статус ошибки {complete.status_code}') -# else: -# print(f"Несоответствие количества вопросов и количества фотографий по адресу: {address}") -# # send_execution(task,session, headers) - - def get_photo(address, email): photos = [] month = datetime.datetime.now().month - main_path = os.path.join(os.path.abspath('.'), 'data', email, str(month), address) + main_path = os.path.join(os.path.abspath('.'), 'data', email, str(month), + address) if not os.path.exists(main_path): return photos else: for images in os.listdir(main_path): - if images.endswith(".jpg") or images.endswith(".jpeg") or images.endswith(".JPG"): + if (images.endswith(".jpg") or + images.endswith(".jpeg") or + images.endswith(".JPG")): photos.append(main_path + '/' + images) return photos @@ -134,23 +57,15 @@ def get_addresses(email): main_path = os.path.join(os.path.abspath('.'), 'data') path = os.walk(os.path.join(main_path, email, str(month))) if not os.path.exists(os.path.join(main_path, email, str(month))): - return f"Не найдена папка с месяцем у пользователя {email}! Проверьте структуру каталога!" + return f"Не найдена папка с месяцем у пользователя {email}! Проверьте \ + структуру каталога!" for d, dirs, files in path: addresses.append(dirs) if len(addresses[0]) > 0: return addresses[0] else: - return f"Ни одного адреса для пользователя {email} не найдено! Добавьте фото и запустите программу снова!" - - -# def assign_task(session, headers, task, address): -# url = 'https://knd.mosreg.ru//api/v1/executions/'+str(task['id'])+'/assign' -# task_assign = session.put(url, headers=headers) -# if task_assign.status_code == 200: -# print(f'Получили задани по адресу: {address}') -# complete_task(session, headers, task, address) -# else: -# print(f"Не смогли получить задание {address} {task['id']}!") + return f"Ни одного адреса для пользователя {email} не найдено! \ + Добавьте фото и запустите программу снова!" def get_task(session, headers): @@ -191,8 +106,11 @@ def get_task(session, headers): json_tasks = tasks.json() # get_t = False # Если есть доступное задание с таким адресом - exec_assigned = json_tasks['executions_assigned'] # Уже полученные задания - exec_available = json_tasks['executions_available'] # Еще не принятые задания + # + # Уже полученные задания + exec_assigned = json_tasks['executions_assigned'] + # Еще не принятые задания + exec_available = json_tasks['executions_available'] # print(address) if len(exec_available) > 0: for n in exec_available: @@ -201,25 +119,25 @@ def get_task(session, headers): for execution in enterances: address_from_tasks = execution['dimensions'][0].get('entity_value_name') name_from_tasks = execution['name'] - enterance = execution['dimensions'][2].get('entity_value_name') - if address_from_tasks == 'Клин г, ' + addr.replace("_", "/")[:-4] and \ - enterance[-1] == address[-2]: - print('\n') - print(name_from_tasks) - print('\n') - task = { - 'id': execution['execution_id'], - 'address': execution['dimensions'][0].get('entity_value_name'), - 'enterance': execution['dimensions'][2].get('entity_value_name'), - 'coord': coord - } - if name_from_tasks == desinfection: - des.assign_task(session, headers, task, address) - elif name_from_tasks == proverka: - pass + if name_from_tasks == desinfection: + enterance = execution['dimensions'][2].get('entity_value_name') + if address_from_tasks == 'Клин г, ' + addr.replace("_", "/")[:-4] and enterance[-1] == address[-2]: + print('\n') + print(name_from_tasks) + print('\n') + task = { + 'id': execution['execution_id'], + 'address': execution['dimensions'][0].get('entity_value_name'), + 'enterance': execution['dimensions'][2].get('entity_value_name'), + 'coord': coord + } + if name_from_tasks == desinfection: + des.assign_task(session, headers, task, address) + elif name_from_tasks == proverka: + pass # prov.assign_task(session, headers, task, address) - else: - pass + else: + pass else: print(f"Нет доступных заданий для пользователя {headers['uid']} по адресу: {address}") # Если адреса не получили выводим ошибку diff --git a/des_assigned.py b/des_assigned.py index 9bf248e..b17cfd5 100644 --- a/des_assigned.py +++ b/des_assigned.py @@ -201,25 +201,25 @@ def get_task(session, headers): for execution in enterances: address_from_tasks = execution['dimensions'][0].get('entity_value_name') name_from_tasks = execution['name'] - enterance = execution['dimensions'][2].get('entity_value_name') - if address_from_tasks == 'Клин г, ' + addr.replace("_", "/")[:-4] and \ - enterance[-1] == address[-2]: - print('\n') - print(name_from_tasks) - print('\n') - task = { - 'id': execution['execution_id'], - 'address': execution['dimensions'][0].get('entity_value_name'), - 'enterance': execution['dimensions'][2].get('entity_value_name'), - 'coord': coord - } - if name_from_tasks == desinfection: - des.assign_task(session, headers, task, address) - elif name_from_tasks == proverka: - pass + if name_from_tasks == desinfection: + enterance = execution['dimensions'][2].get('entity_value_name') + if address_from_tasks == 'Клин г, ' + addr.replace("_", "/")[:-4] and enterance[-1] == address[-2]: + print('\n') + print(name_from_tasks) + print('\n') + task = { + 'id': execution['execution_id'], + 'address': execution['dimensions'][0].get('entity_value_name'), + 'enterance': execution['dimensions'][2].get('entity_value_name'), + 'coord': coord + } + if name_from_tasks == desinfection: + des.assign_task(session, headers, task, address) + elif name_from_tasks == proverka: + pass # prov.assign_task(session, headers, task, address) - else: - pass + else: + pass else: print(f"Нет доступных заданий для пользователя {headers['uid']} по адресу: {address}") # Если адреса не получили выводим ошибку