This commit is contained in:
himanshu8443
2025-06-16 22:35:39 +05:30
parent 4c95efcb5b
commit a21dad9698
123 changed files with 8099 additions and 159 deletions

18
dist/flixhq/catalog.js vendored Normal file
View File

@@ -0,0 +1,18 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Trending",
filter: "/trending",
},
{
title: "Movies",
filter: "/recent-movies",
},
{
title: "TV Shows",
filter: "/recent-shows",
},
];
exports.genres = [];

56
dist/flixhq/meta.js vendored Normal file
View File

@@ -0,0 +1,56 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = async function ({ link: id, providerContext, }) {
try {
const { axios, getBaseUrl } = providerContext;
const baseUrl = await getBaseUrl("consumet");
const url = `${baseUrl}/movies/flixhq/info?id=` + id;
const res = await axios.get(url);
const data = res.data;
const meta = {
title: data.title,
synopsis: data.description.replace(/<[^>]*>?/gm, "").trim(),
image: data.cover,
cast: data.casts,
rating: data.rating,
tags: [data?.type, data?.duration, data.releaseDate.split("-")[0]],
imdbId: "",
type: data.episodes.length > 1 ? "series" : "movie",
};
const links = [];
data.episodes.forEach((episode) => {
const title = episode?.number
? "Season-" + episode?.season + " Ep-" + episode.number
: episode.title;
const link = episode.id + "*" + data.id;
if (link && title) {
links.push({
title,
link,
});
}
});
return {
...meta,
linkList: [
{
title: meta.title,
directLinks: links,
},
],
};
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
};
exports.getMeta = getMeta;

44
dist/flixhq/posts.js vendored Normal file
View File

@@ -0,0 +1,44 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = async function ({ filter, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const urlRes = await getBaseUrl("consumet");
const baseUrl = urlRes + "/movies/flixhq";
const url = `${baseUrl + filter}`;
return posts({ url, signal, providerContext });
};
exports.getPosts = getPosts;
const getSearchPosts = async function ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const urlRes = await getBaseUrl("consumet");
const baseUrl = urlRes + "/movies/flixhq";
const url = `${baseUrl}/${searchQuery}?page=${page}`;
return posts({ url, signal, providerContext });
};
exports.getSearchPosts = getSearchPosts;
async function posts({ url, signal, providerContext, }) {
try {
const { axios } = providerContext;
const res = await axios.get(url, { signal });
const data = res.data?.results || res.data;
const catalog = [];
data?.map((element) => {
const title = element.title;
const link = element.id;
const image = element.image;
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("flixhq error ", err);
return [];
}
}

55
dist/flixhq/stream.js vendored Normal file
View File

@@ -0,0 +1,55 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const types_1 = require("../types");
const getStream = async function ({ link: id, providerContext, }) {
try {
const { getBaseUrl } = providerContext;
const episodeId = id.split("*")[0];
const mediaId = id.split("*")[1];
const baseUrl = await getBaseUrl("consumet");
const serverUrl = `${baseUrl}/movies/flixhq/servers?episodeId=${episodeId}&mediaId=${mediaId}`;
const res = await fetch(serverUrl);
const servers = await res.json();
const streamLinks = [];
for (const server of servers) {
const streamUrl = `${baseUrl}/movies/flixhq/watch?server=` +
server.name +
"&episodeId=" +
episodeId +
"&mediaId=" +
mediaId;
const streamRes = await fetch(streamUrl);
const streamData = await streamRes.json();
const subtitles = [];
if (streamData?.sources?.length > 0) {
if (streamData.subtitles) {
streamData.subtitles.forEach((sub) => {
subtitles.push({
language: sub?.lang?.slice(0, 2),
uri: sub?.url,
type: types_1.TextTrackType.VTT,
title: sub?.lang,
});
});
}
streamData.sources.forEach((source) => {
streamLinks.push({
server: server?.name +
"-" +
source?.quality?.replace("auto", "MultiQuality"),
link: source.url,
type: source.isM3U8 ? "m3u8" : "mp4",
subtitles: subtitles,
});
});
}
}
return streamLinks;
}
catch (err) {
console.error(err);
return [];
}
};
exports.getStream = getStream;