feat(pinterest): implement image and gifs support

This commit is contained in:
Eugene Rusk 2024-04-30 06:30:19 +07:00
parent 709d14ee9e
commit 2ab25fabfc
2 changed files with 47 additions and 5 deletions

View File

@ -1,6 +1,7 @@
import { genericUserAgent } from "../../config.js"; import { genericUserAgent } from "../../config.js";
const linkRegex = /"url":"(https:\/\/v1.pinimg.com\/videos\/.*?)"/g; const videoRegex = /"url":"(https:\/\/v1.pinimg.com\/videos\/.*?)"/g;
const imageRegex = /src="(https:\/\/i\.pinimg\.com\/.*\.(jpg|gif))"/g;
export default async function(o) { export default async function(o) {
let id = o.id; let id = o.id;
@ -19,15 +20,24 @@ export default async function(o) {
if (!html) return { error: 'ErrorCouldntFetch' }; if (!html) return { error: 'ErrorCouldntFetch' };
let videoLink = [...html.matchAll(linkRegex)] let videoLink = [...html.matchAll(videoRegex)]
.map(([, link]) => link) .map(([, link]) => link)
.filter(a => a.endsWith('.mp4') && a.includes('720p'))[0]; .filter(a => a.endsWith('.mp4') && a.includes('720p'))[0];
if (!videoLink) return { error: 'ErrorEmptyDownload' }; if (videoLink) return {
return {
urls: videoLink, urls: videoLink,
filename: `pinterest_${o.id}.mp4`, filename: `pinterest_${o.id}.mp4`,
audioFilename: `pinterest_${o.id}_audio` audioFilename: `pinterest_${o.id}_audio`
} }
let imageLink = [...html.matchAll(imageRegex)]
.map(([, link]) => link)
.filter(a => a.endsWith('.jpg') || a.endsWith('.gif'))[0];
if (imageLink) return {
urls: imageLink,
isPhoto: true
}
return { error: 'ErrorEmptyDownload' };
} }

View File

@ -976,6 +976,38 @@
"code": 200, "code": 200,
"status": "redirect" "status": "redirect"
} }
}, {
"name": "regular picture",
"url": "https://www.pinterest.com/pin/412994228343400946/",
"params": {},
"expected": {
"code": 200,
"status": "redirect"
}
}, {
"name": "regular picture (.ca TLD)",
"url": "https://www.pinterest.ca/pin/412994228343400946/",
"params": {},
"expected": {
"code": 200,
"status": "redirect"
}
}, {
"name": "regular gif",
"url": "https://www.pinterest.com/pin/814447913881127862/",
"params": {},
"expected": {
"code": 200,
"status": "redirect"
}
}, {
"name": "regular gif (.ca TLD)",
"url": "https://www.pinterest.ca/pin/814447913881127862/",
"params": {},
"expected": {
"code": 200,
"status": "redirect"
}
}], }],
"streamable": [{ "streamable": [{
"name": "regular video", "name": "regular video",