DmitrMakeev commited on
Commit
653aa3d
·
verified ·
1 Parent(s): ec75b5d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +85 -56
app.py CHANGED
@@ -1,53 +1,25 @@
1
- import sqlite3
2
- from flask import Flask, request
3
  import requests
4
  import os
5
  import pytz
6
  import datetime
 
7
 
8
  base_url = os.getenv('base_url') # URL сервера
9
  token = os.getenv('token') # Ваш токен
 
10
 
11
- app = Flask(__name__, template_folder="./")
12
- db_path = 'users.db'
13
-
14
- # Создаем соединение с базой данных SQLite3
15
- def create_connection():
16
- conn = sqlite3.connect(db_path)
17
- return conn
18
-
19
- # Инициализируем базу данных
20
- def init_db():
21
- conn = create_connection()
22
- c = conn.cursor()
23
- # Создаем таблицу для пользователей, если она не существует
24
- c.execute('''CREATE TABLE IF NOT EXISTS users (
25
- id INTEGER PRIMARY KEY AUTOINCREMENT,
26
- name TEXT,
27
- email TEXT,
28
- phone TEXT,
29
- pr5 TEXT,
30
- pr4 TEXT,
31
- pr3 TEXT,
32
- pr2 TEXT,
33
- pr1 TEXT,
34
- timestamp TEXT
35
- )''')
36
- conn.commit()
37
- conn.close()
38
 
39
- # Функция для вставки данных пользователя в базу данных
40
- def insert_form_data(name, email, phone, pr5, pr4, pr3, pr2, pr1):
41
- conn = create_connection()
42
- c = conn.cursor()
43
- moscow_timezone = pytz.timezone('Europe/Moscow')
44
- current_datetime = datetime.datetime.now(moscow_timezone)
45
- timestamp = current_datetime.strftime('%Y-%m-%d %H:%M:%S')
46
- c.execute('''INSERT INTO users (name, email, phone, pr5, pr4, pr3, pr2, pr1, timestamp)
47
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)''',
48
- (name, email, phone, pr5, pr4, pr3, pr2, pr1, timestamp))
49
- conn.commit()
50
- conn.close()
51
 
52
  # Функция для отправки запроса на сервер
53
  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):
@@ -64,40 +36,97 @@ def send_request(list_id, email, phone, name, param_name, param_phone, pr5, pr4,
64
  {"parameter_id": param_name, "kind": "string", "list_id": list_id, "title": "name", "value": name}
65
  ]
66
  }
67
- headers = {'Authorization': f'Bearer {token}', 'Content-Type': 'application/json'}
 
 
 
 
68
  response = requests.post(f"{base_url}/email/lists/{list_id}/recipients", json=data, headers=headers)
69
  return response.json()
70
 
71
- # Инициализируем базу данных при запуске приложения
72
- init_db()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
 
74
- # Обработчик POST запроса на /incoming
75
  @app.route('/incoming', methods=['POST'])
76
  def handle_incoming_request():
77
  datas = request.json
78
  name = datas.get('name')
79
  email = datas.get('email')
80
  phone = datas.get('phone')
 
81
  pr5 = datas.get('pr5')
82
  pr4 = datas.get('pr4')
83
  pr3 = datas.get('pr3')
84
  pr2 = datas.get('pr2')
85
  pr1 = datas.get('pr1')
86
 
87
- # Сохраняем данные пользователя в базу данных SQLite3
88
- insert_form_data(name, email, phone, pr5, pr4, pr3, pr2, pr1)
 
 
 
89
 
90
- # Отправляем запросы в листы подряд
91
- response_1 = send_request(560768, email, phone, name, 393120, 393119, pr5, pr4, pr3, pr2, pr1, 393248, 393247, 393246, 393245, 393244)
92
- response_2 = send_request(560832, email, phone, name, 393196, 393195, pr5, pr4, pr3, pr2, pr1, 393267, 393266, 393265, 393264, 393263)
93
- response_3 = send_request(560833, email, phone, name, 393198, 393197, pr5, pr4, pr3, pr2, pr1, 393272, 393271, 393270, 393269, 393268)
94
 
95
- # Возвращаем список ответов
96
- return {'responses': [response_1, response_2, response_3]}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
 
98
- if __name__ == '__main__':
99
- app.run(debug=True)
100
-
101
 
102
 
103
  elif current_day == 1: # Вторник
 
1
+ from flask import Flask, request, render_template, jsonify
 
2
  import requests
3
  import os
4
  import pytz
5
  import datetime
6
+ import sqlite3
7
 
8
  base_url = os.getenv('base_url') # URL сервера
9
  token = os.getenv('token') # Ваш токен
10
+ api_key = os.getenv('api_key') # Ваш API ключ
11
 
12
+ datas = '0'
13
+ name = '0'
14
+ email = '0'
15
+ phone = '0'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
+ list_id_1 = 560768
18
+ list_id_2 = 560832
19
+ list_id_3 = 560833
20
+
21
+ # Инициализация Flask приложения
22
+ app = Flask(__name__, template_folder="./")
 
 
 
 
 
 
23
 
24
  # Функция для отправки запроса на сервер
25
  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):
 
36
  {"parameter_id": param_name, "kind": "string", "list_id": list_id, "title": "name", "value": name}
