- корректировка логики проверки дублей
This commit is contained in:
70
config_updater.py
Normal file
70
config_updater.py
Normal 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
|
Reference in New Issue
Block a user