mirror of
https://github.com/Tzahi12345/YoutubeDL-Material.git
synced 2026-04-17 03:41:29 +03:00
Added ability to request video downloads through telegram bots
This commit is contained in:
@@ -685,7 +685,7 @@ app.use(function(req, res, next) {
|
||||
next();
|
||||
} else if (req.query.apiKey && config_api.getConfigItem('ytdl_use_api_key') && req.query.apiKey === config_api.getConfigItem('ytdl_api_key')) {
|
||||
next();
|
||||
} else if (req.path.includes('/api/stream/') || req.path.includes('/api/thumbnail/') || req.path.includes('/api/rss')) {
|
||||
} else if (req.path.includes('/api/stream/') || req.path.includes('/api/thumbnail/') || req.path.includes('/api/rss') || req.path.includes('/api/telegramRequest')) {
|
||||
next();
|
||||
} else {
|
||||
logger.verbose(`Rejecting request - invalid API use for endpoint: ${req.path}. API key received: ${req.query.apiKey}`);
|
||||
@@ -1784,6 +1784,10 @@ app.post('/api/cancelDownload', optionalJwt, async (req, res) => {
|
||||
app.post('/api/getTasks', optionalJwt, async (req, res) => {
|
||||
const tasks = await db_api.getRecords('tasks');
|
||||
for (let task of tasks) {
|
||||
if (!tasks_api.TASKS[task['key']]) {
|
||||
logger.verbose(`Task ${task['key']} does not exist!`);
|
||||
continue;
|
||||
}
|
||||
if (task['schedule']) task['next_invocation'] = tasks_api.TASKS[task['key']]['job'].nextInvocation().getTime();
|
||||
}
|
||||
res.send({tasks: tasks});
|
||||
@@ -2092,6 +2096,24 @@ app.post('/api/deleteAllNotifications', optionalJwt, async (req, res) => {
|
||||
res.send({success: success});
|
||||
});
|
||||
|
||||
app.post('/api/telegramRequest', async (req, res) => {
|
||||
if (!req.body.message && !req.body.message.text) {
|
||||
logger.error('Invalid Telegram request received!');
|
||||
res.sendStatus(400);
|
||||
return;
|
||||
}
|
||||
const text = req.body.message.text;
|
||||
const regex_exp = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)?/gi;
|
||||
const url_regex = new RegExp(regex_exp);
|
||||
if (text.match(url_regex)) {
|
||||
downloader_api.createDownload(text, 'video', {}, req.query.user_uid ? req.query.user_uid : null);
|
||||
res.sendStatus(200);
|
||||
} else {
|
||||
logger.error('Invalid Telegram request received! Make sure you only send a valid URL.');
|
||||
res.sendStatus(400);
|
||||
}
|
||||
});
|
||||
|
||||
// rss feed
|
||||
|
||||
app.get('/api/rss', async function (req, res) {
|
||||
|
||||
Reference in New Issue
Block a user