with plot - synopsis = $("p:contains('plot')").text().trim(); - } - // 4. Download links (multiple qualities) - const links = []; - $('a[href*="download.php?file="], a[href*="dwload.php?file="]').each((i, el) => { - var _a; - const downloadPage = ((_a = $(el).attr("href")) === null || _a === void 0 ? void 0 : _a.replace("dwload.php", "download.php")) || ""; - const text = $(el).text().trim(); - if (downloadPage && /\d+p/i.test(text)) { - // Only add links with quality in text - links.push({ - title: text, - directLinks: [{ title: "Movie", link: baseUrl + downloadPage }], - }); - } - }); - $("img[src*='/images/play.png']").each((i, el) => { - const downloadPage = $(el).siblings("a").attr("href"); - const text = $(el).siblings("a").text().trim(); - console.log("Found link:🔥🔥", text, downloadPage); - if (downloadPage && text) { - links.push({ - title: text, - episodesLink: baseUrl + downloadPage, - }); - } - }); - return { - title, - synopsis, - image, - imdbId, - tags, - type, - linkList: links, - //info: infoRows.join("\n"), - }; - } - catch (err) { - console.error(err); - return { - title: "", - synopsis: "", - image: "", - imdbId: "", - type: "movie", - linkList: [], - }; - } - }); -}; -exports.getMeta = getMeta; +"use strict";var __awaiter=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))(function(o,a){function r(t){try{l(n.next(t))}catch(t){a(t)}}function s(t){try{l(n.throw(t))}catch(t){a(t)}}function l(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(r,s)}l((n=n.apply(t,e||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMeta=void 0;const getMeta=function(t){return __awaiter(this,arguments,void 0,function*({link:t,providerContext:e}){try{const{axios:i,cheerio:n,getBaseUrl:o}=e,a=yield o("moviezwap"),r=t.startsWith("http")?t:`${a}${t}`,s=(yield i.get(r)).data,l=n.load(s);let c=l('img[width="260"]').attr("src")||"";c&&!c.startsWith("http")&&(c=a+c);const p=l("font[color='steelblue']").map((t,e)=>l(e).text().trim()).get().slice(0,2),d=l("title").text().replace(" - MoviezWap","").trim()||"";let h="",u="",m="movie",f=[];l("td:contains('Movie Information')").parent().nextAll("tr").each((t,e)=>{const i=l(e).find("td");if(2===i.length){const t=i.eq(0).text().trim(),e=i.eq(1).text().trim();f.push(`${t}: ${e}`),t.toLowerCase().includes("plot")&&(h=e),t.toLowerCase().includes("imdb")&&(u=e)}}),h||(h=l("p:contains('plot')").text().trim());const g=[];return l('a[href*="download.php?file="], a[href*="dwload.php?file="]').each((t,e)=>{var i;const n=(null===(i=l(e).attr("href"))||void 0===i?void 0:i.replace("dwload.php","download.php"))||"",o=l(e).text().trim();n&&/\d+p/i.test(o)&&g.push({title:o,directLinks:[{title:"Movie",link:a+n}]})}),l("img[src*='/images/play.png']").each((t,e)=>{const i=l(e).siblings("a").attr("href"),n=l(e).siblings("a").text().trim();i&&n&&g.push({title:n,episodesLink:a+i})}),{title:d,synopsis:h,image:c,imdbId:u,tags:p,type:m,linkList:g}}catch(t){return{title:"",synopsis:"",image:"",imdbId:"",type:"movie",linkList:[]}}})};exports.getMeta=getMeta; \ No newline at end of file diff --git a/dist/moviezwap/posts.js b/dist/moviezwap/posts.js index b696579..791a6ad 100644 --- a/dist/moviezwap/posts.js +++ b/dist/moviezwap/posts.js @@ -1,57 +1 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getSearchPosts = exports.getPosts = void 0; -const getPosts = function (_a) { - return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) { - const { getBaseUrl, cheerio } = providerContext; - const baseUrl = yield getBaseUrl("moviezwap"); - const url = `${baseUrl}${filter}`; - return posts({ url, signal, cheerio }); - }); -}; -exports.getPosts = getPosts; -const getSearchPosts = function (_a) { - return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) { - const { getBaseUrl, cheerio } = providerContext; - const baseUrl = yield getBaseUrl("moviezwap"); - const url = `${baseUrl}/search.php?q=${encodeURIComponent(searchQuery)}`; - return posts({ url, signal, cheerio }); - }); -}; -exports.getSearchPosts = getSearchPosts; -function posts(_a) { - return __awaiter(this, arguments, void 0, function* ({ url, signal, cheerio, }) { - try { - const res = yield fetch(url, { signal }); - const data = yield res.text(); - const $ = cheerio.load(data); - const catalog = []; - $('a[href^="/movie/"]').each((i, el) => { - const title = $(el).text().trim(); - const link = $(el).attr("href"); - const image = ""; - if (title && link) { - catalog.push({ - title: title, - link: link, - image: image, - }); - } - }); - return catalog; - } - catch (err) { - console.error("moviezwapGetPosts error ", err); - return []; - } - }); -} +"use strict";var __awaiter=this&&this.__awaiter||function(t,e,r,o){return new(r||(r=Promise))(function(n,i){function s(t){try{c(o.next(t))}catch(t){i(t)}}function a(t){try{c(o.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?n(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}c((o=o.apply(t,e||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSearchPosts=exports.getPosts=void 0;const getPosts=function(t){return __awaiter(this,arguments,void 0,function*({filter:t,page:e,signal:r,providerContext:o}){const{getBaseUrl:n,cheerio:i}=o;return posts({url:`${yield n("moviezwap")}${t}`,signal:r,cheerio:i})})};exports.getPosts=getPosts;const getSearchPosts=function(t){return __awaiter(this,arguments,void 0,function*({searchQuery:t,page:e,signal:r,providerContext:o}){const{getBaseUrl:n,cheerio:i}=o;return posts({url:`${yield n("moviezwap")}/search.php?q=${encodeURIComponent(t)}`,signal:r,cheerio:i})})};function posts(t){return __awaiter(this,arguments,void 0,function*({url:t,signal:e,cheerio:r}){try{const o=yield fetch(t,{signal:e}),n=yield o.text(),i=r.load(n),s=[];return i('a[href^="/movie/"]').each((t,e)=>{const r=i(e).text().trim(),o=i(e).attr("href");r&&o&&s.push({title:r,link:o,image:""})}),s}catch(t){return[]}})}exports.getSearchPosts=getSearchPosts; \ No newline at end of file diff --git a/dist/moviezwap/stream.js b/dist/moviezwap/stream.js index a71a814..4b283e2 100644 --- a/dist/moviezwap/stream.js +++ b/dist/moviezwap/stream.js @@ -1,35 +1 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getStream = getStream; -function getStream(_a) { - return __awaiter(this, arguments, void 0, function* ({ link, signal, providerContext, }) { - const { axios, cheerio, commonHeaders: headers } = providerContext; - const res = yield axios.get(link, { headers, signal }); - const html = res.data; - const $ = cheerio.load(html); - const Streams = []; - // Find the actual .mp4 download link - let downloadLink = null; - $('a:contains("Fast Download Server")').each((i, el) => { - const href = $(el).attr("href"); - if (href && href.toLocaleLowerCase().includes(".mp4")) { - Streams.push({ - link: href, - type: "mp4", - server: "Fast Download", - headers: headers, - }); - } - }); - return Streams; - }); -} +"use strict";var __awaiter=this&&this.__awaiter||function(e,t,n,a){return new(n||(n=Promise))(function(r,o){function i(e){try{c(a.next(e))}catch(e){o(e)}}function s(e){try{c(a.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,s)}c((a=a.apply(e,t||[])).next())})};function getStream(e){return __awaiter(this,arguments,void 0,function*({link:e,signal:t,providerContext:n}){const{axios:a,cheerio:r,commonHeaders:o}=n,i=(yield a.get(e,{headers:o,signal:t})).data,s=r.load(i),c=[];return s('a:contains("Fast Download Server")').each((e,t)=>{const n=s(t).attr("href");n&&n.toLocaleLowerCase().includes(".mp4")&&c.push({link:n,type:"mp4",server:"Fast Download",headers:o})}),c})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=getStream; \ No newline at end of file diff --git a/dist/multi/catalog.js b/dist/multi/catalog.js index c8a00cd..7d7016c 100644 --- a/dist/multi/catalog.js +++ b/dist/multi/catalog.js @@ -1,79 +1 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.genres = exports.catalog = void 0; -exports.catalog = [ - { - title: "Trending", - filter: "/trending/", - }, - { - title: "Netflix", - filter: "/genre/netflix/", - }, - { - title: "Amazon Prime", - filter: "/genre/amazon-prime/", - }, - { - title: "Disney Hotstar", - filter: "/genre/disney-hotstar/", - }, -]; -exports.genres = [ - { - title: "Action", - filter: "/genre/action/", - }, - { - title: "Adventure", - filter: "/genre/adventure/", - }, - { - title: "Animation", - filter: "/genre/animation/", - }, - { - title: "Comedy", - filter: "/genre/comedy/", - }, - { - title: "Crime", - filter: "/genre/crime/", - }, - { - title: "Drama", - filter: "/genre/drama/", - }, - { - title: "Family", - filter: "/genre/family/", - }, - { - title: "Fantasy", - filter: "/genre/fantasy/", - }, - { - title: "History", - filter: "/genre/history/", - }, - { - title: "Horror", - filter: "/genre/horror/", - }, - { - title: "Mystery", - filter: "/genre/mystery/", - }, - { - title: "Romance", - filter: "/genre/romance/", - }, - { - title: "Science Fiction", - filter: "/genre/science-fiction/", - }, - { - title: "Thriller", - filter: "/genre/thriller/", - }, -]; +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Trending",filter:"/trending/"},{title:"Netflix",filter:"/genre/netflix/"},{title:"Amazon Prime",filter:"/genre/amazon-prime/"},{title:"Disney Hotstar",filter:"/genre/disney-hotstar/"}],exports.genres=[{title:"Action",filter:"/genre/action/"},{title:"Adventure",filter:"/genre/adventure/"},{title:"Animation",filter:"/genre/animation/"},{title:"Comedy",filter:"/genre/comedy/"},{title:"Crime",filter:"/genre/crime/"},{title:"Drama",filter:"/genre/drama/"},{title:"Family",filter:"/genre/family/"},{title:"Fantasy",filter:"/genre/fantasy/"},{title:"History",filter:"/genre/history/"},{title:"Horror",filter:"/genre/horror/"},{title:"Mystery",filter:"/genre/mystery/"},{title:"Romance",filter:"/genre/romance/"},{title:"Science Fiction",filter:"/genre/science-fiction/"},{title:"Thriller",filter:"/genre/thriller/"}]; \ No newline at end of file diff --git a/dist/multi/meta.js b/dist/multi/meta.js index 1192299..bd161ad 100644 --- a/dist/multi/meta.js +++ b/dist/multi/meta.js @@ -1,87 +1 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getMeta = void 0; -const getMeta = function (_a) { - return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) { - try { - const { axios, cheerio } = providerContext; - const url = link; - const res = yield axios.get(url); - const data = res.data; - const $ = cheerio.load(data); - const type = url.includes("tvshows") ? "series" : "movie"; - const imdbId = ""; - const title = url.split("/")[4].replace(/-/g, " "); - const image = $(".g-item").find("a").attr("href") || ""; - const synopsis = $(".wp-content").find("p").text() || ""; - // Links - const links = []; - if (type === "series") { - $("#seasons") - .children() - .map((i, element) => { - const title = $(element) - .find(".title") - .children() - .remove() - .end() - .text(); - let episodesList = []; - $(element) - .find(".episodios") - .children() - .map((i, element) => { - const title = "Episode" + - $(element).find(".numerando").text().trim().split("-")[1]; - const link = $(element).find("a").attr("href"); - if (title && link) { - episodesList.push({ title, link }); - } - }); - if (title && episodesList.length > 0) { - links.push({ - title, - directLinks: episodesList, - }); - } - }); - } - else { - links.push({ - title: title, - directLinks: [{ title: title, link: url.slice(0, -1), type: "movie" }], - }); - } - // console.log('multi meta', links); - return { - title, - synopsis, - image, - imdbId, - type, - linkList: links, - }; - } - catch (err) { - console.error(err); - return { - title: "", - synopsis: "", - image: "", - imdbId: "", - type: "movie", - linkList: [], - }; - } - }); -}; -exports.getMeta = getMeta; +"use strict";var __awaiter=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))(function(s,r){function o(t){try{c(n.next(t))}catch(t){r(t)}}function a(t){try{c(n.throw(t))}catch(t){r(t)}}function c(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}c((n=n.apply(t,e||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMeta=void 0;const getMeta=function(t){return __awaiter(this,arguments,void 0,function*({link:t,providerContext:e}){try{const{axios:i,cheerio:n}=e,s=t,r=(yield i.get(s)).data,o=n.load(r),a=s.includes("tvshows")?"series":"movie",c="",d=s.split("/")[4].replace(/-/g," "),l=o(".g-item").find("a").attr("href")||"",p=o(".wp-content").find("p").text()||"",u=[];return"series"===a?o("#seasons").children().map((t,e)=>{const i=o(e).find(".title").children().remove().end().text();let n=[];o(e).find(".episodios").children().map((t,e)=>{const i="Episode"+o(e).find(".numerando").text().trim().split("-")[1],s=o(e).find("a").attr("href");i&&s&&n.push({title:i,link:s})}),i&&n.length>0&&u.push({title:i,directLinks:n})}):u.push({title:d,directLinks:[{title:d,link:s.slice(0,-1),type:"movie"}]}),{title:d,synopsis:p,image:l,imdbId:c,type:a,linkList:u}}catch(t){return{title:"",synopsis:"",image:"",imdbId:"",type:"movie",linkList:[]}}})};exports.getMeta=getMeta; \ No newline at end of file diff --git a/dist/multi/posts.js b/dist/multi/posts.js index 1aa8c61..e81a766 100644 --- a/dist/multi/posts.js +++ b/dist/multi/posts.js @@ -1,60 +1 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getSearchPosts = exports.getPosts = void 0; -const getPosts = function (_a) { - return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) { - const { getBaseUrl, cheerio } = providerContext; - const baseUrl = yield getBaseUrl("multi"); - const url = `${baseUrl + filter}page/${page}/`; - return posts({ url, signal, cheerio }); - }); -}; -exports.getPosts = getPosts; -const getSearchPosts = function (_a) { - return __awaiter(this, arguments, void 0, function* ({ searchQuery, signal, providerContext, }) { - const { getBaseUrl, cheerio } = providerContext; - const baseUrl = yield getBaseUrl("multi"); - const url = `${baseUrl}/?s=${searchQuery}`; - return posts({ url, signal, cheerio }); - }); -}; -exports.getSearchPosts = getSearchPosts; -function posts(_a) { - return __awaiter(this, arguments, void 0, function* ({ url, signal, cheerio, }) { - try { - const res = yield fetch(url, { signal }); - const data = yield res.text(); - const $ = cheerio.load(data); - const catalog = []; - $(".items.full") - .children() - .map((i, element) => { - const title = $(element).find(".poster").find("img").attr("alt"); - const link = $(element).find(".poster").find("a").attr("href"); - const image = $(element).find(".poster").find("img").attr("data-src") || - $(element).find(".poster").find("img").attr("src"); - if (title && link && image) { - catalog.push({ - title: title, - link: link, - image: image, - }); - } - }); - return catalog; - } - catch (err) { - console.error("multiGetPosts error ", err); - return []; - } - }); -} +"use strict";var __awaiter=this&&this.__awaiter||function(t,e,r,i){return new(r||(r=Promise))(function(n,s){function o(t){try{c(i.next(t))}catch(t){s(t)}}function a(t){try{c(i.throw(t))}catch(t){s(t)}}function c(t){var e;t.done?n(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(o,a)}c((i=i.apply(t,e||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSearchPosts=exports.getPosts=void 0;const getPosts=function(t){return __awaiter(this,arguments,void 0,function*({filter:t,page:e,signal:r,providerContext:i}){const{getBaseUrl:n,cheerio:s}=i;return posts({url:`${(yield n("multi"))+t}page/${e}/`,signal:r,cheerio:s})})};exports.getPosts=getPosts;const getSearchPosts=function(t){return __awaiter(this,arguments,void 0,function*({searchQuery:t,signal:e,providerContext:r}){const{getBaseUrl:i,cheerio:n}=r;return posts({url:`${yield i("multi")}/?s=${t}`,signal:e,cheerio:n})})};function posts(t){return __awaiter(this,arguments,void 0,function*({url:t,signal:e,cheerio:r}){try{const i=yield fetch(t,{signal:e}),n=yield i.text(),s=r.load(n),o=[];return s(".items.full").children().map((t,e)=>{const r=s(e).find(".poster").find("img").attr("alt"),i=s(e).find(".poster").find("a").attr("href"),n=s(e).find(".poster").find("img").attr("data-src")||s(e).find(".poster").find("img").attr("src");r&&i&&n&&o.push({title:r,link:i,image:n})}),o}catch(t){return[]}})}exports.getSearchPosts=getSearchPosts; \ No newline at end of file diff --git a/dist/multi/stream.js b/dist/multi/stream.js index 7ba51e6..7599e9b 100644 --- a/dist/multi/stream.js +++ b/dist/multi/stream.js @@ -1,139 +1 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getStream = void 0; -const getStream = function (_a) { - return __awaiter(this, arguments, void 0, function* ({ link: url, providerContext, }) { - var _b, _c, _d, _e, _f, _g, _h, _j, _k; - const { axios, cheerio } = providerContext; - const headers = { - "sec-ch-ua": '"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"', - "sec-ch-ua-mobile": "?0", - "sec-ch-ua-platform": '"Windows"', - Referer: "https://multimovies.online/", - "Sec-Fetch-User": "?1", - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0", - }; - try { - const res = yield axios.get(url, { headers }); - const html = res.data; - const $ = cheerio.load(html); - const streamLinks = []; - const postId = $("#player-option-1").attr("data-post"); - const nume = $("#player-option-1").attr("data-nume"); - const typeValue = $("#player-option-1").attr("data-type"); - const baseUrl = url.split("/").slice(0, 3).join("/"); - console.log("baseUrl", baseUrl); - const formData = new FormData(); - formData.append("action", "doo_player_ajax"); - formData.append("post", postId || ""); - formData.append("nume", nume || ""); - formData.append("type", typeValue || ""); - console.log("formData", formData); - const playerRes = yield fetch(`${baseUrl}/wp-admin/admin-ajax.php`, { - headers: headers, - body: formData, - method: "POST", - }); - const playerData = yield playerRes.json(); - console.log("playerData", playerData); - let ifameUrl = ((_c = (_b = playerData === null || playerData === void 0 ? void 0 : playerData.embed_url) === null || _b === void 0 ? void 0 : _b.match(/