Update app.py
Browse files
app.py
CHANGED
@@ -93,8 +93,7 @@ if not os.path.exists(HTML_FOLDER):
|
|
93 |
|
94 |
|
95 |
DATABASES = ['data_gc.db', 'site_data.db', 'ws_data.db', 'vk_data.db', 'tg_data.db', 'gk_data.db']
|
96 |
-
|
97 |
-
|
98 |
|
99 |
def init_db(db_name):
|
100 |
conn = sqlite3.connect(db_name)
|
@@ -142,110 +141,110 @@ def init_db(db_name):
|
|
142 |
conn.commit()
|
143 |
conn.close()
|
144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
for db in DATABASES:
|
146 |
init_db(db)
|
147 |
|
148 |
-
|
149 |
DATABASE_NEW = 'data_gc.db'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
|
|
|
|
|
|
|
|
|
151 |
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
def get_ip_address():
|
156 |
-
global server_ip
|
157 |
-
if server_ip is None:
|
158 |
-
# Определяем IP-адрес сервера
|
159 |
-
hostname = socket.gethostname()
|
160 |
-
server_ip = socket.gethostbyname(hostname)
|
161 |
-
return server_ip
|
162 |
-
|
163 |
-
@app.route('/ip')
|
164 |
-
def index():
|
165 |
-
# Получаем IP-адрес и порт
|
166 |
-
ip_address = get_ip_address()
|
167 |
-
port = int(os.environ.get('PORT', 7860)) # Порт по умолчанию 7860
|
168 |
-
# Формируем HTML-страницу
|
169 |
-
html = f"""
|
170 |
-
<html>
|
171 |
-
<head>
|
172 |
-
<title>Server Info</title>
|
173 |
-
</head>
|
174 |
-
<body>
|
175 |
-
<h1>Server Information</h1>
|
176 |
-
<p>IP Address: {ip_address}</p>
|
177 |
-
<p>Port: {port}</p>
|
178 |
-
</body>
|
179 |
-
</html>
|
180 |
-
"""
|
181 |
-
return render_template_string(html)
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
# Глобальные переменные для хранения настроек
|
188 |
-
api_key_auth = ''
|
189 |
-
crypto_key_auth = ''
|
190 |
-
crypto_key_url = ''
|
191 |
-
vk_api_key_ser = ''
|
192 |
-
senler_token_ser = ''
|
193 |
-
wa_ak_ser = ''
|
194 |
-
wa_api_key_ser = ''
|
195 |
-
curators_ser = ''
|
196 |
-
call_api_key_ser = ''
|
197 |
-
|
198 |
-
# Пример данных настроек
|
199 |
-
settings = {
|
200 |
-
'api_key_auth': 'api_key_auth_setting',
|
201 |
-
'crypto_key_auth': 'crypto_key_auth_setting',
|
202 |
-
'crypto_key_url': 'crypto_key_url_setting',
|
203 |
-
'vk_api_key': 'vk_api_key_setting',
|
204 |
-
'senler_token': 'senler_token_setting',
|
205 |
-
'wa_ak': 'wa_ak_setting',
|
206 |
-
'wa_api_key': 'wa_api_key_setting',
|
207 |
-
'curators': 'curators_setting',
|
208 |
-
'call_api_key': 'call_api_key_setting'
|
209 |
-
}
|
210 |
-
|
211 |
-
def update_global_variables_from_settings():
|
212 |
-
global api_key_auth, crypto_key_auth, crypto_key_url, vk_api_key_ser, senler_token_ser, wa_ak_ser, wa_api_key_ser, curators_ser, call_api_key_ser
|
213 |
-
|
214 |
-
# Обновляем глобальные переменные из массива settings
|
215 |
-
api_key_auth = settings.get('api_key_auth', '')
|
216 |
-
crypto_key_auth = settings.get('crypto_key_auth', '')
|
217 |
-
crypto_key_url = settings.get('crypto_key_url', '')
|
218 |
-
vk_api_key_ser = settings.get('vk_api_key', '')
|
219 |
-
senler_token_ser = settings.get('senler_token', '')
|
220 |
-
wa_ak_ser = settings.get('wa_ak', '')
|
221 |
-
wa_api_key_ser = settings.get('wa_api_key', '')
|
222 |
-
curators_ser = settings.get('curators', '')
|
223 |
-
call_api_key_ser = settings.get('call_api_key', '')
|
224 |
-
|
225 |
-
# Выводим значения в консоль сервера
|
226 |
-
print("Обновленные глобальные переменные:")
|
227 |
-
print(f"api_key_auth: {api_key_auth}")
|
228 |
-
print(f"crypto_key_auth: {crypto_key_auth}")
|
229 |
-
print(f"crypto_key_url: {crypto_key_url}")
|
230 |
-
print(f"vk_api_key_ser: {vk_api_key_ser}")
|
231 |
-
print(f"senler_token_ser: {senler_token_ser}")
|
232 |
-
print(f"wa_ak_ser: {wa_ak_ser}")
|
233 |
-
print(f"wa_api_key_ser: {wa_api_key_ser}")
|
234 |
-
print(f"curators_ser: {curators_ser}")
|
235 |
-
print(f"call_api_key_ser: {call_api_key_ser}")
|
236 |
-
|
237 |
|
|
|
|
|
|
|
238 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
|
250 |
@app.route('/load_settings', methods=['POST'])
|
251 |
def get_settings():
|
@@ -253,9 +252,11 @@ def get_settings():
|
|
253 |
client_api_key_sys = request.json.get('api_key_sys')
|
254 |
|
255 |
# Проверка ключа авторизации
|
256 |
-
if client_api_key_sys != api_key_sys:
|
257 |
return jsonify({"error": "Unauthorized access"}), 403
|
258 |
|
|
|
|
|
259 |
return jsonify(settings)
|
260 |
|
261 |
@app.route('/save_settings', methods=['POST'])
|
@@ -264,11 +265,13 @@ def save_settings_route():
|
|
264 |
client_api_key_sys = request.json.get('api_key_sys')
|
265 |
|
266 |
# Проверка ключа авторизации
|
267 |
-
if client_api_key_sys != api_key_sys:
|
268 |
return jsonify({"error": "Unauthorized access"}), 403
|
269 |
|
270 |
data = request.json.get('data', {})
|
271 |
if data:
|
|
|
|
|
272 |
save_settings(data)
|
273 |
return jsonify({'status': 'success'})
|
274 |
else:
|
|
|
93 |
|
94 |
|
95 |
DATABASES = ['data_gc.db', 'site_data.db', 'ws_data.db', 'vk_data.db', 'tg_data.db', 'gk_data.db']
|
96 |
+
SETTINGS_DB = 'settings.db'
|
|
|
97 |
|
98 |
def init_db(db_name):
|
99 |
conn = sqlite3.connect(db_name)
|
|
|
141 |
conn.commit()
|
142 |
conn.close()
|
143 |
|
144 |
+
def init_settings_db():
|
145 |
+
conn = sqlite3.connect(SETTINGS_DB)
|
146 |
+
cursor = conn.cursor()
|
147 |
+
cursor.execute('''
|
148 |
+
CREATE TABLE IF NOT EXISTS settings (
|
149 |
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
150 |
+
api_key_auth TEXT,
|
151 |
+
crypto_key_auth TEXT,
|
152 |
+
crypto_key_url TEXT,
|
153 |
+
vk_api_key TEXT,
|
154 |
+
senler_token TEXT,
|
155 |
+
wa_ak TEXT,
|
156 |
+
wa_api_key TEXT,
|
157 |
+
curators TEXT,
|
158 |
+
call_api_key TEXT
|
159 |
+
)
|
160 |
+
''')
|
161 |
+
conn.commit()
|
162 |
+
conn.close()
|
163 |
+
|
164 |
for db in DATABASES:
|
165 |
init_db(db)
|
166 |
|
167 |
+
init_settings_db()
|
168 |
DATABASE_NEW = 'data_gc.db'
|
169 |
+
def load_settings():
|
170 |
+
conn = sqlite3.connect(SETTINGS_DB)
|
171 |
+
cursor = conn.cursor()
|
172 |
+
cursor.execute('SELECT * FROM settings')
|
173 |
+
settings = cursor.fetchone()
|
174 |
+
conn.close()
|
175 |
+
if settings is None:
|
176 |
+
return {
|
177 |
+
'api_key_auth': '',
|
178 |
+
'crypto_key_auth': '',
|
179 |
+
'crypto_key_url': '',
|
180 |
+
'vk_api_key': '',
|
181 |
+
'senler_token': '',
|
182 |
+
'wa_ak': '',
|
183 |
+
'wa_api_key': '',
|
184 |
+
'curators': '',
|
185 |
+
'call_api_key': ''
|
186 |
+
}
|
187 |
+
return {
|
188 |
+
'api_key_auth': settings[1],
|
189 |
+
'crypto_key_auth': settings[2],
|
190 |
+
'crypto_key_url': settings[3],
|
191 |
+
'vk_api_key': settings[4],
|
192 |
+
'senler_token': settings[5],
|
193 |
+
'wa_ak': settings[6],
|
194 |
+
'wa_api_key': settings[7],
|
195 |
+
'curators': settings[8],
|
196 |
+
'call_api_key': settings[9]
|
197 |
+
}
|
198 |
|
199 |
+
def save_settings(settings_dict):
|
200 |
+
# Удаляем api_key_sys из словаря перед сохранением
|
201 |
+
if 'api_key_sys' in settings_dict:
|
202 |
+
del settings_dict['api_key_sys']
|
203 |
|
204 |
+
conn = sqlite3.connect(SETTINGS_DB)
|
205 |
+
cursor = conn.cursor()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
|
207 |
+
# Выводим каждое значение перед записью в базу данных
|
208 |
+
for key, value in settings_dict.items():
|
209 |
+
print(f"Extracted {key}: {value}")
|
210 |
|
211 |
+
cursor.execute('''
|
212 |
+
INSERT OR REPLACE INTO settings (
|
213 |
+
api_key_auth, crypto_key_auth, crypto_key_url, vk_api_key, senler_token,
|
214 |
+
wa_ak, wa_api_key, curators, call_api_key
|
215 |
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
216 |
+
''', (
|
217 |
+
settings_dict.get('api_key_auth', ''),
|
218 |
+
settings_dict.get('crypto_key_auth', ''),
|
219 |
+
settings_dict.get('crypto_key_url', ''),
|
220 |
+
settings_dict.get('vk_api_key', ''),
|
221 |
+
settings_dict.get('senler_token', ''),
|
222 |
+
settings_dict.get('wa_ak', ''),
|
223 |
+
settings_dict.get('wa_api_key', ''),
|
224 |
+
settings_dict.get('curators', ''),
|
225 |
+
settings_dict.get('call_api_key', '')
|
226 |
+
))
|
227 |
+
conn.commit()
|
228 |
+
conn.close()
|
229 |
|
230 |
+
# Выводим все данные из базы данных после сохранения
|
231 |
+
conn = sqlite3.connect(SETTINGS_DB)
|
232 |
+
cursor = conn.cursor()
|
233 |
+
cursor.execute('SELECT * FROM settings')
|
234 |
+
settings = cursor.fetchone()
|
235 |
+
conn.close()
|
236 |
+
if settings:
|
237 |
+
print("Database contents after save:", {
|
238 |
+
'api_key_auth': settings[1],
|
239 |
+
'crypto_key_auth': settings[2],
|
240 |
+
'crypto_key_url': settings[3],
|
241 |
+
'vk_api_key': settings[4],
|
242 |
+
'senler_token': settings[5],
|
243 |
+
'wa_ak': settings[6],
|
244 |
+
'wa_api_key': settings[7],
|
245 |
+
'curators': settings[8],
|
246 |
+
'call_api_key': settings[9]
|
247 |
+
})
|
248 |
|
249 |
@app.route('/load_settings', methods=['POST'])
|
250 |
def get_settings():
|
|
|
252 |
client_api_key_sys = request.json.get('api_key_sys')
|
253 |
|
254 |
# Проверка ключа авторизации
|
255 |
+
if client_api_key_sys != os.getenv('api_key_sys'):
|
256 |
return jsonify({"error": "Unauthorized access"}), 403
|
257 |
|
258 |
+
# Загружаем настройки из базы данных
|
259 |
+
settings = load_settings()
|
260 |
return jsonify(settings)
|
261 |
|
262 |
@app.route('/save_settings', methods=['POST'])
|
|
|
265 |
client_api_key_sys = request.json.get('api_key_sys')
|
266 |
|
267 |
# Проверка ключа авторизации
|
268 |
+
if client_api_key_sys != os.getenv('api_key_sys'):
|
269 |
return jsonify({"error": "Unauthorized access"}), 403
|
270 |
|
271 |
data = request.json.get('data', {})
|
272 |
if data:
|
273 |
+
# Выводим полученные данные в консоль сервера
|
274 |
+
print("Received data from page:", data)
|
275 |
save_settings(data)
|
276 |
return jsonify({'status': 'success'})
|
277 |
else:
|