Spaces:
Sleeping
Sleeping
| 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') # Ваш | |
| headers = { | |
| 'Authorization': f'Bearer {token}', | |
| 'Content-Type': 'application/json' | |
| } | |
| 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="./") | |
| def grup(): | |
| return render_template('grups.html') | |
| def send_request(): | |
| 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) | |
| 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 | |
| } | |
| ] | |
| } | |
| response = requests.post(f"{base_url}/email/lists/{list_id}/recipients", json=data, headers=headers) | |
| return response.json() | |
| 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(list_id_1, email, phone, name, 393120, 393119, pr5, pr4, pr3, pr2, pr1, 393248, 393247, 393246, 393245, 393244) | |
| # Возвращаем список ответов | |
| return {'responses': [response_1]} | |
| elif current_day == 1: # Вторник | |
| if current_hour < 19: | |
| # Утром во вторник | |
| # Комментарий: Отправка в лист 1, лист 2, лист 3 | |
| # Вторник - Утро - Лист 1 | |
| data_1 = { | |
| "email": email, | |
| "unconfirmed": False, | |
| "values": [ | |
| { | |
| "parameter_id": 393120, | |
| "kind": "string", | |
| "list_id": list_id_1, | |
| "title": "phone", | |
| "value": phone | |
| }, | |
| { | |
| "parameter_id": 393119, | |
| "kind": "string", | |
| "list_id": list_id_1, | |
| "title": "name", | |
| "value": name | |
| } | |
| ] | |
| } | |
| headers = { | |
| 'Authorization': f'Bearer {token}', | |
| 'Content-Type': 'application/json' | |
| } | |
| # Отправляем первый запрос и сохраняем ответ | |
| response_1 = requests.post(f"{base_url}/email/lists/{list_id_1}/recipients", json=data_1, headers=headers) | |
| # Вторник - Утро - Лист 2 | |
| data_1 = { | |
| "email": email, | |
| "unconfirmed": False, | |
| "values": [ | |
| { | |
| "parameter_id": 393120, | |
| "kind": "string", | |
| "list_id": list_id_2, | |
| "title": "phone", | |
| "value": phone | |
| }, | |
| { | |
| "parameter_id": 393119, | |
| "kind": "string", | |
| "list_id": list_id_2, | |
| "title": "name", | |
| "value": name | |
| } | |
| ] | |
| } | |
| headers = { | |
| 'Authorization': f'Bearer {token}', | |
| 'Content-Type': 'application/json' | |
| } | |
| # Отправляем первый запрос и сохраняем ответ | |
| response_2 = requests.post(f"{base_url}/email/lists/{list_id_1}/recipients", json=data_1, headers=headers) | |
| # Возвращаем список ответов | |
| return {'responses': [response_1.json()]} | |
| else: | |
| # Вечером во вторник | |
| # Комментарий: Отправка в лист 1, лист 2, лист 3 | |
| show_params = False | |
| list_id = 560771 | |
| 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": 560771, | |
| "title": "phone", | |
| "value": phone | |
| }, | |
| { | |
| "parameter_id": 393119, | |
| "kind": "string", | |
| "list_id": 560771, | |
| "title": "name", | |
| "value": name | |
| } | |
| ] | |
| } | |
| headers = { | |
| 'Authorization': f'Bearer {token}', | |
| 'Content-Type': 'application/json' | |
| } | |
| response = requests.post(f"{base_url}/email/lists/560771/recipients", json=data, headers=headers) | |
| show_params = False | |
| list_id = 560772 | |
| 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": 560772, | |
| "title": "phone", | |
| "value": phone | |
| }, | |
| { | |
| "parameter_id": 393119, | |
| "kind": "string", | |
| "list_id": 560772, | |
| "title": "name", | |
| "value": name | |
| } | |
| ] | |
| } | |
| headers = { | |
| 'Authorization': f'Bearer {token}', | |
| 'Content-Type': 'application/json' | |
| } | |
| response = requests.post(f"{base_url}/email/lists/560772/recipients", json=data, headers=headers) | |
| show_params = False | |
| list_id = 560773 | |
| 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": 560773, | |
| "title": "phone", | |
| "value": phone | |
| }, | |
| { | |
| "parameter_id": 393119, | |
| "kind": "string", | |
| "list_id": 560773, | |
| "title": "name", | |
| "value": name | |
| } | |
| ] | |
| } | |
| headers = { | |
| 'Authorization': f'Bearer {token}', | |
| 'Content-Type': 'application/json' | |
| } | |
| response = requests.post(f"{base_url}/email/lists/560773/recipients", json=data, headers=headers) | |
| 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))) |