From 7ad4b1b6238d2d842a1610873218b9fbcfd0c70b Mon Sep 17 00:00:00 2001 From: gitadmin Date: Sun, 21 Dec 2025 12:39:06 +0300 Subject: [PATCH] =?UTF-8?q?[=D0=92=D0=9E=D0=9B=D0=9A]=20=D0=BA=D0=BE=D1=80?= =?UTF-8?q?=D1=80=D0=B5=D0=BA=D1=86=D0=B8=D1=8F=20=D0=BB=D0=BE=D0=B3=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BE=D1=88=D0=B8?= =?UTF-8?q?=D0=B1=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- volk_load.py | 78 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 52 insertions(+), 26 deletions(-) diff --git a/volk_load.py b/volk_load.py index a63eb87..b19fdcc 100644 --- a/volk_load.py +++ b/volk_load.py @@ -52,7 +52,8 @@ def load_categories(): # Проверка наличия URL if not VOLK_CATEGORY_LIST: error_msg = "Переменная окружения VOLK_CATEGORY_LIST не установлена" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) return @@ -65,7 +66,8 @@ def load_categories(): api_version = data.get('api_version') if api_version != VOLK_API_VERSION: error_msg = f"Несовпадение версии API: получена версия '{api_version}', ожидается '{VOLK_API_VERSION}'. Обработка остановлена." - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) return @@ -74,7 +76,8 @@ def load_categories(): # Проверка наличия блока data if 'data' not in data: error_msg = "В JSON отсутствует блок 'data'" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) return @@ -106,7 +109,8 @@ def load_categories(): for item in categories_data: # Проверка обязательного поля ID if 'id' not in item or not item['id']: - log_message(f"Пропущена запись без id или с пустым id: {item}", "WARNING") +# log_message(f"Пропущена запись без id или с пустым id: {item}", "WARNING") + log_message(f"Пропущена запись без id или с пустым id: {item}") continue # Подготовка значений @@ -163,14 +167,16 @@ def load_categories(): decoded_data = raw_data.decode('utf-8') except UnicodeDecodeError as e: error_msg = f"Ошибка декодирования ответа для категории {category_id}: {e}. Попытка декодирования как latin-1." - log_message(error_msg, "WARNING") +# log_message(error_msg, "WARNING") + log_message(error_msg) decoded_data = raw_data.decode('latin-1') try: desc_response = json.loads(decoded_data) except json.JSONDecodeError as e: error_msg = f"Ошибка парсинга JSON для категории {category_id}: {e}. Первые 500 символов ответа: {decoded_data[:500]}" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) # Пропускаем эту категорию и продолжаем обработку continue @@ -179,7 +185,8 @@ def load_categories(): api_version = desc_response.get('api_version') if api_version != VOLK_API_VERSION: error_msg = f"Несовпадение версии API при загрузке описания категории {category_id}: получена версия '{api_version}', ожидается '{VOLK_API_VERSION}'. Пропуск категории." - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) # Пропускаем эту категорию и продолжаем обработку continue @@ -187,7 +194,8 @@ def load_categories(): # Проверка наличия блока data if 'data' not in desc_response: error_msg = f"В JSON ответе для категории {category_id} отсутствует блок 'data'. Пропуск категории." - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) # Пропускаем эту категорию и продолжаем обработку continue @@ -197,7 +205,8 @@ def load_categories(): # Проверка типа desc_data - должен быть словарём if not isinstance(desc_data, dict): error_msg = f"Блок 'data' для категории {category_id} не является словарём (тип: {type(desc_data)}). Пропуск категории." - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) # Пропускаем эту категорию и продолжаем обработку continue @@ -223,11 +232,13 @@ def load_categories(): except Exception as e: error_msg = f"Ошибка при загрузке описания для категории {category_id}: {type(e).__name__}: {e}" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) import traceback traceback_str = traceback.format_exc() - log_message(f"Трассировка ошибки для категории {category_id}:\n{traceback_str}", "ERROR") +# log_message(f"Трассировка ошибки для категории {category_id}:\n{traceback_str}", "ERROR") + log_message(f"Трассировка ошибки для категории {category_id}:\n{traceback_str}") # Пропускаем эту категорию и продолжаем обработку остальных continue @@ -237,13 +248,15 @@ def load_categories(): except Error as e: error_msg = f"Ошибка базы данных: {e}" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) if 'connection' in locals() and connection.is_connected(): connection.rollback() except Exception as e: error_msg = f"Общая ошибка: {e}" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) finally: if 'connection' in locals() and connection.is_connected(): @@ -261,14 +274,16 @@ def load_events_by_category(category_id): # Проверка наличия URL префикса if not VOLK_EVENT_LIST_PREFIX: error_msg = "Переменная окружения VOLK_EVENT_LIST_PREFIX не установлена" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) return # Проверка наличия category_id if not category_id: error_msg = "ID категории не указан" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) return @@ -284,7 +299,8 @@ def load_events_by_category(category_id): api_version = data.get('api_version') if api_version != VOLK_API_VERSION: error_msg = f"Несовпадение версии API: получена версия '{api_version}', ожидается '{VOLK_API_VERSION}'. Обработка остановлена." - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) return @@ -293,7 +309,8 @@ def load_events_by_category(category_id): # Проверка наличия блока data if 'data' not in data: error_msg = "В JSON отсутствует блок 'data'" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) return @@ -332,12 +349,14 @@ def load_events_by_category(category_id): for item in events_data: # Проверка обязательного поля id if 'id' not in item or item['id'] is None: - log_message(f"Пропущено событие без id: {item}", "WARNING") +# log_message(f"Пропущено событие без id: {item}", "WARNING") + log_message(f"Пропущено событие без id: {item}") continue # Проверка обязательного поля title if 'title' not in item or not item['title']: - log_message(f"Пропущено событие без title (id: {item.get('id', 'N/A')}): {item}", "WARNING") +# log_message(f"Пропущено событие без title (id: {item.get('id', 'N/A')}): {item}", "WARNING") + log_message(f"Пропущено событие без title (id: {item.get('id', 'N/A')}): {item}") continue # Подготовка значений с маппингом полей @@ -345,7 +364,8 @@ def load_events_by_category(category_id): try: id_event = int(item['id']) # Уникальный идентификатор события из JSON except (ValueError, TypeError): - log_message(f"Пропущено событие с некорректным id (не число): {item.get('id', 'N/A')}", "WARNING") +# log_message(f"Пропущено событие с некорректным id (не число): {item.get('id', 'N/A')}", "WARNING") + log_message(f"Пропущено событие с некорректным id (не число): {item.get('id', 'N/A')}") continue name = item.get('title', '') about = item.get('announce', '') or '' @@ -406,13 +426,15 @@ def load_events_by_category(category_id): except Error as e: error_msg = f"Ошибка базы данных: {e}" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) if 'connection' in locals() and connection.is_connected(): connection.rollback() except Exception as e: error_msg = f"Общая ошибка: {e}" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) finally: if 'connection' in locals() and connection.is_connected(): @@ -439,7 +461,8 @@ def load_all_events(): categories = cursor.fetchall() if not categories: - log_message("В базе данных нет категорий для загрузки событий", "WARNING") +# log_message("В базе данных нет категорий для загрузки событий", "WARNING") + log_message("В базе данных нет категорий для загрузки событий") cursor.close() connection.close() return @@ -461,7 +484,8 @@ def load_all_events(): processed_count += 1 except Exception as e: error_msg = f"Ошибка при загрузке событий для категории {category_id}: {e}" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) # Продолжаем обработку других категорий continue @@ -470,11 +494,13 @@ def load_all_events(): except Error as e: error_msg = f"Ошибка базы данных при загрузке всех событий: {e}" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) except Exception as e: error_msg = f"Общая ошибка при загрузке всех событий: {e}" - log_message(error_msg, "ERROR") +# log_message(error_msg, "ERROR") + log_message(error_msg) print(error_msg) if __name__ == "__main__":