imgur schmimgur
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				fetch npm modules / f0ck the f0cker (push) Successful in 19s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	fetch npm modules / f0ck the f0cker (push) Successful in 19s
				
			This commit is contained in:
		| @@ -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') | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user