Release v0.4.0 #110

Merged
lamacchinadesiderante merged 50 commits from develop into main 2024-05-27 19:05:12 +00:00
1 changed files with 24 additions and 10 deletions
Showing only changes of commit a545a1f4d0 - Show all commits

View File

@ -2,13 +2,14 @@ import { YOUPORN_BASE_URL, YOUPORN_BASE_URL_VIDEO } from "@/constants/urls";
import { FetchParams, GalleryData, VideoData, VideoSourceItem } from "@/meta/data";
import { getHeaders } from "../common/headers";
import { getDataFromRedis, storeDataIntoRedis } from "@/redis/client";
import { DEFAULT_RELATED_VIDEO_KEY_PATH, DEFAULT_YOUPORN_VIDEO_EXPIRY } from "@/constants/redis";
import { DEFAULT_RELATED_VIDEO_KEY_PATH, DEFAULT_YOUPORN_VIDEO_EXPIRY, DEFAULT_YOUPORN_GALLERY_EXPIRY } from "@/constants/redis";
import * as cheerio from "cheerio";
import axios, { AxiosError } from "axios";
import { createSessionCookie, findGetMediaUrlInTagblock, findGetRelatedUrlInTagblock } from "../common/mindgeek";
import { createSessionCookie, findGetMediaUrlInTagblock } from "../common/mindgeek";
import { getYouPornMediaUrlList } from "./url";
import { Platforms } from "@/meta/settings";
export const fetchYouPornVideoData = async (videoId: string, params?: FetchParams): Promise<[VideoData, GalleryData[]]> => {
@ -19,7 +20,7 @@ export const fetchYouPornVideoData = async (videoId: string, params?: FetchParam
let relatedData: GalleryData[] = [];
let mediaUrl, relatedUrl, sessionCookie, convertedData: VideoSourceItem[]
let mediaUrl, sessionCookie, convertedData: VideoSourceItem[]
let reqHeaders = getHeaders(YOUPORN_BASE_URL)
@ -53,13 +54,22 @@ export const fetchYouPornVideoData = async (videoId: string, params?: FetchParam
})
scriptTags.map((idx, elem) => {
const getRelatedUrl = findGetRelatedUrlInTagblock($(elem).toString()) ?? null
const wrapperId = "#relatedVideos .video-box"
if (getRelatedUrl) {
relatedUrl = getRelatedUrl
}
const thumbs = $(wrapperId);
thumbs.map((key, thumb) => {
const videoUrl = $(thumb).find("a.tm_video_link").attr("href")?.split('/')[2];
const imgUrl = $(thumb).find("img.thumb-image").attr("data-src")
const text = $(thumb).find("a.video-title").text();
videoUrl && imgUrl && text && relatedData.push({
videoUrl,
imgUrl,
text,
platform: Platforms.youporn
})
})
}).catch((error: AxiosError) => {
@ -73,5 +83,9 @@ export const fetchYouPornVideoData = async (videoId: string, params?: FetchParam
await storeDataIntoRedis(queryUrl, data, DEFAULT_YOUPORN_VIDEO_EXPIRY);
}
if (relatedData.length > 0) {
await storeDataIntoRedis(queryUrl + DEFAULT_RELATED_VIDEO_KEY_PATH, relatedData, DEFAULT_YOUPORN_GALLERY_EXPIRY);
}
return [ data, relatedData ]
}