Находим адрес по имени папки и принимаем задание
This commit is contained in:
parent
62b927a5c0
commit
08ce699702
Binary file not shown.
@ -1,13 +1,11 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
class Users:
|
class Users:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.data = []
|
self.data = []
|
||||||
self.path = os.path.join(os.path.abspath('.'), 'data')
|
self.path = os.path.join(os.path.abspath('.'), 'data')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_users(self):
|
def get_users(self):
|
||||||
self.logins = []
|
self.logins = []
|
||||||
main_dir = os.walk(self.path)
|
main_dir = os.walk(self.path)
|
||||||
@ -19,8 +17,12 @@ class Users:
|
|||||||
if not os.path.exists(self.path):
|
if not os.path.exists(self.path):
|
||||||
return "Папка data не существует. Создайте папку с необходимыми параметрами и запустите программу снова!"
|
return "Папка data не существует. Создайте папку с необходимыми параметрами и запустите программу снова!"
|
||||||
self.emails = self.get_users()
|
self.emails = self.get_users()
|
||||||
for user in self.emails:
|
if len(self.emails) > 0:
|
||||||
with open(os.path.join(self.path, user, 'pass.txt'), 'r') as f:
|
for user in self.emails:
|
||||||
log_pass = {'email': user, 'password': f.readline().split('\n')[0]}
|
with open(os.path.join(self.path, user, 'pass.txt'), 'r') as f:
|
||||||
self.data.append(log_pass)
|
log_pass = {'email': user, 'password': f.readline().split('\n')[0]}
|
||||||
|
self.data.append(log_pass)
|
||||||
|
else:
|
||||||
|
return "Нет ни одного пользователя! Заполните папку и запустите программу снова!"
|
||||||
return self.data
|
return self.data
|
||||||
|
|
||||||
|
|||||||
96
knd_bot.py
96
knd_bot.py
@ -2,7 +2,9 @@ import requests
|
|||||||
import random
|
import random
|
||||||
import string
|
import string
|
||||||
import json
|
import json
|
||||||
|
import datetime
|
||||||
import time
|
import time
|
||||||
|
import os
|
||||||
from classes.users import Users
|
from classes.users import Users
|
||||||
|
|
||||||
|
|
||||||
@ -43,6 +45,28 @@ def send_image(session, headers, url):
|
|||||||
# print(img.status_code)
|
# print(img.status_code)
|
||||||
|
|
||||||
|
|
||||||
|
def get_addresses(email):
|
||||||
|
addresses = []
|
||||||
|
month = datetime.datetime.now().month
|
||||||
|
main_path = os.path.join(os.path.abspath('.'), 'data')
|
||||||
|
path = os.walk(os.path.join(main_path, email, str(month)))
|
||||||
|
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):
|
||||||
|
task = session.put('https://knd.mofsreg.ru//api/v1/executions/'+str(task['id'])+'/assign', headers=headers)
|
||||||
|
if task.status_code == 200:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
print(f"Не смогли получить задание {task['id']}!")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_task(session, headers):
|
def get_task(session, headers):
|
||||||
"""Получаем все доступные задания. Если в переменную search добавить адрес,
|
"""Получаем все доступные задания. Если в переменную search добавить адрес,
|
||||||
то будет искать этот адрес. Он попадет в
|
то будет искать этот адрес. Он попадет в
|
||||||
@ -53,42 +77,37 @@ def get_task(session, headers):
|
|||||||
2 адрес
|
2 адрес
|
||||||
3 подъезд
|
3 подъезд
|
||||||
4 id_задания"""
|
4 id_задания"""
|
||||||
session_t = session
|
# Получаем адреса
|
||||||
session_t.headers.update({'referer': 'https://knd.mosreg.ru/executions', 'x-platform': 'wb', 'accept': '*/*'})
|
addresses = get_addresses(headers['uid'])
|
||||||
search = ''
|
# Если адреса получили
|
||||||
data = {'search': search}# in search можно положить адрес и выдаст только его
|
if isinstance(addresses, list):
|
||||||
tasks = session_t.post('https://knd.mosreg.ru//api/v1/executions', headers=headers, data=data)
|
session_t = session
|
||||||
json_tasks = tasks.json()
|
session_t.headers.update({'referer': 'https://knd.mosreg.ru/executions', 'x-platform': 'wb', 'accept': '*/*'})
|
||||||
for n in json_tasks['executions_available']:
|
for address in addresses:
|
||||||
coord = n['coord']
|
search = address
|
||||||
enterance = n['tasks']
|
data = {'search': search}
|
||||||
for execution in enterance:
|
tasks = session_t.post('https://knd.mosreg.ru//api/v1/executions', headers=headers, data=data)
|
||||||
task = {
|
json_tasks = tasks.json()
|
||||||
'id': execution['execution_id'],
|
# Если есть доступное задание с таким адресом
|
||||||
'address': execution['dimensions'][0].get('entity_value_name'),
|
if len(json_tasks['executions_available']) > 0:
|
||||||
'enterance': execution['dimensions'][2].get('entity_value_name'),
|
for n in json_tasks['executions_available']:
|
||||||
'coord': coord
|
coord = n['coord']
|
||||||
}
|
enterance = n['tasks']
|
||||||
print(task)
|
for execution in enterance:
|
||||||
# choose = len(json_tasks['executions_available'])
|
task = {
|
||||||
# print(choose)
|
'id': execution['execution_id'],
|
||||||
# get_t = session.put('https://knd.mosreg.ru//api/v1/executions/23244405/assign', headers=headers)# получаем задание из списка доступных для всех
|
'address': execution['dimensions'][0].get('entity_value_name'),
|
||||||
# print(get_t.text)
|
'enterance': execution['dimensions'][2].get('entity_value_name'),
|
||||||
# print("Всего назначено домов на сегодня: " + str(len(json_tasks['executions_assigned'])))
|
'coord': coord
|
||||||
# if len(json_tasks['executions_assigned']) > 0:
|
}
|
||||||
# for n in json_tasks['executions_assigned']:
|
# Принимаем задание
|
||||||
# coord = n['coord'] # Координаты каждого дома
|
assign_task(session, headers, task)
|
||||||
# enterence = n['tasks'] # Подъезды в каждом доме
|
# Если нет задания с таким адресом
|
||||||
# for execution in enterence:
|
else:
|
||||||
# task = {
|
print(f"Нет доступных заданий для пользователя {headers['uid']} по адресу: {address}")
|
||||||
# 'id': execution['execution_id'],
|
# Если адреса не получили выводим ошибку
|
||||||
# 'address': execution['dimensions'][0].get('entity_value_name'),
|
else:
|
||||||
# 'enterance': execution['dimensions'][2].get('entity_value_name'),
|
print(addresses)
|
||||||
# 'coord': coord
|
|
||||||
# }
|
|
||||||
# send_execution(task, session, headers)
|
|
||||||
# break
|
|
||||||
# break
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -108,7 +127,10 @@ def main():
|
|||||||
'Access-token': response.headers.get('Access-token'),
|
'Access-token': response.headers.get('Access-token'),
|
||||||
'uid': response.headers.get('uid'),
|
'uid': response.headers.get('uid'),
|
||||||
}
|
}
|
||||||
print(headers)
|
if response.status_code == 200:
|
||||||
|
get_task(session, headers)
|
||||||
|
else:
|
||||||
|
print(f"Отказ в авторизации для пользователя {user['email']}!")
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
else:
|
else:
|
||||||
print(users.get_passwords())
|
print(users.get_passwords())
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user