Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
2256 |
-
|
2257 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
# Дублированный маршрут для отображения страницы загрузки
|