feat(config): load reply templates, add defaults
This commit is contained in:
+11
-2
@@ -1,14 +1,23 @@
|
||||
API_ID=
|
||||
API_HASH=
|
||||
# Значения для клиента Telegram Desktop, ставятся по умолчанию
|
||||
# Не рекомендуется оставлять, лучше использовать API_ID и API_HASH от
|
||||
# аккаунта с которого будет воспроизведен вход
|
||||
API_ID=2040
|
||||
API_HASH=b18441a1ff607e10a989891a5462e627
|
||||
|
||||
LOLZ_TOKEN=
|
||||
LOLZ_THREAD_ID=
|
||||
|
||||
STARS_COUNT=1
|
||||
|
||||
# 1 - Начать мониторинг
|
||||
# 2 - Спарсить все существующие посты
|
||||
DEFAULT_CHOICE=2
|
||||
START_PAGE=1
|
||||
|
||||
CHECK_INTERVAL=30
|
||||
API_DELAY=5
|
||||
MAX_RETRIES=3
|
||||
|
||||
ENABLE_REPLY=true
|
||||
SKIP_COMMENTED=true
|
||||
|
||||
|
||||
@@ -10,15 +10,34 @@ logger = logging.getLogger(__name__)
|
||||
class Config:
|
||||
def __init__(self):
|
||||
self._config_data = self._load()
|
||||
logger.success("Конфигурация успешно загружена.")
|
||||
logger.info("Конфигурация успешно загружена.")
|
||||
|
||||
def _load_replies(self, file_path: str = "replies.txt"):
|
||||
try:
|
||||
reply_lines = []
|
||||
with open(file_path, "r", encoding="utf-8") as replies:
|
||||
lines = replies.readlines()
|
||||
|
||||
for line_index, line in enumerate(lines):
|
||||
if " || " in line:
|
||||
options = line.split(" || ")
|
||||
else:
|
||||
options = [line]
|
||||
|
||||
reply_lines[line_index] = options
|
||||
|
||||
except:
|
||||
return [["✓"]]
|
||||
|
||||
def _load(self):
|
||||
load_dotenv()
|
||||
|
||||
try:
|
||||
# Pyrogram
|
||||
api_id = os.getenv(key="API_ID", default=None)
|
||||
api_hash = os.getenv(key="API_HASH", default=None)
|
||||
api_id = int(os.getenv(key="API_ID", default=2040))
|
||||
api_hash = os.getenv(
|
||||
key="API_HASH", default="b18441a1ff607e10a989891a5462e627"
|
||||
)
|
||||
|
||||
# Lolz
|
||||
lolz_token = os.getenv(key="LOLZ_TOKEN", defualt=None)
|
||||
@@ -28,6 +47,9 @@ class Config:
|
||||
stars_count = int(os.getenv(key="STARS_COUNT", defualt=1))
|
||||
|
||||
# Misc
|
||||
default_choice = int(os.getenv(key="DEFAULT_CHOICE", defualt=2))
|
||||
start_page = max(int(os.getenv(key="START_PAGE", defualt=1)), 1)
|
||||
|
||||
check_interval = max(
|
||||
int(os.getenv(key="CHECK_INTERVAL", defualt=30)), 0.2
|
||||
) # 300r/60s для GET запросов, 60/300 = минимум
|
||||
@@ -53,11 +75,14 @@ class Config:
|
||||
# Stars
|
||||
"stars_count": stars_count,
|
||||
# Misc
|
||||
"default_choice": default_choice,
|
||||
"start_page": start_page,
|
||||
"check_interval": check_interval,
|
||||
"api_delay": api_delay,
|
||||
"max_retries": max_retries,
|
||||
"enable_reply": enable_reply,
|
||||
"skip_commented": skip_commented,
|
||||
"reply_templates": self._load_replies(),
|
||||
}
|
||||
|
||||
except:
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
:sigma: Это первое сообщение (стоило бы поменять в конфиге) || :catdance: Отправил звёзды || :animeyes2: Отправил
|
||||
:sigma: Это второе сообщение (стоило бы поменять в конфиге) || :sadge: Тут может быть реклама || Реклама казика :animeyessir:
|
||||
:sigma: Это третье сообщение (стоило бы поменять в конфиге)
|
||||
|
||||
Reference in New Issue
Block a user