move config creation to config.js
This commit is contained in:
parent
72f70d1258
commit
37e2b3e4f9
43
src/bot.js
43
src/bot.js
@ -2,8 +2,10 @@ const TelegramBot = require("node-telegram-bot-api");
|
|||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const mime = require("mime");
|
const mime = require("mime");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const { DownloadVideo, YtdlUpdater, downloadFile } = require("./download");
|
|
||||||
const https = require("https");
|
const https = require("https");
|
||||||
|
const config = require("./config");
|
||||||
|
const { DownloadVideo, YtdlUpdater, downloadFile } = require("./download");
|
||||||
|
const { MTProtoUser } = require("./mtproto");
|
||||||
|
|
||||||
async function getImage(url) {
|
async function getImage(url) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@ -22,29 +24,6 @@ async function getImage(url) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const config = {
|
|
||||||
token: process.env.BOT_TOKEN,
|
|
||||||
admins: process.env.ADMIN_LIST?.split(/\s*,\s*/g).map((x) => +x) ?? [],
|
|
||||||
allFormats: false
|
|
||||||
};
|
|
||||||
config.whitelist = [].concat(
|
|
||||||
process.env.WHITELIST?.split(/\s*,\s*/g).map((x) => +x) ?? [],
|
|
||||||
config.admins,
|
|
||||||
);
|
|
||||||
config.whitelist = Object.keys(
|
|
||||||
Object.fromEntries(config.whitelist.map((x) => [x, true])),
|
|
||||||
).map((x) => +x);
|
|
||||||
|
|
||||||
console.info(config);
|
|
||||||
if (!process.env.BOT_TOKEN) {
|
|
||||||
throw new Error(
|
|
||||||
"BOT_TOKEN not defined. Please, run docker container: docker run --env-file .env <params> <container>",
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
config.admins = Object.fromEntries(config.admins.map((x) => [x, true]));
|
|
||||||
config.whitelist = Object.fromEntries(config.whitelist.map((x) => [x, true]));
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
fs.rmdirSync(path.join(__dirname, "tmp"), { recursive: true, force: true }, () => {});
|
fs.rmdirSync(path.join(__dirname, "tmp"), { recursive: true, force: true }, () => {});
|
||||||
} catch (_) {}
|
} catch (_) {}
|
||||||
@ -238,6 +217,21 @@ class TgBot {
|
|||||||
this.bot.on("callback_query", (m) => this.cbHandler(m));
|
this.bot.on("callback_query", (m) => this.cbHandler(m));
|
||||||
this.videosGC = new VideosGarbageCollector();
|
this.videosGC = new VideosGarbageCollector();
|
||||||
this.updater = new YtdlUpdater();
|
this.updater = new YtdlUpdater();
|
||||||
|
this.mtproto = null;
|
||||||
|
if (config.mtproto !== null) {
|
||||||
|
this.mtproto = new MTProtoUser(
|
||||||
|
config.mtproto.apiId,
|
||||||
|
config.mtproto.apiHash,
|
||||||
|
config.mtproto.session,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async init () {
|
||||||
|
if (this.mtproto === null)
|
||||||
|
console.warn("API_ID or API_HASH not defined. MTProto API not used");
|
||||||
|
else
|
||||||
|
await this.mtproto.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
async cbHandler(query) {
|
async cbHandler(query) {
|
||||||
@ -394,3 +388,4 @@ class TgBot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const bot = new TgBot();
|
const bot = new TgBot();
|
||||||
|
bot.init();
|
||||||
|
|||||||
33
src/config.js
Normal file
33
src/config.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
const config = {
|
||||||
|
token: process.env.BOT_TOKEN,
|
||||||
|
admins: process.env.ADMIN_LIST?.split(/\s*,\s*/g).map((x) => +x) ?? [],
|
||||||
|
allFormats: false,
|
||||||
|
mtproto: {
|
||||||
|
apiId: process.env.API_ID,
|
||||||
|
apiHash: process.env.API_HASH,
|
||||||
|
session: process.env.API_SESSION,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
config.whitelist = [].concat(
|
||||||
|
process.env.WHITELIST?.split(/\s*,\s*/g).map((x) => +x) ?? [],
|
||||||
|
config.admins,
|
||||||
|
);
|
||||||
|
config.whitelist = Object.keys(
|
||||||
|
Object.fromEntries(config.whitelist.map((x) => [x, true])),
|
||||||
|
).map((x) => +x);
|
||||||
|
|
||||||
|
if (!config.mtproto.apiId || !config.mtproto.apiHash || !config.mtproto.session) {
|
||||||
|
config.mtproto = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.info(config);
|
||||||
|
if (!process.env.BOT_TOKEN) {
|
||||||
|
throw new Error(
|
||||||
|
"BOT_TOKEN not defined. Please, run docker container: docker run --env-file .env <params> <container>",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
config.admins = Object.fromEntries(config.admins.map((x) => [x, true]));
|
||||||
|
config.whitelist = Object.fromEntries(config.whitelist.map((x) => [x, true]));
|
||||||
|
|
||||||
|
module.exports = config;
|
||||||
Loading…
Reference in New Issue
Block a user