37
  ]
38
  }
39
+
40
+ headers = {
41
+ 'Authorization': f'Bearer {token}',
42
+ 'Content-Type': 'application/json'
43
+ }
44
  response = requests.post(f"{base_url}/email/lists/{list_id}/recipients", json=data, headers=headers)
45
  return response.json()
46
 
47
+ # Функция для сохранения данных в SQLite3
48
+ def save_to_database(name, email, phone, pr5, pr4, pr3, pr2, pr1):
49
+ conn = sqlite3.connect('users.db')
50
+ cur = conn.cursor()
51
+ # Создаем таблицу, если она не существует
52
+ cur.execute('''CREATE TABLE IF NOT EXISTS users
53
+ (id INTEGER PRIMARY KEY AUTOINCREMENT,
54
+ name TEXT,
55
+ email TEXT,
56
+ phone TEXT,
57
+ pr5 TEXT,
58
+ pr4 TEXT,
59
+ pr3 TEXT,
60
+ pr2 TEXT,
61
+ pr1 TEXT,
62
+ timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP)''')
63
+ # Вставляем данные пользователя в таблицу
64
+ cur.execute('''INSERT INTO users (name, email, phone, pr5, pr4, pr3, pr2, pr1)
65
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)''', (name, email, phone, pr5, pr4, pr3, pr2, pr1))
66
+ conn.commit()
67
+ conn.close()
68
 
69
+ # Определение маршрута для обработки входящих POST-запросов
70
  @app.route('/incoming', methods=['POST'])
71
  def handle_incoming_request():
72
  datas = request.json
73
  name = datas.get('name')
74
  email = datas.get('email')
75
  phone = datas.get('phone')
76
+
77
  pr5 = datas.get('pr5')
78
  pr4 = datas.get('pr4')
79
  pr3 = datas.get('pr3')
80
  pr2 = datas.get('pr2')
81
  pr1 = datas.get('pr1')
82
 
83
+ # Устанавливаем временную зону Москвы
84
+ moscow_timezone = pytz.timezone('Europe/Moscow')
85
+
86
+ # Получаем текущую дату и время в Московском времени
87
+ current_datetime = datetime.datetime.now(moscow_timezone)
88
 
89
+ # Получаем текущий день недели и час в Московском времени
90
+ current_day = current_datetime.weekday() # 0 - Понедельник, ..., 6 - Воскресенье
91
+ current_hour = current_datetime.hour
 
92
 
93
+ if current_day in [0, 4, 5, 6]: # Понедельник, Пятница, Суббота, Воскресенье
94
+ # Отправляем запросы в листы подряд
95
+ response_1 = send_request(560768, email, phone, name, 393120, 393119, pr5, pr4, pr3, pr2, pr1, 393248, 393247, 393246, 393245, 393244)
96
+ response_2 = send_request(560832, email, phone, name, 393196, 393195, pr5, pr4, pr3, pr2, pr1, 393267, 393266, 393265, 393264, 393263)
97
+ response_3 = send_request(560833, email, phone, name, 393198, 393197, pr5, pr4, pr3, pr2, pr1, 393272, 393271, 393270, 393269, 393268)
98
+
99
+ # Сохраняем данные в базу данных SQLite3
100
+ save_to_database(name, email, phone, pr5, pr4, pr3, pr2, pr1)
101
+
102
+ # Возвращаем список ответов
103
+ return {'responses': [response_2, response_3]}
104
+
105
+ elif current_day == 1: # Вторник
106
+ if current_hour < 19:
107
+ # Утром во вторник
108
+ # Комментарий: Отправка в лист 1, лист 2, лист 3
109
+ response_1 = send_request(560768, email, phone, name, 393120, 393119, pr5, pr4, pr3, pr2, pr1, 393248, 393247, 393246, 393245, 393244)
110
+ response_2 = send_request(560832, email, phone, name, 393196, 393195, pr5, pr4, pr3, pr2, pr1, 393267, 393266, 393265, 393264, 393263)
111
+ response_3 = send_request(560833, email, phone, name, 393198, 393197, pr5, pr4, pr3, pr2, pr1, 393272, 393271, 393270, 393269, 393268)
112
+
113
+ # Сохраняем данные в базу данных SQLite3
114
+ save_to_database(name, email, phone, pr5, pr4, pr3, pr2, pr1)
115
+
116
+ # Возвращаем список ответов
117
+ return {'responses': [response_1, response_2, response_3]}
118
+ else:
119
+ # Вечером во вторник
120
+ # Комментарий: Отправка только лист 2, лист 3
121
+ response_2 = send_request(560832, email, phone, name, 393196, 393195, pr5, pr4, pr3, pr2, pr1, 393267, 393266, 393265, 393264, 393263)
122
+ response_3 = send_request(560833, email, phone, name, 393198, 393197, pr5, pr4, pr3, pr2, pr1, 393272, 393271, 393270, 393269, 393268)
123
+
124
+ # Сохраняем данные в базу данных SQLite3
125
+ save_to_database(name, email, phone, pr5, pr4, pr3, pr2, pr1)
126
+
127
+ # Возвращаем список ответов
128
+ return {'responses': [response_2, response_3]}
129
 
 
 
 
130
 
131
 
132
  elif current_day == 1: # Вторник