DmitrMakeev commited on
Commit
a06db30
·
verified ·
1 Parent(s): fb808f7

Update app.py

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