mirror of
https://github.com/sussy-code/smov.git
synced 2024-12-20 14:37:43 +01:00
Delete gdriveplayer.js
This commit is contained in:
parent
6b7e9b2d0a
commit
76f1207358
1 changed files with 0 additions and 80 deletions
|
@ -1,80 +0,0 @@
|
|||
// THIS SCRAPER CURRENTLY WORKS AND IS IN USE
|
||||
import CryptoJS from "crypto-js";
|
||||
import { unpack } from "unpacker";
|
||||
|
||||
const BASE_URL = `${process.env.REACT_APP_CORS_PROXY_URL}https://database.gdriveplayer.us`;
|
||||
const API_URL = `${process.env.REACT_APP_CORS_PROXY_URL}https://api.gdriveplayer.us`;
|
||||
|
||||
const format = {
|
||||
stringify: (cipher) => {
|
||||
const ct = cipher.ciphertext.toString(CryptoJS.enc.Base64);
|
||||
const iv = cipher.iv.toString() || "";
|
||||
const salt = cipher.salt.toString() || "";
|
||||
return JSON.stringify({
|
||||
ct,
|
||||
iv,
|
||||
salt,
|
||||
});
|
||||
},
|
||||
parse: (jsonStr) => {
|
||||
const json = JSON.parse(jsonStr);
|
||||
const ciphertext = CryptoJS.enc.Base64.parse(json.ct);
|
||||
const iv = CryptoJS.enc.Hex.parse(json.iv) || "";
|
||||
const salt = CryptoJS.enc.Hex.parse(json.s) || "";
|
||||
|
||||
const cipher = CryptoJS.lib.CipherParams.create({
|
||||
ciphertext,
|
||||
iv,
|
||||
salt,
|
||||
});
|
||||
return cipher;
|
||||
}
|
||||
};
|
||||
|
||||
async function findContent(searchTerm, type) {
|
||||
if (type === 'show') return { options: [] }; // will be like this until rewrite
|
||||
try {
|
||||
const searchUrl = `${API_URL}/v1/movie/search?title=${searchTerm}`;
|
||||
const searchRes = await fetch(searchUrl).then((r) => r.json());
|
||||
const results = searchRes.map(movie => {
|
||||
return {
|
||||
type,
|
||||
title: movie.title,
|
||||
year: movie.year,
|
||||
slug: encodeURIComponent(`player.php?imdb=${movie.imdb}`),
|
||||
source: "gdriveplayer",
|
||||
}
|
||||
});
|
||||
|
||||
return { options: results };
|
||||
} catch {
|
||||
return { options: [] };
|
||||
}
|
||||
}
|
||||
|
||||
async function getStreamUrl(slug) {
|
||||
const url = `${BASE_URL}/${decodeURIComponent(slug)}`;
|
||||
const res = await fetch(url).then(d => d.text());
|
||||
const DOM = new DOMParser().parseFromString(res, "text/html");
|
||||
|
||||
const script = [...DOM.querySelectorAll("script")].find(s => s.textContent.includes("eval"));
|
||||
const unpacked = unpack(script.textContent);
|
||||
|
||||
const data = unpacked.split("var data=\\'")[1].split("\\'")[0].replace(/\\/g, "");
|
||||
const decryptedData = unpack(CryptoJS.AES.decrypt(data, "alsfheafsjklNIWORNiolNIOWNKLNXakjsfwnBdwjbwfkjbJjkopfjweopjASoiwnrflakefneiofrt", { format }).toString(CryptoJS.enc.Utf8));
|
||||
// eslint-disable-next-line
|
||||
const sources = JSON.parse(JSON.stringify(eval(decryptedData.split("sources:")[1].split(",image")[0].replace(/\\/g, "").replace(/document\.referrer/g, "\"\""))));
|
||||
const unmappedSubtitles = JSON.parse(DOM.querySelector("#subtitlez").textContent).filter(s => s.file.length !== 2);
|
||||
const subtitles = unmappedSubtitles.map(async (sub) => {
|
||||
const subtitleBlob = URL.createObjectURL(await fetch(`${process.env.REACT_APP_CORS_PROXY_URL}${sub.file}`).then(res => res.blob()));
|
||||
return {
|
||||
file: subtitleBlob,
|
||||
language: sub.label,
|
||||
}
|
||||
});
|
||||
|
||||
return { url: sources[sources.length - 1].file, subtitles };
|
||||
}
|
||||
|
||||
const gdriveplayer = { findContent, getStreamUrl }
|
||||
export default gdriveplayer;
|
Loading…
Reference in a new issue