Merge pull request #21 from Pasithea0/pr-fixes
Some checks failed
Testing / Testing (push) Has been cancelled

Update rankings and disable broken providers
This commit is contained in:
TPN 2025-01-08 16:52:07 +05:30 committed by GitHub
commit f5a8df4c01
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 45 additions and 35 deletions

View file

@ -9,25 +9,33 @@ const providers = [
{ {
id: 'autoembed-hindi', id: 'autoembed-hindi',
rank: 9, rank: 9,
disabled: true,
}, },
{ {
id: 'autoembed-tamil', id: 'autoembed-tamil',
rank: 8, rank: 8,
disabled: true,
}, },
{ {
id: 'autoembed-telugu', id: 'autoembed-telugu',
rank: 7, rank: 7,
disabled: true,
}, },
{ {
id: 'autoembed-bengali', id: 'autoembed-bengali',
rank: 6, rank: 6,
disabled: true,
}, },
]; ];
function embed(provider: { id: string; rank: number }) { function embed(provider: { id: string; rank: number; disabled?: boolean }) {
return makeEmbed({ return makeEmbed({
id: provider.id, id: provider.id,
name: provider.id.charAt(0).toUpperCase() + provider.id.slice(1), name: provider.id
.split('-')
.map((word) => word[0].toUpperCase() + word.slice(1))
.join(' '),
disabled: provider.disabled,
rank: provider.rank, rank: provider.rank,
async scrape(ctx) { async scrape(ctx) {
return { return {

View file

@ -38,8 +38,8 @@ async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promis
export const autoembedScraper = makeSourcerer({ export const autoembedScraper = makeSourcerer({
id: 'autoembed', id: 'autoembed',
name: 'Autoembed', name: 'Autoembed',
rank: 10, rank: 90,
disabled: true, disabled: false,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
scrapeMovie: comboScraper, scrapeMovie: comboScraper,
scrapeShow: comboScraper, scrapeShow: comboScraper,

View file

@ -25,7 +25,8 @@ async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promis
export const bombtheirishScraper = makeSourcerer({ export const bombtheirishScraper = makeSourcerer({
id: 'bombtheirish', id: 'bombtheirish',
name: 'bombthe.irish', name: 'bombthe.irish',
rank: 50, rank: 100,
disabled: true,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
scrapeMovie: comboScraper, scrapeMovie: comboScraper,
scrapeShow: comboScraper, scrapeShow: comboScraper,

View file

@ -67,7 +67,7 @@ async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promis
export const catflixScraper = makeSourcerer({ export const catflixScraper = makeSourcerer({
id: 'catflix', id: 'catflix',
name: 'Catflix', name: 'Catflix',
rank: 122, rank: 170,
flags: [], flags: [],
scrapeMovie: comboScraper, scrapeMovie: comboScraper,
scrapeShow: comboScraper, scrapeShow: comboScraper,

View file

@ -91,7 +91,7 @@ async function comboScraper(ctx: MovieScrapeContext): Promise<SourcererOutput> {
export const ee3Scraper = makeSourcerer({ export const ee3Scraper = makeSourcerer({
id: 'ee3', id: 'ee3',
name: 'EE3', name: 'EE3',
rank: 111, rank: 150,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
scrapeMovie: comboScraper, scrapeMovie: comboScraper,
}); });

View file

@ -9,7 +9,7 @@ import { NotFoundError } from '@/utils/errors';
export const flixhqScraper = makeSourcerer({ export const flixhqScraper = makeSourcerer({
id: 'flixhq', id: 'flixhq',
name: 'FlixHQ', name: 'FlixHQ',
rank: 61, rank: 230,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
disabled: true, disabled: true,
async scrapeMovie(ctx) { async scrapeMovie(ctx) {

View file

@ -88,7 +88,7 @@ async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promis
export const fsharetvScraper = makeSourcerer({ export const fsharetvScraper = makeSourcerer({
id: 'fsharetv', id: 'fsharetv',
name: 'FshareTV', name: 'FshareTV',
rank: 93, rank: 220,
flags: [], flags: [],
scrapeMovie: comboScraper, scrapeMovie: comboScraper,
}); });

View file

@ -17,7 +17,7 @@ export const gomoviesBase = `https://gomovies.sx`;
export const goMoviesScraper = makeSourcerer({ export const goMoviesScraper = makeSourcerer({
id: 'gomovies', id: 'gomovies',
name: 'GOmovies', name: 'GOmovies',
rank: 60, rank: 50,
disabled: true, disabled: true,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
async scrapeShow(ctx) { async scrapeShow(ctx) {

View file

@ -22,7 +22,7 @@ async function universalScraper(ctx: ShowScrapeContext | MovieScrapeContext): Pr
export const goojaraScraper = makeSourcerer({ export const goojaraScraper = makeSourcerer({
id: 'goojara', id: 'goojara',
name: 'Goojara', name: 'Goojara',
rank: 70, rank: 180,
flags: [], flags: [],
disabled: true, disabled: true,
scrapeShow: universalScraper, scrapeShow: universalScraper,

View file

@ -120,7 +120,7 @@ const universalScraper = async (ctx: ShowScrapeContext | MovieScrapeContext): Pr
export const hdRezkaScraper = makeSourcerer({ export const hdRezkaScraper = makeSourcerer({
id: 'hdrezka', id: 'hdrezka',
name: 'HDRezka', name: 'HDRezka',
rank: 120, rank: 190,
flags: [flags.CORS_ALLOWED, flags.IP_LOCKED], flags: [flags.CORS_ALLOWED, flags.IP_LOCKED],
scrapeShow: universalScraper, scrapeShow: universalScraper,
scrapeMovie: universalScraper, scrapeMovie: universalScraper,

View file

@ -11,7 +11,8 @@ const insertUnitBase = 'https://api.insertunit.ws/';
export const insertunitScraper = makeSourcerer({ export const insertunitScraper = makeSourcerer({
id: 'insertunit', id: 'insertunit',
name: 'Insertunit', name: 'Insertunit',
rank: 60, rank: 110,
disabled: true,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
async scrapeShow(ctx) { async scrapeShow(ctx) {
const playerData = await ctx.fetcher<string>(`/embed/imdb/${ctx.media.imdbId}`, { const playerData = await ctx.fetcher<string>(`/embed/imdb/${ctx.media.imdbId}`, {

View file

@ -33,7 +33,7 @@ export const lookmovieScraper = makeSourcerer({
id: 'lookmovie', id: 'lookmovie',
name: 'LookMovie', name: 'LookMovie',
disabled: true, disabled: true,
rank: 50, rank: 60,
flags: [flags.IP_LOCKED], flags: [flags.IP_LOCKED],
scrapeShow: universalScraper, scrapeShow: universalScraper,
scrapeMovie: universalScraper, scrapeMovie: universalScraper,

View file

@ -113,6 +113,7 @@ const universalScraper = async (ctx: MovieScrapeContext | ShowScrapeContext) =>
for (const source of sources) { for (const source of sources) {
let embedId; let embedId;
if (source.name === 'm') if (source.name === 'm')
embedId = 'playm4u-m'; // TODO embedId = 'playm4u-m'; // TODO
else if (source.name === 'nm') embedId = 'playm4u-nm'; else if (source.name === 'nm') embedId = 'playm4u-nm';
@ -149,7 +150,8 @@ const universalScraper = async (ctx: MovieScrapeContext | ShowScrapeContext) =>
export const m4uScraper = makeSourcerer({ export const m4uScraper = makeSourcerer({
id: 'm4ufree', id: 'm4ufree',
name: 'M4UFree', name: 'M4UFree',
rank: 125, rank: 200,
disabled: true,
flags: [], flags: [],
scrapeMovie: universalScraper, scrapeMovie: universalScraper,
scrapeShow: universalScraper, scrapeShow: universalScraper,

View file

@ -76,7 +76,7 @@ const universalScraper = async (ctx: MovieScrapeContext | ShowScrapeContext) =>
export const nepuScraper = makeSourcerer({ export const nepuScraper = makeSourcerer({
id: 'nepu', id: 'nepu',
name: 'Nepu', name: 'Nepu',
rank: 80, rank: 210,
disabled: true, disabled: true,
flags: [], flags: [],
scrapeMovie: universalScraper, scrapeMovie: universalScraper,

View file

@ -73,7 +73,7 @@ export const nitesScraper = makeSourcerer({
id: 'nites', id: 'nites',
name: 'Nites', name: 'Nites',
disabled: true, disabled: true,
rank: 90, rank: 80,
flags: [], flags: [],
scrapeMovie: comboScraper, scrapeMovie: comboScraper,
scrapeShow: comboScraper, scrapeShow: comboScraper,

View file

@ -36,7 +36,7 @@ async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promis
export const nsbxScraper = makeSourcerer({ export const nsbxScraper = makeSourcerer({
id: 'nsbx', id: 'nsbx',
name: 'NSBX', name: 'NSBX',
rank: 129, rank: 290,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
disabled: true, disabled: true,
externalSource: true, externalSource: true,

View file

@ -80,7 +80,7 @@ async function getStreams(title: string) {
export const primewireScraper = makeSourcerer({ export const primewireScraper = makeSourcerer({
id: 'primewire', id: 'primewire',
name: 'Primewire', name: 'Primewire',
rank: 1, rank: 10,
disabled: true, disabled: true,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
async scrapeMovie(ctx) { async scrapeMovie(ctx) {

View file

@ -37,7 +37,7 @@ export const redStarScraper = makeSourcerer({
name: 'redStar', name: 'redStar',
disabled: true, disabled: true,
externalSource: true, externalSource: true,
rank: 131, rank: 280,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
scrapeMovie: universalScraper, scrapeMovie: universalScraper,
scrapeShow: universalScraper, scrapeShow: universalScraper,

View file

@ -11,7 +11,7 @@ export const remotestreamScraper = makeSourcerer({
id: 'remotestream', id: 'remotestream',
name: 'Remote Stream', name: 'Remote Stream',
disabled: true, disabled: true,
rank: 20, rank: 30,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
async scrapeShow(ctx) { async scrapeShow(ctx) {
const seasonNumber = ctx.media.season.number; const seasonNumber = ctx.media.season.number;

View file

@ -1,6 +1,5 @@
import { load } from 'cheerio'; import { load } from 'cheerio';
import { flags } from '@/entrypoint/utils/targets';
import { SourcererEmbed, makeSourcerer } from '@/providers/base'; import { SourcererEmbed, makeSourcerer } from '@/providers/base';
import { closeLoadScraper } from '@/providers/embeds/closeload'; import { closeLoadScraper } from '@/providers/embeds/closeload';
import { ridooScraper } from '@/providers/embeds/ridoo'; import { ridooScraper } from '@/providers/embeds/ridoo';
@ -74,8 +73,8 @@ const universalScraper = async (ctx: MovieScrapeContext | ShowScrapeContext) =>
export const ridooMoviesScraper = makeSourcerer({ export const ridooMoviesScraper = makeSourcerer({
id: 'ridomovies', id: 'ridomovies',
name: 'RidoMovies', name: 'RidoMovies',
rank: 100, rank: 120,
flags: [flags.CORS_ALLOWED], flags: [],
scrapeMovie: universalScraper, scrapeMovie: universalScraper,
scrapeShow: universalScraper, scrapeShow: universalScraper,
}); });

View file

@ -41,7 +41,7 @@ async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promis
export const showboxScraper = makeSourcerer({ export const showboxScraper = makeSourcerer({
id: 'showbox', id: 'showbox',
name: 'Showbox', name: 'Showbox',
rank: 150, rank: 250,
disabled: true, disabled: true,
flags: [flags.CORS_ALLOWED, flags.CF_BLOCKED], flags: [flags.CORS_ALLOWED, flags.CF_BLOCKED],
scrapeShow: comboScraper, scrapeShow: comboScraper,

View file

@ -30,7 +30,7 @@ const universalScraper = async (ctx: ShowScrapeContext | MovieScrapeContext): Pr
export const smashyStreamScraper = makeSourcerer({ export const smashyStreamScraper = makeSourcerer({
id: 'smashystream', id: 'smashystream',
name: 'SmashyStream', name: 'SmashyStream',
rank: 30, rank: 20,
disabled: true, disabled: true,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
scrapeMovie: universalScraper, scrapeMovie: universalScraper,

View file

@ -115,7 +115,7 @@ const universalScraper = async (ctx: MovieScrapeContext | ShowScrapeContext): Pr
export const soaperTvScraper = makeSourcerer({ export const soaperTvScraper = makeSourcerer({
id: 'soapertv', id: 'soapertv',
name: 'SoaperTV', name: 'SoaperTV',
rank: 126, rank: 160,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
scrapeMovie: universalScraper, scrapeMovie: universalScraper,
scrapeShow: universalScraper, scrapeShow: universalScraper,

View file

@ -10,7 +10,7 @@ import { baseUrl, parseSearch } from './common';
export const tugaflixScraper = makeSourcerer({ export const tugaflixScraper = makeSourcerer({
id: 'tugaflix', id: 'tugaflix',
name: 'Tugaflix', name: 'Tugaflix',
rank: 73, rank: 70,
flags: [flags.IP_LOCKED], flags: [flags.IP_LOCKED],
scrapeMovie: async (ctx) => { scrapeMovie: async (ctx) => {
const searchResults = parseSearch( const searchResults = parseSearch(

View file

@ -5,7 +5,7 @@ import { scrapeShow } from '@/providers/sources/vidsrc/scrape-show';
export const vidsrcScraper = makeSourcerer({ export const vidsrcScraper = makeSourcerer({
id: 'vidsrc', id: 'vidsrc',
name: 'VidSrc', name: 'VidSrc',
rank: 90, rank: 130,
disabled: true, disabled: true,
flags: [], flags: [],
scrapeMovie, scrapeMovie,

View file

@ -86,5 +86,5 @@ export const vidSrcToScraper = makeSourcerer({
scrapeMovie: universalScraper, scrapeMovie: universalScraper,
scrapeShow: universalScraper, scrapeShow: universalScraper,
flags: [flags.PROXY_BLOCKED], flags: [flags.PROXY_BLOCKED],
rank: 130, rank: 260,
}); });

View file

@ -1,4 +1,3 @@
import { flags } from '@/entrypoint/utils/targets';
import { SourcererEmbed, SourcererOutput, makeSourcerer } from '@/providers/base'; import { SourcererEmbed, SourcererOutput, makeSourcerer } from '@/providers/base';
import { mixdropScraper } from '@/providers/embeds/mixdrop'; import { mixdropScraper } from '@/providers/embeds/mixdrop';
import { warezcdnembedHlsScraper } from '@/providers/embeds/warezcdn/hls'; import { warezcdnembedHlsScraper } from '@/providers/embeds/warezcdn/hls';
@ -48,8 +47,8 @@ async function getEmbeds(id: string, servers: string, ctx: ScrapeContext): Promi
export const warezcdnScraper = makeSourcerer({ export const warezcdnScraper = makeSourcerer({
id: 'warezcdn', id: 'warezcdn',
name: 'WarezCDN', name: 'WarezCDN',
rank: 81, rank: 140,
flags: [flags.CORS_ALLOWED], flags: [],
scrapeMovie: async (ctx) => { scrapeMovie: async (ctx) => {
if (!ctx.media.imdbId) throw new NotFoundError('This source requires IMDB id.'); if (!ctx.media.imdbId) throw new NotFoundError('This source requires IMDB id.');
const serversPage = await ctx.proxiedFetcher<string>(`/filme/${ctx.media.imdbId}`, { const serversPage = await ctx.proxiedFetcher<string>(`/filme/${ctx.media.imdbId}`, {

View file

@ -37,7 +37,7 @@ async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promis
export const whvxScraper = makeSourcerer({ export const whvxScraper = makeSourcerer({
id: 'whvx', id: 'whvx',
name: 'VidBinge', name: 'VidBinge',
rank: 128, rank: 270,
disabled: true, disabled: true,
externalSource: true, externalSource: true,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],

View file

@ -6,7 +6,7 @@ import { scrapeShow } from '@/providers/sources/zoechip/scrape-show';
export const zoechipScraper = makeSourcerer({ export const zoechipScraper = makeSourcerer({
id: 'zoechip', id: 'zoechip',
name: 'ZoeChip', name: 'ZoeChip',
rank: 62, rank: 240,
flags: [flags.CORS_ALLOWED], flags: [flags.CORS_ALLOWED],
disabled: true, disabled: true,
scrapeMovie, scrapeMovie,