first commit

This commit is contained in:
2026-08-09 16:53:38 +03:00
commit e92e0df644
28 changed files with 1143 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
const parseIds = (raw) =>
(raw ?? '')
.split(',')
.map((part) => part.trim())
.filter(Boolean)
.map(Number)
.filter((id) => Number.isInteger(id));
export const config = {
token: process.env.BOT_TOKEN ?? '',
adminIds: parseIds(process.env.ADMIN_IDS),
handoverPauseMs: Number(process.env.HANDOVER_PAUSE_MINUTES ?? 30) * 60_000,
logLevel: process.env.LOG_LEVEL ?? 'info',
dataDir: new URL('../data/', import.meta.url),
};
export function assertConfig() {
if (!config.token) {
throw new Error('BOT_TOKEN не задан. Скопируйте .env.example в .env и вставьте токен от @BotFather.');
}
if (!Number.isFinite(config.handoverPauseMs) || config.handoverPauseMs < 0) {
throw new Error('HANDOVER_PAUSE_MINUTES должен быть неотрицательным числом.');
}
}
export const isAdmin = (userId) => config.adminIds.includes(userId);