Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -2249,46 +2249,49 @@ def upload_page_vk():
|
|
2249 |
|
2250 |
|
2251 |
|
2252 |
-
|
|
|
|
|
|
|
2253 |
def serve_html_vk(filename):
|
2254 |
try:
|
2255 |
# Получаем параметры из GET-запроса
|
2256 |
apps_id = request.args.get('apps_id')
|
2257 |
-
|
2258 |
-
vk_app_id = request.args.get('vk_app_id')
|
2259 |
-
vk_are_notifications_enabled = request.args.get('vk_are_notifications_enabled')
|
2260 |
-
vk_is_app_user = request.args.get('vk_is_app_user')
|
2261 |
|
|
|
2262 |
|
2263 |
-
|
2264 |
-
logging.debug(f"Received params: apps_id={apps_id}")
|
2265 |
-
logging.debug(f"Received params: fullUrl={fullUrl}")
|
2266 |
-
logging.debug(f"Received params: vk_app_id={vk_app_id}")
|
2267 |
-
logging.debug(f"Received params: vk_are_notifications_enabled={vk_are_notifications_enabled}")
|
2268 |
# Преобразуем строку в JSON
|
2269 |
try:
|
2270 |
api_key_apps_vk_dict = json.loads(api_key_apps_vk)
|
2271 |
except json.JSONDecodeError as e:
|
2272 |
logging.error(f"Error decoding JSON: {e}")
|
2273 |
return jsonify({"status": "invalid"}), 200
|
|
|
2274 |
logging.debug(f"api_key_apps_vk_dict: {api_key_apps_vk_dict}")
|
|
|
2275 |
# Проверка подписи для приложения
|
2276 |
if str(apps_id) not in api_key_apps_vk_dict: # Приводим apps_id к строке
|
2277 |
logging.error("Invalid apps_id")
|
2278 |
return jsonify({"error": "Invalid apps_id"}), 400
|
|
|
2279 |
secret = api_key_apps_vk_dict[str(apps_id)] # Приводим apps_id к строке
|
2280 |
logging.debug(f"Using secret: {secret}")
|
|
|
2281 |
# Парсим полный URL для получения параметров запроса
|
2282 |
query_params = dict(parse_qsl(urlparse(fullUrl).query, keep_blank_values=True))
|
2283 |
logging.debug(f"Query params for signature check: {query_params}")
|
|
|
2284 |
# Проверяем подпись
|
2285 |
if not is_valid(query=query_params, secret=secret):
|
2286 |
logging.error("Invalid signature")
|
2287 |
return jsonify({"error": "Invalid signature"}), 400
|
|
|
2288 |
# Если верификация прошла успешно, отдаём файл
|
2289 |
if not filename.endswith('.html'):
|
2290 |
filename += '.html'
|
2291 |
return send_from_directory(HTML_FOLDER_VK, filename)
|
|
|
2292 |
except Exception as e:
|
2293 |
logging.error(f"An error occurred: {str(e)}")
|
2294 |
return jsonify({"error": str(e)}), 500
|
@@ -2296,10 +2299,6 @@ def serve_html_vk(filename):
|
|
2296 |
|
2297 |
|
2298 |
|
2299 |
-
|
2300 |
-
|
2301 |
-
|
2302 |
-
|
2303 |
|
2304 |
|
2305 |
|
|
|
2249 |
|
2250 |
|
2251 |
|
2252 |
+
|
2253 |
+
|
2254 |
+
# Дублированный маршрут для обслуживания загруженных страниц
|
2255 |
+
@app.route('/page_vk/<path:filename>', methods=['GET'])
|
2256 |
def serve_html_vk(filename):
|
2257 |
try:
|
2258 |
# Получаем параметры из GET-запроса
|
2259 |
apps_id = request.args.get('apps_id')
|
2260 |
+
fullUrl = request.args.get('fullUrl')
|
|
|
|
|
|
|
2261 |
|
2262 |
+
logging.debug(f"Received params: apps_id={apps_id}, fullUrl={fullUrl}")
|
2263 |
|
|
|
|
|
|
|
|
|
|
|
2264 |
# Преобразуем строку в JSON
|
2265 |
try:
|
2266 |
api_key_apps_vk_dict = json.loads(api_key_apps_vk)
|
2267 |
except json.JSONDecodeError as e:
|
2268 |
logging.error(f"Error decoding JSON: {e}")
|
2269 |
return jsonify({"status": "invalid"}), 200
|
2270 |
+
|
2271 |
logging.debug(f"api_key_apps_vk_dict: {api_key_apps_vk_dict}")
|
2272 |
+
|
2273 |
# Проверка подписи для приложения
|
2274 |
if str(apps_id) not in api_key_apps_vk_dict: # Приводим apps_id к строке
|
2275 |
logging.error("Invalid apps_id")
|
2276 |
return jsonify({"error": "Invalid apps_id"}), 400
|
2277 |
+
|
2278 |
secret = api_key_apps_vk_dict[str(apps_id)] # Приводим apps_id к строке
|
2279 |
logging.debug(f"Using secret: {secret}")
|
2280 |
+
|
2281 |
# Парсим полный URL для получения параметров запроса
|
2282 |
query_params = dict(parse_qsl(urlparse(fullUrl).query, keep_blank_values=True))
|
2283 |
logging.debug(f"Query params for signature check: {query_params}")
|
2284 |
+
|
2285 |
# Проверяем подпись
|
2286 |
if not is_valid(query=query_params, secret=secret):
|
2287 |
logging.error("Invalid signature")
|
2288 |
return jsonify({"error": "Invalid signature"}), 400
|
2289 |
+
|
2290 |
# Если верификация прошла успешно, отдаём файл
|
2291 |
if not filename.endswith('.html'):
|
2292 |
filename += '.html'
|
2293 |
return send_from_directory(HTML_FOLDER_VK, filename)
|
2294 |
+
|
2295 |
except Exception as e:
|
2296 |
logging.error(f"An error occurred: {str(e)}")
|
2297 |
return jsonify({"error": str(e)}), 500
|
|
|
2299 |
|
2300 |
|
2301 |
|
|
|
|
|
|
|
|
|
2302 |
|
2303 |
|
2304 |
|