Находим адрес по имени папки и принимаем задание

This commit is contained in:
Noretsa 2020-06-17 20:00:46 +03:00
parent 62b927a5c0
commit 08ce699702
3 changed files with 68 additions and 44 deletions

View File

@ -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

View File

@ -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())