DmitrMakeev commited on
Commit
ec75b5d
·
verified ·
1 Parent(s): 15c982e

Update app.py

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