diff --git a/src/libpoketube/libpoketube-fetcher.js b/src/libpoketube/libpoketube-fetcher.js index 171e13a4..566b8056 100644 --- a/src/libpoketube/libpoketube-fetcher.js +++ b/src/libpoketube/libpoketube-fetcher.js @@ -16,59 +16,41 @@ const fetch = require("node-fetch"); //2.5.x const { toJson } = require("xml2json"); -var youtube_url = `https://www.youtube.com/watch?v=`; -var dislike_api = `https://returnyoutubedislikeapi.com/votes?videoId=`; -var new_api_url = `https://tube-srv.ashley143.gay/api/player`; +const youtubeUrl = "https://www.youtube.com/watch?v="; +const dislikeApi = "https://p.poketube.fun/https://returnyoutubedislikeapi.com/votes?videoId="; +const newApiUrl = "https://tube-srv.ashley143.gay/api/player"; -module.exports = async function (video_id) { - function getJson(str) { - try { - return JSON.parse(str); - } catch { - return null; - } - } - - const headers = {}; - /* - * Parses and fetches an xml - */ - - async function parsexml(id) { - - - async function fetchxmlvideo() { - try { - const player = await fetch(`${new_api_url}?v=${id}`, headers); - var h = await player.text(); - var j = toJson(h); - return getJson(j); - } catch {} - } - - const a = await fetchxmlvideo(); - return a; - } - - async function ryd() { - try { - const engagement = await fetch(`https://p.poketube.fun/${dislike_api}${video_id}`).then((res) => - res.json() - ); - return engagement; - } catch {} - } - - const engagement = await ryd(); - - /* - * Returner object - */ - const returner = { - video: await parsexml(video_id), - engagement, - video_url_youtube: `${youtube_url}${video_id}`, - }; - - return returner; +const parseXml = async (videoId, headers) => { + const player = await fetch(`${newApiUrl}?v=${videoId}`, headers); + const xml = await player.text(); + const json = toJson(xml); + return getJson(json); }; + +const getJson = (str) => { + try { + return JSON.parse(str); + } catch { + return null; + } +}; + +const getEngagement = async (videoId) => { + const engagement = await fetch(`${dislikeApi}${videoId}`).then((res) => res.json()); + return engagement; +}; + +const getPokeTubeData = async (videoId) => { + const headers = {}; + const videoData = await parseXml(videoId, headers); + const engagement = await getEngagement(videoId); + + return { + video: videoData, + engagement, + videoUrlYoutube: `${youtubeUrl}${videoId}`, + }; +}; + +module.exports = getPokeTubeData + \ No newline at end of file