-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
57 lines (47 loc) · 1.68 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
require("dotenv").config();
const validator = require("validator");
const { download } = require("./helpers");
const { Bot, GrammyError, HttpError, InputFile, Keyboard, session } = require("grammy");
const bot = new Bot(process.env.BOT_API_KEY);
function initial() {
return { url: "" };
}
bot.use(session({ initial }));
bot.command("start", async (ctx) => {
await ctx.reply(
"Добро пожаловать! Вставьте ссылку на видео с YouTube, чтобы скачать в mp3 формате.",
);
});
bot.on("::url", async (ctx) => {
const keyboard = new Keyboard().text("Подкаст").text("Трек").resized().oneTime();
ctx.session.url = ctx.update.message.text;
await ctx.reply(
"Что скачиваем? (Для подкастов качество похуже, чтобы влезть в ограничение на передачу аудиофайла в 50мб)",
{
reply_markup: keyboard,
},
);
});
bot.hears("Подкаст", async (ctx) => {
await download(ctx, 7);
});
bot.hears("Трек", async (ctx) => {
await download(ctx, 1);
});
bot.on("msg", async (ctx) => {
await ctx.reply("Вставьте сюда ссылку на видео");
});
bot.catch((err) => {
const ctx = err.ctx;
console.error(`Error while handling update ${ctx.update.update_id}:`);
const e = err.error;
if (e instanceof GrammyError) {
console.error("Error in request:", e.description);
} else if (e instanceof HttpError) {
console.error("Could not contact Telegram:", e);
ctx.reply("Попробуйте через минуту, YouTube ругается");
} else {
console.error("Unknown error:", e);
}
});
bot.start();