mirror of
https://github.com/imputnet/cobalt.git
synced 2026-02-16 21:46:00 +00:00
api/reddit: extract params from a mobile share link
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { resolveRedirectingURL } from "../url.js";
|
||||
import { genericUserAgent, env } from "../../config.js";
|
||||
import { getCookie, updateCookieValues } from "../cookie/manager.js";
|
||||
|
||||
@@ -48,12 +49,22 @@ async function getAccessToken() {
|
||||
}
|
||||
|
||||
export default async function(obj) {
|
||||
let url = new URL(`https://www.reddit.com/r/${obj.sub}/comments/${obj.id}.json`);
|
||||
let params = obj;
|
||||
|
||||
if (obj.user) {
|
||||
url.pathname = `/user/${obj.user}/comments/${obj.id}.json`;
|
||||
if (!params.id && params.shareId) {
|
||||
params = await resolveRedirectingURL(
|
||||
`https://www.reddit.com/r/${params.sub}/s/${params.shareId}`,
|
||||
obj.dispatcher,
|
||||
genericUserAgent
|
||||
);
|
||||
}
|
||||
|
||||
if (!params?.id) return { error: "fetch.short_link" };
|
||||
|
||||
const url = new URL(
|
||||
`https://www.reddit.com/r/${params.sub || params.user}/comments/${params.id}.json`
|
||||
);
|
||||
|
||||
const accessToken = await getAccessToken();
|
||||
if (accessToken) url.hostname = 'oauth.reddit.com';
|
||||
|
||||
@@ -73,7 +84,7 @@ export default async function(obj) {
|
||||
|
||||
data = data[0]?.data?.children[0]?.data;
|
||||
|
||||
const id = `${String(obj.sub).toLowerCase()}_${obj.id}`;
|
||||
const id = `${String(params.sub).toLowerCase()}_${params.id}`;
|
||||
|
||||
if (data?.url?.endsWith('.gif')) return {
|
||||
typeId: "redirect",
|
||||
@@ -87,8 +98,9 @@ export default async function(obj) {
|
||||
if (data.secure_media?.reddit_video?.duration > env.durationLimit)
|
||||
return { error: "content.too_long" };
|
||||
|
||||
const video = data.secure_media?.reddit_video?.fallback_url?.split('?')[0];
|
||||
|
||||
let audio = false,
|
||||
video = data.secure_media?.reddit_video?.fallback_url?.split('?')[0],
|
||||
audioFileLink = `${data.secure_media?.reddit_video?.fallback_url?.split('DASH')[0]}audio`;
|
||||
|
||||
if (video.match('.mp4')) {
|
||||
|
||||
Reference in New Issue
Block a user