imgur schmimgur
All checks were successful
fetch npm modules / f0ck the f0cker (push) Successful in 20s
All checks were successful
fetch npm modules / f0ck the f0cker (push) Successful in 20s
This commit is contained in:
parent
d4ac155c68
commit
2b2fe45be8
|
@ -11,7 +11,7 @@ import path from "path";
|
||||||
const regex = {
|
const regex = {
|
||||||
all: /https?:\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?/gi,
|
all: /https?:\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?/gi,
|
||||||
yt: /(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\/?\?(?:\S*?&?v\=))|youtu\.be\/)([a-zA-Z0-9_-]{6,11})/gi,
|
yt: /(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\/?\?(?:\S*?&?v\=))|youtu\.be\/)([a-zA-Z0-9_-]{6,11})/gi,
|
||||||
imgur: /^https?:\/\/(\w+\.)?imgur.com\/(\w*\d\w*)+(\.[a-zA-Z]{3,4})?/gi,
|
imgur: /(?:https?:)?\/\/(\w+\.)?imgur\.com\/(\S*)(\.[a-zA-Z]{3,4})/gi,
|
||||||
instagram: /(?:https?:\/\/www\.)?instagram\.com\S*?\/(?:p|reel)\/(\w{11})\/?/im
|
instagram: /(?:https?:\/\/www\.)?instagram\.com\S*?\/(?:p|reel)\/(\w{11})\/?/im
|
||||||
};
|
};
|
||||||
const mediagroupids = new Set();
|
const mediagroupids = new Set();
|
||||||
|
@ -51,8 +51,8 @@ export default async bot => {
|
||||||
console.log(`parsing ${links.length} link${links.length > 1 ? "s" : ""}...`);
|
console.log(`parsing ${links.length} link${links.length > 1 ? "s" : ""}...`);
|
||||||
|
|
||||||
links.forEach(async link => {
|
links.forEach(async link => {
|
||||||
if(regex.imgur.test(link))
|
//if(regex.imgur.test(link))
|
||||||
return await e.reply(`fuck imgur... seriously`);
|
// return await e.reply(`fuck imgur... seriously`);
|
||||||
|
|
||||||
if(regex.instagram.test(link))
|
if(regex.instagram.test(link))
|
||||||
return await e.reply(`fuck instagram... seriously`);
|
return await e.reply(`fuck instagram... seriously`);
|
||||||
|
@ -69,16 +69,22 @@ export default async bot => {
|
||||||
|
|
||||||
// read metadata
|
// read metadata
|
||||||
let ext;
|
let ext;
|
||||||
if(regex.instagram.test(link))
|
if(link.match(regex.instagram)) {
|
||||||
// is instagram
|
// is instagram
|
||||||
try {
|
try {
|
||||||
// @flummi -> is there a variable for the actual work directory so it doesn't have to be hardcoded?
|
// @flummi -> is there a variable for the actual work directory so it doesn't have to be hardcoded?
|
||||||
const meta = JSON.parse((await queue.exec(`yt-dlp -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' --skip-download --dump-json "${link}"`)).stdout);
|
const meta = JSON.parse((await queue.exec(`yt-dlp -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' --skip-download --dump-json "${link}"`)).stdout);
|
||||||
ext = meta.ext;
|
ext = meta.ext;
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
const tmphead = (await fetch(link, { method: "HEAD" })).headers["content-type"];
|
const tmphead = (await fetch(link, { method: "HEAD" })).headers["content-type"];
|
||||||
// this can be undefined for unsupported mime types, but will be caught in the general mime check below
|
// this can be undefined for unsupported mime types, but will be caught in the general mime check below
|
||||||
ext = cfg.mimes[tmphead];
|
ext = cfg.mimes[tmphead];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(link.match(regex.imgur)) {
|
||||||
|
// imghure
|
||||||
|
ext = link.split('.').pop();
|
||||||
|
await e.reply(`extension: ${ext}`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// is not instagram
|
// is not instagram
|
||||||
|
@ -100,41 +106,42 @@ export default async bot => {
|
||||||
disable_notification: true
|
disable_notification: true
|
||||||
});
|
});
|
||||||
|
|
||||||
// download data
|
// <download data>
|
||||||
const start = new Date();
|
const start = new Date();
|
||||||
let source;
|
let source;
|
||||||
|
|
||||||
try {
|
if(link.match(regex.instagram)) {
|
||||||
if(regex.instagram.test(link))
|
try {
|
||||||
try {
|
// add --cookies <path-to-cookies-file> on local instance if you want to avoid getting rate limited
|
||||||
// add --cookies <path-to-cookies-file> on local instance if you want to avoid getting rate limited
|
source = (await queue.exec(`yt-dlp -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' "${link}" --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.${ext}s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim();
|
||||||
source = (await queue.exec(`yt-dlp -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' "${link}" --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.%(ext)s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim();
|
} catch(err) {
|
||||||
} catch(err) {
|
if(e.type == 'tg')
|
||||||
if(e.type == 'tg')
|
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "instagram dl error");
|
||||||
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "instagram dl error");
|
return await e.reply("instagram dl error", err);
|
||||||
return await e.reply("instagram dl error", err);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
try {
|
|
||||||
source = (await queue.exec(`yt-dlp -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' "${link}" --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.%(ext)s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim();
|
|
||||||
} catch(err) {
|
|
||||||
if(e.type == 'tg')
|
|
||||||
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, err);
|
|
||||||
return await e.reply(err);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} catch(err) {
|
|
||||||
console.log(err);
|
|
||||||
}
|
}
|
||||||
|
else if(link.match(regex.imgur)) {
|
||||||
// this is how it was before I fucked it up :>
|
// imghure via torsocks
|
||||||
// try {
|
try {
|
||||||
// source = (await queue.exec(`yt-dlp -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' "${link}" --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.%(ext)s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim();
|
await queue.exec(`torsocks wget ${link} -O ./tmp/${uuid}.${ext}`);
|
||||||
// } catch(err) {
|
source = `./tmp/${uuid}.${ext}`;
|
||||||
// if(e.type == 'tg')
|
} catch(err) {
|
||||||
// return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "something went wrong lol");
|
console.error('err:', err);
|
||||||
// return await e.reply("something went wrong lol");
|
if(e.type == 'tg')
|
||||||
// }
|
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, err);
|
||||||
|
return await e.reply(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
source = (await queue.exec(`yt-dlp -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' "${link}" --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.${ext}s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim();
|
||||||
|
} catch(err) {
|
||||||
|
if(e.type == 'tg')
|
||||||
|
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, err);
|
||||||
|
return await e.reply(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// </download data>
|
||||||
|
|
||||||
if(!source) {
|
if(!source) {
|
||||||
if(e.type == 'tg')
|
if(e.type == 'tg')
|
||||||
|
|
Loading…
Reference in New Issue
Block a user