DmitrMakeev commited on
Commit
94d02ff
·
verified ·
1 Parent(s): ca63612

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -14
app.py CHANGED
@@ -2249,46 +2249,49 @@ def upload_page_vk():
2249
 
2250
 
2251
 
2252
- app.route('/page_vk/<path:filename>', methods=['GET'])
 
 
 
2253
  def serve_html_vk(filename):
2254
  try:
2255
  # Получаем параметры из GET-запроса
2256
  apps_id = request.args.get('apps_id')
2257
- base_url = request.args.get('fullUrl')
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