rsshub
Version:
Make RSS Great Again!
40 lines (32 loc) • 1.25 kB
text/typescript
import { Route } from '@/types';
import ofetch from '@/utils/ofetch';
import cache from '@/utils/cache';
import { baseUrl, getItem, headers, parseList } from './utils';
export const route: Route = {
path: '/studios/:studio',
categories: ['multimedia'],
example: '/javtrailers/studios/s1-no-1-style',
parameters: { studio: 'Studio name, can be found in the URL of the studio page' },
radar: [
{
source: ['javtrailers.com/studios/:category'],
},
],
name: 'Studios',
maintainers: ['TonyRL'],
handler,
};
async function handler(ctx) {
const { studio } = ctx.req.param();
const response = await ofetch(`${baseUrl}/api/studios/${studio}?page=0`, {
headers,
});
const list = parseList(response.videos);
const items = await Promise.all(list.map((item) => cache.tryGet(item.link, () => getItem(item))));
return {
title: `${response.studio.hotDvdIds?.join(' ') ?? response.studio.name} Jav Online | Japanese Adult Video - JavTrailers.com`,
description: 'Watch Jav made by Prestige free, with high definition, we have over 4,000 studios available for free streaming.',
link: `${baseUrl}/studios/${studio}`,
item: items,
};
}