knd_klinteplo/knd_bot.py
2020-06-15 15:01:59 +03:00

145 lines
6.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import requests
import random
import string
import json
# anwer_text = '{"question_chains":[{"id":6145,"questions":[{"id":6559,"question_components":[{"id":18850,"answer":[80634165],"answer_status":null,"end_time":1591866979,"start_time":1591866978},{"id":18851,"answer":{"location":[56.439337,36.557897]},"answer_status":null,"start_time":1591866873,"end_time":1591867165},{"id":18852,"answer":"1","answer_status":null,"start_time":1591867063,"end_time":1591867063}]}]},{"id":6147,"questions":[{"id":6561,"question_components":[{"id":18856,"answer":77,"answer_status":null,"end_time":1591867067,"start_time":1591867067},{"id":18857,"answer":[80639138],"answer_status":null,"end_time":1591867186,"start_time":1591867185}]}]},{"id":6147,"questions":[{"id":6561,"question_components":[{"id":18856,"answer":77,"answer_status":null,"end_time":1591867200,"start_time":1591867200},{"id":18857,"answer":[80639640],"answer_status":null,"end_time":1591867206,"start_time":1591867205}]}]},{"id":6147,"questions":[{"id":6561,"question_components":[{"id":18856,"answer":77,"answer_status":null,"end_time":1591867211,"start_time":1591867211},{"id":18857,"answer":[80640010],"answer_status":null,"end_time":1591867220,"start_time":1591867219}]}]},{"id":6147,"questions":[{"id":6561,"question_components":[{"id":18856,"answer":77,"answer_status":null,"end_time":1591867223,"start_time":1591867223},{"id":18857,"answer":[80640333],"answer_status":null,"end_time":1591867233,"start_time":1591867232}]}]}]}'
# question_text = ''
def get_enterance_and_coord(session, headers, execution_id):
photo_id = send_image(session, headers, execution_id)
pass
def send_execution(session, headers):
# answers_for_data = [{"id":6145,"questions":[{"id":6559,"question_components":[{"id":18850,"answer":[80634165],"answer_status":null,"end_time":1591866979,"start_time":1591866978},{"id":18851,"answer":{"location":[56.439337,36.557897]},"answer_status":null,"start_time":1591866873,"end_time":1591867165}]}]}]
data = {"question_chains": [
{
"id": '6145',
"questions": get_enterance_and_coord(),
}
]}
pass
def send_image(session, headers, url):
"""Отправляем фото на сервер. Сервер должен вернуть id и url."""
files = {
'image': ('1.jpg', open('1.jpg', 'rb')),
}
img = session.post('https://knd.mosreg.ru//api/v1/executions/22515485/images', headers=headers, files=files)
return img.json()
# print(img.headers)
# print(img.text)
# print(img.status_code)
def get_task(session, headers):
"""Получаем все доступные задания. Если в переменную search добавить адрес,
то будет искать этот адрес. Он попадет в
json_tasks['executions_available'],
так что надо понять откуда берем задания. Отсюда можно возвращать
все параметры задания:
1 координаты
2 адрес
3 подъезд
4 id_задания"""
session.headers.update({'referer': 'https://knd.mosreg.ru/executions', 'x-platform': 'wb', 'accept': '*/*'})
search = ''
data = {'search': search}# in search можно положить адрес и выдаст только его
tasks = session.post('https://knd.mosreg.ru//api/v1/executions', headers=headers, data=data)
print(tasks.json())
json_tasks = tasks.json()
print("Всего назначено домов на сегодня: " + str(len(json_tasks['executions_assigned'])))
if len(json_tasks['executions_assigned']) > 0:
for n in json_tasks['executions_assigned']:
coord = n['coord'] # Координаты каждого дома
enterence = n['tasks'] # Подъезды в каждом доме
for execution in enterence:
print(execution['execution_id']) # id задания
print(execution['dimensions'][0].get('entity_value_name')) # Адрес
print(execution['dimensions'][2].get('entity_value_name')) # Подъезд
print(json_tasks['executions_assigned'][0]['coord'])
def main():
session = requests.Session()
login = {
'email': 'domreshetnikovo@gmail.com',
'password': 'kn2001'
}
url = 'https://knd.mosreg.ru//api/v1/auth/sign_in'
response = session.post(url, data=login)
headers = {
'client': response.headers.get('client'),
'Access-token': response.headers.get('Access-token'),
'uid': response.headers.get('uid'),
}
get_task(session, headers)
if __name__ == "__main__":
main()
# headers = response.headers
# print(item[0]['tasks'])
# print(len(item[3]['tasks']))
# print(item[3]['coord'])
# count = 0
# for item in json_exec.get('executions_assigned'):
# print(item['tasks'])
# if count < 1:
# # for n in item['tasks']:
# # print(n['dimensions'])
# count = count + 1
# for task in item.get('tasks'):
# pass
# send_image(session, headers, "some")
# get_coord(str1)
# get_answers(session, headers)
# get_questions(session, headers)
# print(executions.text)
def random_string(stringLength):
letters = string.ascii_letters
digits = string.digits
return ''.join(random.choice(letters+digits) for i in range(stringLength))
# def get_coord(address):
# url = 'https://geocode-maps.yandex.ru/1.x/?format=json&apikey=591be3ec-2816-40ee-b575-08e687d27b37&geocode='+address
# coord = requests.get(url)
# print(coord.text)
# def get_task(session, task_id, headers):
# task = session.get('https://knd.mosreg.ru//api/v1/executions/', headers=headers)
# json_task = task.json()
# print(json_task)
# def get_answers(session, headers):
# answers = session.post('https://knd.mosreg.ru//api/v1/executions/22515485/answers', headers=headers)
# json_answers = answers.json()
# for ans in json_answers.get('question_chains'):
# print(ans)
# # print(json_answers)
# def get_questions(session, headers):
# question = session.get('https://knd.mosreg.ru//api/v1/executions/22515485/questions', headers=headers)
# json_question = question.json()
# for s in json_question['selected_chains']:
# for n in s['questions']:
# print(n['question_components'])