From d134e4d6be6137a0a1ea209ea96fceaa627be1b3 Mon Sep 17 00:00:00 2001 From: Abu Ottermann Date: Tue, 20 Feb 2024 01:13:41 +0100 Subject: [PATCH] fixing imgur --- src/inc/trigger/parser.mjs | 39 ++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/src/inc/trigger/parser.mjs b/src/inc/trigger/parser.mjs index b940eff..d7133ef 100644 --- a/src/inc/trigger/parser.mjs +++ b/src/inc/trigger/parser.mjs @@ -11,7 +11,7 @@ import path from "path"; const regex = { 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, - imgur: /^https?:\/\/(\w+\.)?imgur.com\/(\w*\d\w*)+(\.[a-zA-Z]{3,4})?/gi, + imgur: /(?:https?:)?\/\/(\w+\.)?imgur\.com\/(\S*)(\.[a-zA-Z]{3})/gm, instagram: /(?:https?:\/\/www\.)?instagram\.com\S*?\/(?:p|reel)\/(\w{11})\/?/im }; const mediagroupids = new Set(); @@ -52,10 +52,10 @@ export default async bot => { links.forEach(async link => { if(regex.imgur.test(link)) - return await e.reply(`fuck imgur... seriously`); + await e.reply(`imgur schmimigur`); if(regex.instagram.test(link)) - return await e.reply(`fuck instagram... seriously`); + await e.reply(`insta schminsta`); // check repost (link) repost = await queue.checkrepostlink(link); @@ -69,16 +69,16 @@ export default async bot => { // read metadata let ext; - if(regex.instagram.test(link)) - // 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; - } catch(err) { - 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 - ext = cfg.mimes[tmphead]; + if(regex.imgur.test(link)) { + // is imgur + try { + // will die extension von der url + ext = link.split(".").slice(-1).join("."); + } catch(err) { + 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 + ext = cfg.mimes[tmphead]; + } } else { // is not instagram @@ -114,7 +114,18 @@ export default async bot => { return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "instagram dl error"); return await e.reply("instagram dl error", err); } - else { + else if(regex.imgur.test(link)) { + console.log("penis123"); + try { + await queue.exec(`torsocks wget "${link}" -O "./tmp/${uuid}.${ext}"`); + source = "/home/f0ck/f0ckv2/tmp/"+uuid+"."+ext; + console.log(source); + } catch(err) { + console.log(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) {