add rover

This commit is contained in:
Pas 2025-03-10 10:18:25 -06:00
parent 6f99946c5c
commit 83c582ab0d
2 changed files with 43 additions and 0 deletions

View file

@ -94,6 +94,7 @@ import { nepuScraper } from './sources/nepu';
import { nitesScraper } from './sources/nites';
import { primewireScraper } from './sources/primewire';
import { ridooMoviesScraper } from './sources/ridomovies';
import { roverScraper } from './sources/rover';
import { slidemoviesScraper } from './sources/slidemovies';
import { smashyStreamScraper } from './sources/smashystream';
import { soaperTvScraper } from './sources/soapertv';
@ -150,6 +151,7 @@ export function gatherAllSources(): Array<Sourcerer> {
uiraliveScraper,
vidapiClickScraper,
coitusScraper,
roverScraper,
];
}

View file

@ -0,0 +1,41 @@
import { flags } from '@/entrypoint/utils/targets';
import { SourcererOutput, makeSourcerer } from '@/providers/base';
import { MovieScrapeContext, ShowScrapeContext } from '@/utils/context';
import { NotFoundError } from '@/utils/errors';
const baseUrl = 'https://rover.rove.cx';
async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promise<SourcererOutput> {
const apiUrl =
ctx.media.type === 'movie'
? `${baseUrl}/movie/${ctx.media.tmdbId}`
: `${baseUrl}/tv/${ctx.media.tmdbId}/${ctx.media.season.number}/${ctx.media.episode.number}`;
const apiRes = await ctx.proxiedFetcher(apiUrl);
if (!apiRes.stream.hls) throw new NotFoundError('No watchable item found');
ctx.progress(90);
return {
embeds: [],
stream: [
{
id: 'primary',
captions: [],
playlist: apiRes.stream.hls,
type: 'hls',
flags: [flags.CORS_ALLOWED],
},
],
};
}
export const roverScraper = makeSourcerer({
id: 'rover',
name: 'Rover',
rank: 189,
disabled: false,
flags: [flags.CORS_ALLOWED],
scrapeMovie: comboScraper,
scrapeShow: comboScraper,
});