feat(linkedin): correctly normalize and parse linkedin post urls

This commit is contained in:
vectflow 2024-06-29 00:50:53 -04:00 committed by GitHub
parent 47d15c2592
commit 7f5a33c675
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 21 additions and 1 deletions

View File

@ -25,6 +25,7 @@ import twitch from "./services/twitch.js";
import rutube from "./services/rutube.js";
import dailymotion from "./services/dailymotion.js";
import loom from "./services/loom.js";
import linkedin from "./services/linkedin.js";
let freebind;
@ -193,6 +194,12 @@ export default async function(host, patternMatch, lang, obj) {
id: patternMatch.id
});
break;
case "linkedin":
r = await linkedin({
postId: patternMatch.id,
quality: obj.vQuality
});
break;
default:
return createResponse("error", {
t: loc(lang, 'ErrorUnsupported')

View File

@ -33,7 +33,6 @@
"vk": {
"alias": "vk video & clips",
"patterns": ["video:userId_:videoId", "clip:userId_:videoId", "clips:duplicate?z=clip:userId_:videoId"],
"subdomains": ["m"],
"enabled": true
},
"ok": {
@ -118,6 +117,11 @@
"alias": "loom videos",
"patterns": ["share/:id"],
"enabled": true
},
"linkedin": {
"alias": "linkedin videos",
"patterns": ["feed/update/urn\\:li\\:activity\\:(:id)"],
"enabled": true
}
}
}

View File

@ -9,6 +9,9 @@ export const testers = {
patternMatch.postId?.length <= 12
|| (patternMatch.username?.length <= 30 && patternMatch.storyId?.length <= 24),
"linkedin": (patternMatch) =>
patternMatch.id?.length === 19,
"loom": (patternMatch) =>
patternMatch.id?.length <= 32,

View File

@ -70,6 +70,12 @@ function aliasURL(url) {
url.hostname = 'instagram.com';
}
break;
case "linkedin":
if (parts[1] === "posts") {
const postId = parts.pop().split("-").at(-2)
url = new URL(`https://linkedin.com/feed/update/urn:li:activity:${postId}`)
}
break;
}
return url