Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1252,70 +1252,6 @@ def getlo_mess():
|
|
1252 |
logging.error(f"An error occurred: {str(e)}")
|
1253 |
return json.dumps({"error": str(e)}), 500
|
1254 |
|
1255 |
-
# Запрет на рассылку ВК
|
1256 |
-
@app.route('/vk_mess_stop', methods=['POST'])
|
1257 |
-
def vk_mess_st():
|
1258 |
-
try:
|
1259 |
-
logging.debug("Starting vk_mess_stop")
|
1260 |
-
|
1261 |
-
# Читаем параметры из POST-запроса
|
1262 |
-
vkid = request.form.get('vk_id', '')
|
1263 |
-
grup_id = request.form.get('grup_id', '') # Сюда придёт номер сообщества от которого отписать от рассылки
|
1264 |
-
apps_id = request.form.get('apps_id', '') # Сюда придёт ИД ВК приложения
|
1265 |
-
fullUrl = request.form.get('fullUrl', '') # Полный URL, который выдаёт ВКонтакте
|
1266 |
-
|
1267 |
-
logging.debug(f"Received data: vk_id={vkid}, grup_id={grup_id}, apps_id={apps_id}, fullUrl={fullUrl}")
|
1268 |
-
|
1269 |
-
# Преобразуем строку в JSON
|
1270 |
-
try:
|
1271 |
-
api_key_apps_vk_dict = json.loads(api_key_apps_vk)
|
1272 |
-
except json.JSONDecodeError as e:
|
1273 |
-
logging.error(f"Error decoding JSON: {e}")
|
1274 |
-
return jsonify({"status": "invalid"}), 200
|
1275 |
-
|
1276 |
-
# Проверка подписи для приложения
|
1277 |
-
if str(apps_id) not in api_key_apps_vk_dict: # Приводим apps_id к строке
|
1278 |
-
logging.error("Invalid apps_id")
|
1279 |
-
return json.dumps({"error": "Invalid apps_id"}), 400
|
1280 |
-
|
1281 |
-
secret = api_key_apps_vk_dict[str(apps_id)] # Приводим apps_id к строке
|
1282 |
-
logging.debug(f"Using secret: {secret}")
|
1283 |
-
|
1284 |
-
# Парсим полный URL для получения параметров запроса
|
1285 |
-
query_params = dict(parse_qsl(urlparse(fullUrl).query, keep_blank_values=True))
|
1286 |
-
logging.debug(f"Query params for signature check: {query_params}")
|
1287 |
-
|
1288 |
-
# Проверяем подпись
|
1289 |
-
if not is_valid(query=query_params, secret=secret):
|
1290 |
-
logging.error("Invalid signature")
|
1291 |
-
return json.dumps({"error": "Invalid signature"}), 400
|
1292 |
-
|
1293 |
-
# Отправка запроса в API ВКонтакте для запрета отправки сообщений от сообщества
|
1294 |
-
access_token = 'your_access_token' # Замените на ваш токен доступа
|
1295 |
-
url = 'https://api.vk.com/method/messages.denyMessagesFromGroup'
|
1296 |
-
params = {
|
1297 |
-
'access_token': access_token,
|
1298 |
-
'group_id': grup_id,
|
1299 |
-
'v': '5.131' # Версия API
|
1300 |
-
}
|
1301 |
-
|
1302 |
-
response = requests.post(url, params=params)
|
1303 |
-
|
1304 |
-
if response.status_code == 200:
|
1305 |
-
result = response.json()
|
1306 |
-
if 'response' in result:
|
1307 |
-
logging.debug("Сообщения от группы успешно запрещены.")
|
1308 |
-
return jsonify({"status": "success"}), 200
|
1309 |
-
elif 'error' in result:
|
1310 |
-
logging.error(f"Ошибка: {result['error']['error_msg']}")
|
1311 |
-
return jsonify({"status": "error", "message": result['error']['error_msg']}), 400
|
1312 |
-
else:
|
1313 |
-
logging.error(f"Ошибка при отправке запроса: {response.status_code}")
|
1314 |
-
return jsonify({"status": "error", "message": "Ошибка при отправке запроса"}), 500
|
1315 |
-
|
1316 |
-
except Exception as e:
|
1317 |
-
logging.error(f"An error occurred: {str(e)}")
|
1318 |
-
return json.dumps({"error": str(e)}), 500
|
1319 |
|
1320 |
|
1321 |
|
|
|
1252 |
logging.error(f"An error occurred: {str(e)}")
|
1253 |
return json.dumps({"error": str(e)}), 500
|
1254 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1255 |
|
1256 |
|
1257 |
|