first commit
This commit is contained in:
@@ -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);
|
||||
Reference in New Issue
Block a user