Spaces:
Sleeping
Sleeping
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:
|