From f3f68a888e32b58245c3ca617fccec820cef9a7b Mon Sep 17 00:00:00 2001 From: Alexey Norets Date: Wed, 19 Jan 2022 18:38:00 +0300 Subject: [PATCH] added sosulka --- classes/desinfection.py | 2 +- classes/led.py | 130 ++++++++++++++++ classes/proverka.py | 2 +- classes/users_led.py | 27 ++++ data/5020051404_17@check.mo/img_5.txt | 3 + data/5020051404_17@check.mo/new_template.docx | Bin 0 -> 9433 bytes data/5020051404_17@check.mo/pass.txt | 1 + data/5020051404_17@check.mo/template.docx | Bin 0 -> 8990 bytes .../5020051404_17@check.mo/template_lift.docx | Bin 0 -> 9155 bytes data/domreshetnikovo@gmail.com/img_5.txt | 3 + .../new_template.docx | Bin 0 -> 9430 bytes data/domreshetnikovo@gmail.com/pass.txt | 1 + data/domreshetnikovo@gmail.com/template.docx | Bin 0 -> 8996 bytes .../template_lift.docx | Bin 0 -> 9177 bytes data/saunkina2020@mail.ru/pass.txt | 1 + des.py | 6 +- des_assigned.py | 4 +- knd_bot.py | 3 +- knd_bot_assigned.py | 17 +- knd_dip.py | 60 ++++++++ naled.py | 145 ++++++++++++++++++ 21 files changed, 396 insertions(+), 9 deletions(-) create mode 100644 classes/led.py create mode 100644 classes/users_led.py create mode 100644 data/5020051404_17@check.mo/img_5.txt create mode 100644 data/5020051404_17@check.mo/new_template.docx create mode 100644 data/5020051404_17@check.mo/pass.txt create mode 100644 data/5020051404_17@check.mo/template.docx create mode 100644 data/5020051404_17@check.mo/template_lift.docx create mode 100644 data/domreshetnikovo@gmail.com/img_5.txt create mode 100644 data/domreshetnikovo@gmail.com/new_template.docx create mode 100644 data/domreshetnikovo@gmail.com/pass.txt create mode 100644 data/domreshetnikovo@gmail.com/template.docx create mode 100644 data/domreshetnikovo@gmail.com/template_lift.docx create mode 100644 data/saunkina2020@mail.ru/pass.txt create mode 100644 knd_dip.py create mode 100644 naled.py diff --git a/classes/desinfection.py b/classes/desinfection.py index 874012e..610eb91 100644 --- a/classes/desinfection.py +++ b/classes/desinfection.py @@ -36,7 +36,7 @@ def complete_task(session, headers, task, address): session_t.headers.update( { 'referer': 'https://knd.mosreg.ru/executions'+str(task['id'])+'/solve', - 'x-platform': 'wb', + 'x-platform': 'android', 'accept': '*/*' } ) diff --git a/classes/led.py b/classes/led.py new file mode 100644 index 0000000..b4f492b --- /dev/null +++ b/classes/led.py @@ -0,0 +1,130 @@ +import os +import datetime +import time +from natsort import natsorted + + +def assign_task(session, headers, task, address): + # print('assign_task') + 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']}!") + + +def complete_task(session, headers, task, address): + photos = get_photo(address, headers['uid']) + if len(photos) > 0: + # photos.sort() + photos = natsorted(photos) + """В папке лежит фото графика, которое отправляется из модуля des, поэтому убираем отсюда""" + # if len(photos) == 11 or len(photos) == 13: + # photos.pop() + id_task = task['id'] + quest = get_questions(id_task, session, headers) + # print(quest) + # length_question = get_length_questions(quest) + prepared_answers = [] + if True: + prepared_answers = prepare_answer(quest, photos, session, task, headers) + # print(prepared_answers) + ans = {"question_chains": prepared_answers} + # print(ans) + session_t = session + session_t.headers.update( + { + 'referer': 'https://knd.mosreg.ru/executions'+str(task['id'])+'/solve', + 'x-platform': 'android', + '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} выполнено успешно!\n\n') + else: + print(f'Задание по адресу {address} не выполненно! Статус ошибки {complete.status_code}\n\n') + else: + print(f"\n\n\nНесоответствие количества вопросов и фотографий по адресу {address}!!! \ + Необходимо проверить!!!\n\n\n") + # print(len(quest)) 9 and 13 + + +def get_photo(address, email): + photos = [] + month = datetime.datetime.now().month + main_path = os.path.join(os.path.abspath('.'), 'data_led', email, 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"): + photos.append(main_path + '/' + images) + return photos + + +def get_questions(id_task, session, headers): + url = 'https://knd.mosreg.ru//api/v1/executions/'+str(id_task)+'/questions' + questions = session.get(url, headers=headers) + json_quest = questions.json() + return json_quest['selected_chains'] + + +def prepare_answer(quest, photos, session, task, headers): + questions = [] + question_components= [] + question_chains = [] + for main_chain in quest: + for second_chain in main_chain['questions']: + for third_chain in second_chain['question_components']: + question_type = third_chain['type'] + if question_type == 'list': + data = {"id": third_chain['id'], "answer": 77, "answer_status": None, "start_time": int(time.time())} + time.sleep(2) + data.update({"end_time": int(time.time())}) + question_components.append(data) + elif question_type == "geo": + data = {"id": third_chain['id'], "answer": {"location": task['coord']}, "answer_status": None, \ + "start_time": int(time.time())} + time.sleep(2) + data.update({"end_time": int(time.time())}) + question_components.append(data) + elif question_type == "gallery": + img = send_image(session, headers, task['id'], photos.pop(0))#photos.pop(0)) + data = {"id": third_chain['id'], "answer": [img['id']], "answer_status": None, \ + "start_time": int(time.time())} + time.sleep(2) + data.update({"end_time": int(time.time())}) + question_components.append(data) + if len(question_components) > 0: + main_data = { + "id": second_chain['id'], + "question_components": question_components + } + questions.append(main_data) + question_components = [] + if len(questions) > 0: + q_dict = { + "id": main_chain['id'], + "questions" : questions + } + question_chains.append(q_dict) + questions = [] + return question_chains + + +def send_image(session, headers, url, photo): + """Отправляем фото на сервер. Сервер должен вернуть id и url.""" + files = { + 'image': (photo[-5:], open(photo, 'rb')), + } + 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}! Повторная попытка!") + second_img = send_image(session, headers, url, photo) + return second_img diff --git a/classes/proverka.py b/classes/proverka.py index dc995e0..3bdd94a 100644 --- a/classes/proverka.py +++ b/classes/proverka.py @@ -35,7 +35,7 @@ def complete_task(session, headers, task, address): session_t.headers.update( { 'referer': 'https://knd.mosreg.ru/executions'+str(task['id'])+'/solve', - 'x-platform': 'wb', + 'x-platform': 'android', 'accept': '*/*' } ) diff --git a/classes/users_led.py b/classes/users_led.py new file mode 100644 index 0000000..54d6070 --- /dev/null +++ b/classes/users_led.py @@ -0,0 +1,27 @@ +import os + + +class Users_led: + def __init__(self): + self.data = [] + self.path = os.path.join(os.path.abspath('.'), 'data_led') + + def get_users(self): + self.logins = [] + main_dir = os.walk(self.path) + for d, dirs, files in main_dir: + self.logins.append(dirs) + return self.logins[0] + + def get_passwords(self): + if not os.path.exists(self.path): + return "Папка data_led не существует. Создайте папку с необходимыми параметрами и запустите программу снова!" + self.emails = self.get_users() + if len(self.emails) > 0: + for user in self.emails: + with open(os.path.join(self.path, user, 'pass.txt'), 'r') as f: + log_pass = {'email': user, 'password': f.readline().split('\n')[0]} + self.data.append(log_pass) + else: + return "Нет ни одного пользователя! Заполните папку и запустите программу снова!" + return self.data diff --git a/data/5020051404_17@check.mo/img_5.txt b/data/5020051404_17@check.mo/img_5.txt new file mode 100644 index 0000000..05d335a --- /dev/null +++ b/data/5020051404_17@check.mo/img_5.txt @@ -0,0 +1,3 @@ +Чернов Александр Алексеевич +мастер РЭУ +8(910)484-22-20 \ No newline at end of file diff --git a/data/5020051404_17@check.mo/new_template.docx b/data/5020051404_17@check.mo/new_template.docx new file mode 100644 index 0000000000000000000000000000000000000000..b9c27ba1a777d086ad997bdf7f05cf2b2f171ea9 GIT binary patch literal 9433 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 Ucx6fe0PL$hymqkxg5Tf%4=~*T4FCWD literal 0 HcmV?d00001 diff --git a/data/5020051404_17@check.mo/pass.txt b/data/5020051404_17@check.mo/pass.txt new file mode 100644 index 0000000..df86387 --- /dev/null +++ b/data/5020051404_17@check.mo/pass.txt @@ -0,0 +1 @@ +kn7687 \ No newline at end of file diff --git a/data/5020051404_17@check.mo/template.docx b/data/5020051404_17@check.mo/template.docx new file mode 100644 index 0000000000000000000000000000000000000000..a3fe76fbd0c2bba01eddb526f03ae54cae158ee1 GIT binary patch literal 8990 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 R0Cd>*7PiDNp8fvye*pJ}=sy4e literal 0 HcmV?d00001 diff --git a/data/5020051404_17@check.mo/template_lift.docx b/data/5020051404_17@check.mo/template_lift.docx new file mode 100644 index 0000000000000000000000000000000000000000..534c15aa9ec9a3a8116c8c5cab30ddad0f702115 GIT binary patch literal 9155 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 b|A~G{gH+^Uz)T4MKnB}AxQq3X|Niw~0MYw~ literal 0 HcmV?d00001 diff --git a/data/domreshetnikovo@gmail.com/pass.txt b/data/domreshetnikovo@gmail.com/pass.txt new file mode 100644 index 0000000..458b6fb --- /dev/null +++ b/data/domreshetnikovo@gmail.com/pass.txt @@ -0,0 +1 @@ +kn2001 diff --git a/data/domreshetnikovo@gmail.com/template.docx b/data/domreshetnikovo@gmail.com/template.docx new file mode 100644 index 0000000000000000000000000000000000000000..f97f8241f82cc3434dd9341e9768fc04615c56b9 GIT binary patch literal 8996 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 literal 0 HcmV?d00001 diff --git a/data/domreshetnikovo@gmail.com/template_lift.docx b/data/domreshetnikovo@gmail.com/template_lift.docx new file mode 100644 index 0000000000000000000000000000000000000000..02b561a37e9ab03edc1a6dc7c63324696c72e40e GIT binary patch literal 9177 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 literal 0 HcmV?d00001 diff --git a/data/saunkina2020@mail.ru/pass.txt b/data/saunkina2020@mail.ru/pass.txt new file mode 100644 index 0000000..9786c4f --- /dev/null +++ b/data/saunkina2020@mail.ru/pass.txt @@ -0,0 +1 @@ +kn4221 \ No newline at end of file diff --git a/des.py b/des.py index 5360369..521c3eb 100644 --- a/des.py +++ b/des.py @@ -87,7 +87,7 @@ def get_task(session, headers): session_t = session session_t.headers.update( {'referer': 'https://knd.mosreg.ru/executions', - 'x-platform': 'wb', + 'x-platform': 'android', 'accept': '*/*' } ) @@ -99,7 +99,7 @@ def get_task(session, headers): search = addr.replace("_", "/")[:-4] # print(search) data = {'search': search} - tasks = session_t.post('https://knd.mosreg.ru//api/v1/executions', + tasks = session_t.post('https://knd.mosreg.ru//api/v1/actor/executions', headers=headers, data=data ) @@ -109,8 +109,10 @@ def get_task(session, headers): # # Уже полученные задания exec_assigned = json_tasks['executions_assigned'] + print(exec_assigned) # Еще не принятые задания exec_available = json_tasks['executions_available'] + print(exec_available) # print(address) if len(exec_available) > 0: for n in exec_available: diff --git a/des_assigned.py b/des_assigned.py index b17cfd5..0fc0937 100644 --- a/des_assigned.py +++ b/des_assigned.py @@ -172,7 +172,7 @@ def get_task(session, headers): session_t = session session_t.headers.update( {'referer': 'https://knd.mosreg.ru/executions', - 'x-platform': 'wb', + 'x-platform': 'android', 'accept': '*/*' } ) @@ -184,7 +184,7 @@ def get_task(session, headers): search = addr.replace("_", "/")[:-4] # print(search) data = {'search': search} - tasks = session_t.post('https://knd.mosreg.ru//api/v1/executions', + tasks = session_t.post('https://knd.mosreg.ru//api/v1/actor/executions', headers=headers, data=data ) diff --git a/knd_bot.py b/knd_bot.py index feea27d..c2c3f95 100644 --- a/knd_bot.py +++ b/knd_bot.py @@ -172,7 +172,7 @@ def get_task(session, headers): session_t = session session_t.headers.update( {'referer': 'https://knd.mosreg.ru/executions', - 'x-platform': 'wb', + 'x-platform': 'android', 'accept': '*/*' } ) @@ -183,6 +183,7 @@ def get_task(session, headers): addr = address.replace("Маиданово", "Майданово") search = addr.replace("_", "/")[:-4] # print(search) + # search = "" data = {'search': search} tasks = session_t.post('https://knd.mosreg.ru//api/v1/executions', headers=headers, diff --git a/knd_bot_assigned.py b/knd_bot_assigned.py index 24bc85a..e376ce9 100644 --- a/knd_bot_assigned.py +++ b/knd_bot_assigned.py @@ -168,11 +168,12 @@ def get_task(session, headers): # Получаем адреса addresses = get_addresses(headers['uid']) # Если адреса получили + # {"filters":[{"value":{"distance":"50000","lat":55.81999969482422,"lon":37.380001068115234},"filter_attribute":10,"id":6,"name":"Локация","type":"distance"}]} if isinstance(addresses, list): session_t = session session_t.headers.update( {'referer': 'https://knd.mosreg.ru/executions', - 'x-platform': 'wb', + 'x-platform': 'android', 'accept': '*/*' } ) @@ -183,8 +184,18 @@ def get_task(session, headers): addr = address.replace("Маиданово", "Майданово") search = addr.replace("_", "/")[:-4] # print(search) + # data = {'search': search, + # 'filters': [{'value':{ + # 'distance': 25000, + # 'lat': 55.81999969482422, + # 'lon': 37.380001068115234 + # }, + # 'filter_attribute': 10, + # 'id': 6, + # 'name': 'Локация', + # 'type': 'distance'}]} data = {'search': search} - tasks = session_t.post('https://knd.mosreg.ru//api/v1/executions', + tasks = session_t.post('https://knd.mosreg.ru//api/v1/actor/executions', headers=headers, data=data ) @@ -192,7 +203,9 @@ def get_task(session, headers): get_t = False # Если есть доступное задание с таким адресом exec_assigned = json_tasks['executions_assigned'] # Уже полученные задания + print(exec_assigned) exec_available = json_tasks['executions_available'] # Еще не принятые задания + print(exec_available) # print(address) if len(exec_assigned) > 0: for n in exec_assigned: diff --git a/knd_dip.py b/knd_dip.py new file mode 100644 index 0000000..a313c84 --- /dev/null +++ b/knd_dip.py @@ -0,0 +1,60 @@ +import requests +import random +import string +# import json +import datetime +import time +import os +from classes.users import Users +import classes.desinfection as des +import classes.proverka as prov + + +def get_task(session, headers): + session_t = session + session_t.headers.update( + {'referer': 'https://knd.mosreg.ru/executions', + 'x-platform': 'wb', + 'accept': '*/*' + } + ) + # data = {'actualities': [0,2,10]} + # data = {'search': 234} + data = {"issue_type_filters":[{"id":314,"name":"Благоустройство - снэпшот","filters":[]}]} + tasks = session_t.post('https://knd.mosreg.ru//api/v1/executions', + headers=headers, + data=data + ) + json_tasks = tasks.json() + print(json_tasks) + + +def main(): + users = Users() + logins = users.get_passwords() + if isinstance(logins, list): + url = 'https://knd.mosreg.ru//api/v1/auth/sign_in' + for user in logins: + session = requests.Session() + login = { + 'email': user['email'], + 'password': user['password'] + } + response = session.post(url, data=login) + headers = { + 'client': response.headers.get('client'), + 'Access-token': response.headers.get('Access-token'), + 'uid': response.headers.get('uid'), + } + if response.status_code == 200: + get_task(session, headers) + else: + print(f"Отказ в авторизации для пользователя {user['email']}!") + time.sleep(1) + else: + print(users.get_passwords()) + + +if __name__ == "__main__": + main() + k = input("Press ENTER for exit") diff --git a/naled.py b/naled.py new file mode 100644 index 0000000..94893ca --- /dev/null +++ b/naled.py @@ -0,0 +1,145 @@ +import requests +import random +import string +# import json +import datetime +import time +import os +from classes.users import Users +from classes.users_led import Users_led +import classes.desinfection as des +import classes.proverka as prov +import classes.led as led + + +def get_addresses(email): + addresses = [] + # month = datetime.datetime.now().month + main_path = os.path.join(os.path.abspath('.'), 'data_led') + path = os.walk(os.path.join(main_path, email)) + # if not os.path.exists(os.path.join(main_path, email, str(month))): + # return f"Не найдена папка с месяцем у пользователя {email}! Проверьте \ + # структуру каталога!" + # print(path) + for d, dirs, files in path: + addresses.append(dirs) + if len(addresses[0]) > 0: + return addresses[0] + else: + return f"Ни одного адреса для пользователя {email} не найдено! \ + Добавьте фото и запустите программу снова!" + + +def get_task(session, headers): + """Получаем все доступные задания. Если в переменную search добавить адрес, + то будет искать этот адрес. Он попадет в + json_tasks['executions_available'], + так что надо понять откуда берем задания. Отсюда можно возвращать + все параметры задания: + 1 координаты + 2 адрес + 3 подъезд + 4 id_задания""" + desinfection = 'Дезинфекция подъездов (МОП)' + proverka = 'Систематическая проверка подъездов МКД' + naled = 'Проверка образования наледи на кровле' + # Получаем адреса + addresses = get_addresses(headers['uid']) + # Если адреса получили + if isinstance(addresses, list): + session_t = session + session_t.headers.update( + {'referer': 'https://knd.mosreg.ru/executions', + 'x-platform': 'android', + 'accept': '*/*' + } + ) + for address in addresses: + # change '-' for '/' + # need split enterance from address + addr = address.replace("Чаиковского", "Чайковского") + addr = address.replace("Маиданово", "Майданово") + search = addr.replace("_", "/") + # print(search) + data = {'search': search} + tasks = session_t.post('https://knd.mosreg.ru//api/v1/actor/executions', + headers=headers, + data=data + ) + json_tasks = tasks.json() + # get_t = False + # Если есть доступное задание с таким адресом + # + # Уже полученные задания + exec_assigned = json_tasks['executions_assigned'] + # print(exec_assigned) + # Еще не принятые задания + exec_available = json_tasks['executions_available'] + # print(exec_available) + # print(address) + if len(exec_assigned) > 0: + for n in exec_assigned: + coord = n['coord'] + enterances = n['tasks'] + for execution in enterances: + address_from_tasks = execution['dimensions'][0].get('entity_value_name') + # print(address_from_tasks) + name_from_tasks = execution['name'] + if name_from_tasks == naled: + enterance = execution['dimensions'][2].get('entity_value_name') + if address_from_tasks == 'Клин г, ' + addr.replace("_", "/"): + 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) + pass + elif name_from_tasks == proverka: + pass + # prov.assign_task(session, headers, task, address) + elif name_from_tasks == naled: + led.assign_task(session, headers, task, address) + else: + pass + else: + print(f"Нет доступных заданий для пользователя {headers['uid']} по адресу: {address}") + # Если адреса не получили выводим ошибку + else: + print(addresses) + + +def main(): + users = Users_led() + logins = users.get_passwords() + if isinstance(logins, list): + url = 'https://knd.mosreg.ru//api/v1/auth/sign_in' + for user in logins: + session = requests.Session() + login = { + 'email': user['email'], + 'password': user['password'] + } + response = session.post(url, data=login) + headers = { + 'client': response.headers.get('client'), + 'Access-token': response.headers.get('Access-token'), + 'uid': response.headers.get('uid'), + } + if response.status_code == 200: + get_task(session, headers) + else: + print(f"Отказ в авторизации для пользователя {user['email']}!") + time.sleep(1) + else: + print(users.get_passwords()) + + +if __name__ == "__main__": + main() + k = input("Press ENTER for exit")