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