api/reddit: add support for short links
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user