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', methods=['POST']) 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" headers = { 'Content-Type': 'application/json', 'Authorization': f'Bearer {api_token}' } 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 @app.route('/incoming', methods=['POST']) def handle_incoming_request(): datas = request.json name = datas.get('name') email = datas.get('email') phone = datas.get('phone') # Устанавливаем временную зону Москвы 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]: # Понедельник, Пятница, Суббота, Воскресенье # Отправка в лист 1, лист 2 подряд # Лист 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_2 = { "email": email, "unconfirmed": False, "values": [ { "parameter_id": 393196, "kind": "string", "list_id": list_id_2, "title": "phone", "value": phone }, { "parameter_id": 393195, "kind": "string", "list_id": list_id_2, "title": "name", "value": name } ] } # Добавляем заголовок для второго запроса headers_2 = { 'Authorization': f'Bearer {token}', 'Content-Type': 'application/json' } # Отправляем второй запрос и сохраняем ответ response_2 = requests.post(f"{base_url}/email/lists/{list_id_2}/recipients", json=data_2, headers=headers_2) # Лист 3 data_3 = { "email": email, "unconfirmed": False, "values": [ { "parameter_id": 393198, "kind": "string", "list_id": list_id_3, "title": "phone", "value": phone }, { "parameter_id": 393197, "kind": "string", "list_id": list_id_3, "title": "name", "value": name } ] } # Добавляем заголовок для второго запроса headers_3 = { 'Authorization': f'Bearer {token}', 'Content-Type': 'application/json' } # Отправляем второй запрос и сохраняем ответ response_3 = requests.post(f"{base_url}/email/lists/{list_id_3}/recipients", json=data_3, headers=headers_3) # Возвращаем список ответов return {'responses': [response_1.json(), response_2.json(), response_3.json()]} 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) # Возвращаем список ответов 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)))