flask_irinas / app.py
DmitrMakeev's picture
Update app.py
e9dbef6 verified
raw
history blame
22.9 kB
from flask import Flask, request, render_template, jsonify
import requests
import datetime
import os
import pytz
base_url = os.getenv('base_url') # URL сервера
token = os.getenv('token') # Ваш токен
api_key = os.getenv('api_key') # Ваш
datas = '0'
name = '0'
email = '0'
phone = '0'
list_id_1 = 560768
list_id_2 = 560832
list_id_3 = 560833
app = Flask(__name__, template_folder="./")
@app.route('/grups', methods=['GET'])
def grup():
return render_template('grups.html')
@app.route('/send_request_gr', methods=['POST'])
def send_request_gr():
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
api_token = request.form.get('api_token')
group_id = request.form.get('group_id')
url = f"https://api.notisend.ru/v1/email/lists/{group_id}/parameters"
response = requests.get(url, headers=headers)
data = response.json()
return jsonify(data)
@app.route('/save_db', methods=['GET'])
def save_db():
show_params = False
list_id = request.args.get('list_id')
name = request.args.get('name')
name_id = request.args.get('name_id')
email = request.args.get('email')
phone = request.args.get('phone')
phone_id = request.args.get('phone_id')
pr1 = request.args.get('pr1')
pr1_id = request.args.get('pr1_id')
pr2 = request.args.get('pr2')
pr2_id = request.args.get('pr2_id')
pr3 = request.args.get('pr3')
pr3_id = request.args.get('pr3_id')
pr4 = request.args.get('pr4')
pr4_id = request.args.get('pr4_id')
pr5 = request.args.get('pr5')
pr5_id = request.args.get('pr5_id')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": pr5_id,
"kind": "string",
"list_id": list_id,
"title": "pr5",
"value": pr5
},
{
"parameter_id": pr4_id,
"kind": "string",
"list_id": list_id,
"title": "pr4",
"value": pr4
},
{
"parameter_id": pr3_id,
"kind": "string",
"list_id": list_id,
"title": "pr3",
"value": pr3
},
{
"parameter_id": pr2_id,
"kind": "string",
"list_id": list_id,
"title": "pr2",
"value": pr2
},
{
"parameter_id": pr1_id,
"kind": "string",
"list_id": list_id,
"title": "pr1",
"value": pr1
},
{
"parameter_id": phone_id,
"kind": "string",
"list_id": list_id,
"title": "phone",
"value": phone
},
{
"parameter_id": name_id,
"kind": "string",
"list_id": list_id,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/{list_id}/recipients", json=data, headers=headers)
if show_params:
system_vars = {
'base_url': base_url,
'token': token
}
return jsonify({'system_variables': system_vars, 'request_parameters': request.args})
else:
return response.text
def send_request(list_id, email, phone, name, param_name, param_phone, pr5, pr4, pr3, pr2, pr1, pr5_id, pr4_id, pr3_id, pr2_id, pr1_id):
"""Функция для отправки запроса на сервер."""
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": pr5_id,
"kind": "string",
"list_id": list_id,
"title": "pr5",
"value": pr5
},
{
"parameter_id": pr4_id,
"kind": "string",
"list_id": list_id,
"title": "pr4",
"value": pr4
},
{
"parameter_id": pr3_id,
"kind": "string",
"list_id": list_id,
"title": "pr3",
"value": pr3
},
{
"parameter_id": pr2_id,
"kind": "string",
"list_id": list_id,
"title": "pr2",
"value": pr2
},
{
"parameter_id": pr1_id,
"kind": "string",
"list_id": list_id,
"title": "pr1",
"value": pr1
},
{
"parameter_id": param_phone,
"kind": "string",
"list_id": list_id,
"title": "phone",
"value": phone
},
{
"parameter_id": param_name,
"kind": "string",
"list_id": list_id,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/{list_id}/recipients", json=data, headers=headers)
return response.json()
@app.route('/incoming', methods=['POST'])
def handle_incoming_request():
datas = request.json
name = datas.get('name')
email = datas.get('email')
phone = datas.get('phone')
pr5 = datas.get('pr5')
pr4 = datas.get('pr4')
pr3 = datas.get('pr3')
pr2 = datas.get('pr2')
pr1 = datas.get('pr1')
# Устанавливаем временную зону Москвы
moscow_timezone = pytz.timezone('Europe/Moscow')
# Получаем текущую дату и время в Московском времени
current_datetime = datetime.datetime.now(moscow_timezone)
# Получаем текущий день недели и час в Московском времени
current_day = current_datetime.weekday() # 0 - Понедельник, ..., 6 - Воскресенье
current_hour = current_datetime.hour
if current_day in [0, 4, 5, 6]: # Понедельник, Пятница, Суббота, Воскресенье
# Отправляем запросы в листы подряд
response_1 = send_request(560768, email, phone, name, 393120, 393119, pr5, pr4, pr3, pr2, pr1, 393248, 393247, 393246, 393245, 393244)
response_2 = send_request(560832, email, phone, name, 393196, 393195, pr5, pr4, pr3, pr2, pr1, 393267, 393266, 393265, 393264, 393263)
response_3 = send_request(560833, email, phone, name, 393198, 393197, pr5, pr4, pr3, pr2, pr1, 393272, 393271, 393270, 393269, 393268)
# Возвращаем список ответов
return {'responses': [response_1,response_2,response_3]}
elif current_day == 1: # Вторник
if current_hour < 19:
# Утром во вторник
# Комментарий: Отправка в лист 1, лист 2, лист 3
response_1 = send_request(560768, email, phone, name, 393120, 393119, pr5, pr4, pr3, pr2, pr1, 393248, 393247, 393246, 393245, 393244)
response_2 = send_request(560832, email, phone, name, 393196, 393195, pr5, pr4, pr3, pr2, pr1, 393267, 393266, 393265, 393264, 393263)
response_3 = send_request(560833, email, phone, name, 393198, 393197, pr5, pr4, pr3, pr2, pr1, 393272, 393271, 393270, 393269, 393268)
# Возвращаем список ответов
return {'responses': [response_1,response_2,response_3]}
else:
# Вечером во вторник
# Комментарий: Отправка только лист 2, лист 3
response_2 = send_request(560832, email, phone, name, 393196, 393195, pr5, pr4, pr3, pr2, pr1, 393267, 393266, 393265, 393264, 393263)
response_3 = send_request(560833, email, phone, name, 393198, 393197, pr5, pr4, pr3, pr2, pr1, 393272, 393271, 393270, 393269, 393268)
# Возвращаем список ответов
return {'responses': [response_2,response_3]}
elif current_day == 2: # Среда
if current_hour < 19:
# Утром в среду
# Комментарий: Отправка в лист 1, лист 2, лист 3
show_params = False
list_id = 560774
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560774,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560774,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560774/recipients", json=data, headers=headers)
show_params = False
list_id = 560775
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560775,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560775,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560775/recipients", json=data, headers=headers)
show_params = False
list_id = 560776
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560776,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560776,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560776/recipients", json=data, headers=headers)
else:
# Вечером в среду
# Комментарий: Отправка в лист 1, лист 2, лист 3
show_params = False
list_id = 560777
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560777,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560777,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560777/recipients", json=data, headers=headers)
show_params = False
list_id = 560778
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560778,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560778,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560778/recipients", json=data, headers=headers)
show_params = False
list_id = 560779
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560779,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560779,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560779/recipients", json=data, headers=headers)
elif current_day == 3: # Четверг
if current_hour < 19:
# Утром в четверг
# Комментарий: Отправка в лист 1, лист 2, лист 3
show_params = False
list_id = 560780
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560780,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560780,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560780/recipients", json=data, headers=headers)
show_params = False
list_id = 560781
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560781,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560781,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560781/recipients", json=data, headers=headers)
show_params = False
list_id = 560782
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560782,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560782,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560782/recipients", json=data, headers=headers)
else:
# Вечером в четверг
# Комментарий: Отправка в лист 1, лист 2, лист 3
show_params = False
list_id = 560783
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560783,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560783,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560783/recipients", json=data, headers=headers)
show_params = False
list_id = 560784
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560784,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560784,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560784/recipients", json=data, headers=headers)
show_params = False
list_id = 560785
name = request.args.get('name')
email = request.args.get('email')
phone = request.args.get('phone')
data = {
"email": email,
"unconfirmed": False,
"values": [
{
"parameter_id": 393120,
"kind": "string",
"list_id": 560785,
"title": "phone",
"value": phone
},
{
"parameter_id": 393119,
"kind": "string",
"list_id": 560785,
"title": "name",
"value": name
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(f"{base_url}/email/lists/560785/recipients", json=data, headers=headers)
return response.json()
if __name__ == '__main__':
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))