api/reddit: add support for short links

This commit is contained in:
Felix Vuong 🍂
2025-03-29 13:29:22 +07:00
committed by jj
parent 1477dcd4e7
commit b1bde25dee
5 changed files with 49 additions and 3 deletions

View File

@@ -50,6 +50,24 @@ async function getAccessToken() {
export default async function(obj) {
let params = obj;
const accessToken = await getAccessToken();
if (params.shortId) {
let url = await fetch(`https://www.reddit.com/video/${params.shortId}`, {
headers: {
'User-Agent': genericUserAgent,
'Authorization': `Bearer ${accessToken}`
}
}).then(r => r.url).catch(() => {});
if (!url) return { error: "fetch.fail" };
try {
params = extract(normalizeURL(url)).patternMatch;
} catch (error) {
return { error: "fetch.fail" };
}
}
if (!params.id && params.shareId) {
params = await resolveRedirectingURL(
@@ -63,7 +81,6 @@ export default async function(obj) {
const url = new URL(`https://www.reddit.com/comments/${params.id}.json`);
const accessToken = await getAccessToken();
if (accessToken) url.hostname = 'oauth.reddit.com';
let data = await fetch(