- корректировка логики проверки дублей

This commit is contained in:
2025-08-22 18:03:38 +03:00
parent 073fa11127
commit 1717693a2f
5 changed files with 231 additions and 9 deletions

70
config_updater.py Normal file
View File

@@ -0,0 +1,70 @@
#!/usr/bin/env python3
import re
import os
import logging
class ConfigUpdater:
def __init__(self):
self.logger = logging.getLogger(__name__)
self.keys_file = 'keys.py'
def update_start_topic_id(self, new_topic_id):
"""Обновление start_topic_id в файле keys.py"""
try:
# Проверяем существование файла
if not os.path.exists(self.keys_file):
self.logger.error(f"Файл {self.keys_file} не найден")
return False
# Читаем содержимое файла
with open(self.keys_file, 'r', encoding='utf-8') as f:
content = f.read()
# Ищем строку с start_topic_id и заменяем значение
pattern = r'^(start_topic_id\s*=\s*)(.*)$'
replacement = rf'\g<1>{new_topic_id}'
new_content, count = re.subn(pattern, replacement, content, flags=re.MULTILINE)
if count == 0:
self.logger.error("Не найдена переменная start_topic_id в keys.py")
return False
# Записываем обновленное содержимое
with open(self.keys_file, 'w', encoding='utf-8') as f:
f.write(new_content)
self.logger.info(f"Успешно обновлен start_topic_id на {new_topic_id} в {self.keys_file}")
return True
except Exception as e:
self.logger.error(f"Ошибка при обновлении start_topic_id: {e}")
return False
def get_current_start_topic_id(self):
"""Получение текущего значения start_topic_id из keys.py"""
try:
if not os.path.exists(self.keys_file):
self.logger.error(f"Файл {self.keys_file} не найден")
return None
with open(self.keys_file, 'r', encoding='utf-8') as f:
content = f.read()
# Ищем значение start_topic_id
match = re.search(r'^start_topic_id\s*=\s*(.*)$', content, flags=re.MULTILINE)
if match:
value = match.group(1).strip()
# Пытаемся преобразовать в число
try:
return int(value) if value and value != 'None' else None
except ValueError:
return None
return None
except Exception as e:
self.logger.error(f"Ошибка при чтении start_topic_id: {e}")
return None