From 8521ad95dbf9758b0a88d8d6a245799c1b1f3947 Mon Sep 17 00:00:00 2001 From: GiovaniFZ Date: Thu, 26 Sep 2024 17:08:30 -0300 Subject: [PATCH] feat: Implement /yt command --- .gitignore | 3 ++- commands/youtube.js | 28 ++++++++++++++++++++++++++++ package-lock.json | 9 +++++++++ package.json | 1 + 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 commands/youtube.js diff --git a/.gitignore b/.gitignore index 7cb3986..e47c263 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ node_modules __pycache__ props -!props/resources.json \ No newline at end of file +!props/resources.json +*.mp4 \ No newline at end of file diff --git a/commands/youtube.js b/commands/youtube.js new file mode 100644 index 0000000..869ad61 --- /dev/null +++ b/commands/youtube.js @@ -0,0 +1,28 @@ +var exec = require('child_process').exec; + +async function DownloadFromYoutube(command) { + return new Promise((resolve, reject) => { + + exec(command, (error, stdout, stderr) => { + if (error) { + reject({ error, stdout, stderr }); + } else { + resolve({ error, stdout, stderr }); + } + }); + }); +} + +module.exports = (bot) => { + bot.command('yt', async (ctx) => { + const args = ctx.message.text.split(' ').slice(1).join(' '); + const ytCommand = 'yt-dlp ' + args + ' -o video.mp4'; + await DownloadFromYoutube(ytCommand); + try{ + await ctx.replyWithVideo({source: 'video.mp4'}); + }catch (error){ + console.log(error); + } + } + ) +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d5fbe7e..52594b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "axios": "^1.7.7", "child_process": "^1.0.2", + "commander": "^12.1.0", "node-html-parser": "^6.1.13", "nodemon": "^3.1.4", "telegraf": "^4.16.3", @@ -252,6 +253,14 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "engines": { + "node": ">=18" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", diff --git a/package.json b/package.json index b8b9e08..c689508 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "dependencies": { "axios": "^1.7.7", "child_process": "^1.0.2", + "commander": "^12.1.0", "node-html-parser": "^6.1.13", "nodemon": "^3.1.4", "telegraf": "^4.16.3",