imgur schmimgur
All checks were successful
fetch npm modules / f0ck the f0cker (push) Successful in 19s

This commit is contained in:
Flummi 2024-02-20 17:46:41 +01:00 committed by Abu Ottermann
parent 6f71170da9
commit 95902023e9

View File

@ -11,7 +11,11 @@ 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,
<<<<<<< HEAD
imgur: /(?:https?:)?\/\/(\w+\.)?imgur\.com\/(\S*)(\.[a-zA-Z]{3})/gm, imgur: /(?:https?:)?\/\/(\w+\.)?imgur\.com\/(\S*)(\.[a-zA-Z]{3})/gm,
=======
imgur: /(?:https?:)?\/\/(\w+\.)?imgur\.com\/(\S*)(\.[a-zA-Z]{3,4})/gi,
>>>>>>> 2b2fe45 (imgur schmimgur)
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 +55,13 @@ 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 => {
<<<<<<< HEAD
if(regex.imgur.test(link)) if(regex.imgur.test(link))
await e.reply(`imgur schmimigur`); await e.reply(`imgur schmimigur`);
=======
//if(regex.imgur.test(link))
// return await e.reply(`fuck imgur... seriously`);
>>>>>>> 2b2fe45 (imgur schmimgur)
if(regex.instagram.test(link)) if(regex.instagram.test(link))
await e.reply(`insta schminsta`); await e.reply(`insta schminsta`);
@ -69,16 +78,34 @@ export default async bot => {
// read metadata // read metadata
let ext; let ext;
<<<<<<< HEAD
if(regex.imgur.test(link)) { if(regex.imgur.test(link)) {
// is imgur // is imgur
try { try {
// will die extension von der url // will die extension von der url
ext = link.split(".").slice(-1).join("."); ext = link.split(".").slice(-1).join(".");
=======
if(link.match(regex.instagram)) {
// is instagram
try {
// @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);
ext = meta.ext;
>>>>>>> 2b2fe45 (imgur schmimgur)
} 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];
<<<<<<< HEAD
} }
=======
}
}
else if(link.match(regex.imgur)) {
// imghure
ext = link.split('.').pop();
await e.reply(`extension: ${ext}`);
>>>>>>> 2b2fe45 (imgur schmimgur)
} }
else { else {
// is not instagram // is not instagram
@ -100,10 +127,11 @@ 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;
<<<<<<< HEAD
try { try {
if(regex.instagram.test(link)) if(regex.instagram.test(link))
try { try {
@ -133,19 +161,40 @@ export default async bot => {
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, err); return await e.editMessageText(msg.result.chat.id, msg.result.message_id, err);
return await e.reply(err); return await e.reply(err);
} }
} =======
if(link.match(regex.instagram)) {
try {
// 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();
} catch(err) { } catch(err) {
console.log(err); if(e.type == 'tg')
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "instagram dl error");
return await e.reply("instagram dl error", err);
>>>>>>> 2b2fe45 (imgur schmimgur)
} }
}
// this is how it was before I fucked it up :> else if(link.match(regex.imgur)) {
// try { // imghure via torsocks
// 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(); try {
// } catch(err) { await queue.exec(`torsocks wget ${link} -O ./tmp/${uuid}.${ext}`);
// if(e.type == 'tg') source = `./tmp/${uuid}.${ext}`;
// return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "something went wrong lol"); } catch(err) {
// return await e.reply("something went wrong lol"); console.error('err:', err);
// } 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')