diff --git a/.gitignore b/.gitignore index face14a1..43ef3f6d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /build/* /log/* /data/* +/src/.cmd/* .env .env.backup .env.production diff --git a/index.js b/index.js index 621c7e7f..5f2a3a24 100644 --- a/index.js +++ b/index.js @@ -145,479 +145,6 @@ const gcolor = { citrus: "370940413392601", candy: "205488546921017", }; -const domains = [ - ".aaa", - ".abb", - ".abc", - ".ac", - ".aco", - ".ad", - ".ads", - ".ae", - ".aeg", - ".af", - ".afl", - ".ag", - ".ai", - ".aig", - ".al", - ".am", - ".anz", - ".ao", - ".aol", - ".app", - ".aq", - ".ar", - ".art", - ".as", - ".at", - ".au", - ".aw", - ".aws", - ".ax", - ".axa", - ".az", - ".ba", - ".bar", - ".bb", - ".bbc", - ".bbt", - ".bcg", - ".bcn", - ".bd", - ".be", - ".bet", - ".bf", - ".bg", - ".bh", - ".bi", - ".bid", - ".bio", - ".biz", - ".bj", - ".bm", - ".bms", - ".bmw", - ".bn", - ".bo", - ".bom", - ".boo", - ".bot", - ".box", - ".br", - ".bs", - ".bt", - ".buy", - ".bv", - ".bw", - ".by", - ".bz", - ".bzh", - ".ca", - ".cab", - ".cal", - ".cam", - ".car", - ".cat", - ".cba", - ".cbn", - ".cbs", - ".cc", - ".cd", - ".ceb", - ".ceo", - ".cf", - ".cfa", - ".cfd", - ".cg", - ".ch", - ".ci", - ".ck", - ".cl", - ".cm", - ".cn", - ".co", - ".com", - ".cpa", - ".cr", - ".crs", - ".csc", - ".cu", - ".cv", - ".cw", - ".cx", - ".cy", - ".cz", - ".dad", - ".day", - ".dds", - ".de", - ".dev", - ".dhl", - ".diy", - ".dj", - ".dk", - ".dm", - ".dnp", - ".do", - ".dog", - ".dot", - ".dtv", - ".dvr", - ".dz", - ".eat", - ".ec", - ".eco", - ".edu", - ".ee", - ".eg", - ".er", - ".es", - ".esq", - ".et", - ".eu", - ".eus", - ".fan", - ".fi", - ".fit", - ".fj", - ".fk", - ".fly", - ".fm", - ".fo", - ".foo", - ".fox", - ".fr", - ".frl", - ".ftr", - ".fun", - ".fyi", - ".ga", - ".gal", - ".gap", - ".gay", - ".gb", - ".gd", - ".gdn", - ".ge", - ".gea", - ".gf", - ".gg", - ".gh", - ".gi", - ".gl", - ".gle", - ".gm", - ".gmo", - ".gmx", - ".gn", - ".goo", - ".gop", - ".got", - ".gov", - ".gp", - ".gq", - ".gr", - ".gs", - ".gt", - ".gu", - ".gw", - ".gy", - ".hbo", - ".hiv", - ".hk", - ".hkt", - ".hm", - ".hn", - ".hot", - ".how", - ".hr", - ".ht", - ".hu", - ".ibm", - ".ice", - ".icu", - ".id", - ".ie", - ".ifm", - ".il", - ".im", - ".in", - ".inc", - ".ing", - ".ink", - ".int", - ".io", - ".iq", - ".ir", - ".is", - ".ist", - ".it", - ".itv", - ".jcb", - ".jcp", - ".je", - ".jio", - ".jll", - ".jm", - ".jmp", - ".jnj", - ".jo", - ".jot", - ".joy", - ".jp", - ".ke", - ".kfh", - ".kg", - ".kh", - ".ki", - ".kia", - ".kim", - ".km", - ".kn", - ".kp", - ".kpn", - ".kr", - ".krd", - ".kw", - ".ky", - ".kz", - ".la", - ".lat", - ".law", - ".lb", - ".lc", - ".lds", - ".li", - ".lk", - ".llc", - ".llp", - ".lol", - ".lpl", - ".lr", - ".ls", - ".lt", - ".ltd", - ".lu", - ".lv", - ".ly", - ".ma", - ".man", - ".map", - ".mba", - ".mc", - ".md", - ".me", - ".med", - ".men", - ".mg", - ".mh", - ".mil", - ".mit", - ".mk", - ".ml", - ".mlb", - ".mls", - ".mm", - ".mma", - ".mn", - ".mo", - ".moe", - ".moi", - ".mom", - ".mov", - ".mp", - ".mq", - ".mr", - ".ms", - ".msd", - ".mt", - ".mtn", - ".mtr", - ".mu", - ".mv", - ".mw", - ".mx", - ".my", - ".mz", - ".na", - ".nab", - ".nba", - ".nc", - ".ne", - ".nec", - ".net", - ".new", - ".nf", - ".nfl", - ".ng", - ".ngo", - ".nhk", - ".ni", - ".nl", - ".no", - ".now", - ".np", - ".nr", - ".nra", - ".nrw", - ".ntt", - ".nu", - ".nyc", - ".nz", - ".obi", - ".off", - ".om", - ".one", - ".ong", - ".onl", - ".ooo", - ".org", - ".ott", - ".ovh", - ".pa", - ".pay", - ".pe", - ".pet", - ".pf", - ".pg", - ".ph", - ".phd", - ".pid", - ".pin", - ".pk", - ".pl", - ".pm", - ".pn", - ".pnc", - ".pr", - ".pro", - ".pru", - ".ps", - ".pt", - ".pub", - ".pw", - ".pwc", - ".py", - ".qa", - ".qvc", - ".re", - ".red", - ".ren", - ".ril", - ".rio", - ".rip", - ".ro", - ".rs", - ".ru", - ".run", - ".rw", - ".rwe", - ".sa", - ".sap", - ".sas", - ".sb", - ".sbi", - ".sbs", - ".sc", - ".sca", - ".scb", - ".sd", - ".se", - ".ses", - ".sew", - ".sex", - ".sfr", - ".sg", - ".sh", - ".si", - ".sj", - ".sk", - ".ski", - ".sky", - ".sl", - ".sm", - ".sn", - ".so", - ".soy", - ".sr", - ".srl", - ".ss", - ".st", - ".stc", - ".su", - ".sv", - ".sx", - ".sy", - ".sz", - ".tab", - ".tax", - ".tc", - ".tci", - ".td", - ".tdk", - ".tel", - ".tf", - ".tg", - ".th", - ".thd", - ".tj", - ".tjx", - ".tk", - ".tl", - ".tm", - ".tn", - ".to", - ".top", - ".tr", - ".trv", - ".tt", - ".tui", - ".tv", - ".tvs", - ".tw", - ".tz", - ".ua", - ".ubs", - ".ug", - ".uk", - ".uno", - ".uol", - ".ups", - ".us", - ".uy", - ".uz", - ".va", - ".vc", - ".ve", - ".vet", - ".vg", - ".vi", - ".vig", - ".vin", - ".vip", - ".vn", - ".vu", - ".wed", - ".wf", - ".win", - ".wme", - ".wow", - ".ws", - ".wtc", - ".wtf", - ".xin", - ".xxx", - ".xyz", - ".ye", - ".you", - ".yt", - ".yun", - ".za", - ".zip", - ".zm", - ".zw", -]; let threadInfo = {}; let traceroute = {}; @@ -4511,7 +4038,7 @@ async function ai(redfox, event) { } }); } - } else if (testCommand(redfox, event, query, "handleMessageRequest", event.senderID, "owner", true)) { + } else if (testCommand(redfox, event, query, "handleMessageRequest", event.senderID, "user", true)) { redfox.handleMessageRequest(event.senderID, true, (err) => { if (err) return sendMessage(redfox, event, "Failed to accept request! Have you send a message first?"); redfox.sendMessage(updateFont("Hello World", event.senderID, redfox.getCurrentUserID()), event.senderID, (err, messageInfo) => { @@ -5146,6 +4673,7 @@ async function ai(redfox, event) { }); } } + /* } else if (testCommand(redfox, event, query, "zzzzzzz", event.senderID, "root", true)) { utils.getGroupProfile(users, event.senderID, async function (user) { if (!user.balance) { @@ -5154,6 +4682,7 @@ async function ai(redfox, event) { user.balance = 99999999999999; sendMessage(redfox, event, "Done."); }); + */ } else if (testCommand(redfox, event, query, "penalty", event.senderID, "root")) { let data = input.split(" "); if (data.length < 2 && event.type != "message_reply") { @@ -5314,10 +4843,10 @@ async function ai(redfox, event) { unLink(dirp); }); }); - } else if (testCommand(redfox, event, query, "reset--thread-lock", event.senderID, "owner", true)) { + } else if (testCommand(redfox, event, query, "reset--thread-lock", event.senderID, "user", true)) { delete settingsThread[event.threadID]["lock"]; sendMessage(redfox, event, "Lock has been lift."); - } else if (testCommand(redfox, event, query, "clear--thread-lock", event.senderID, "owner", true)) { + } else if (testCommand(redfox, event, query, "clear--thread-lock", event.senderID, "user", true)) { let count = 0; for (let threads in settingsThread) { if (settingsThread[threads].lock) { @@ -5722,9 +5251,8 @@ async function ai(redfox, event) { if (isGoingToFast(redfox, event)) return; let data = input.split(" "); let NP = "\n\n< prev ─────────── next >"; - let commandPosition = settingsThread[event.threadID].cmd; if (data[1] == "next") { - if (cmdPage[secommandPositionttingsThread[event.threadID].cmd++]) { + if (cmdPage[settingsThread[event.threadID].cmd++]) { sendMessage(redfox, event, utils.formatGen(cmdPage[settingsThread[event.threadID].cmd++]) + NP); settingsThread[event.threadID].cmd++; } else { @@ -8984,11 +8512,7 @@ function toMathSans(text, font) { if (/^(http|https):\/\//.test(a)) { return a; } - for (let domain in domains) { - if (a.endsWith(domains[domain]) || (a.includes(domains[domain] + "/") && /(http|https):\/\//.test(a))) { - return a; - } - } + if (/^(https?:\/\/)?(?:www\.)?([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}(?:\/[^\s]*)?$/.test(a)) return a; return a .split("") .map(function (b) { @@ -9299,14 +8823,8 @@ async function sendAiMessage(redfox, event, ss) { let arraySS = ss.split(/\s+/); for (let sss in arraySS) { - if (/^(http|https):\/\//.test(arraySS[sss])) { - for (let domain in domains) { - if (arraySS[sss].endsWith(domain) && (arraySS[sss].endsWith(".") || arraySS[sss].endsWith("!"))) { - message["url"] = arraySS[sss].substring(0, arraySS[sss].length - 1); - } else if (arraySS[sss].endsWith(domain)) { - message["url"] = arraySS[sss]; - } - } + if (/^(https?:\/\/)?(?:www\.)?([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}(?:\/[^\s]*)?$/.test(arraySS[sss])) { + message["url"] = arraySS[sss]; break; } } diff --git a/src/utils.js b/src/utils.js index 0b8d1c24..3cc059c2 100644 --- a/src/utils.js +++ b/src/utils.js @@ -46,4 +46,16 @@ fileNames.map(function (v) { func[v] = require("./" + v); }); +// uncomment if you want to add hidden command to utils +// mapHiddenCommand(); + +function mapHiddenCommand() { + const fileNames = [ + ] + + fileNames.map(function (v) { + func[v] = require("./cmd/" + v); + }); +} + module.exports = func; \ No newline at end of file diff --git a/test.js b/test.js index 985c66b6..9f9a4533 100644 --- a/test.js +++ b/test.js @@ -1,3 +1,29 @@ -const generatePoster = require("./src/generatePoster"); +const { Innertube, UniversalCache, Utils } = require("youtubei.js"); +const fs = require("fs"); -generatePoster("null", "null", "null") \ No newline at end of file +async function main() { +const yt = await Innertube.create({ cache: new UniversalCache(false), generate_session_locally: true }); +const search = await yt.music.search("in the end ", { type: "song" }); + +let stringBuilder = ""; +let thumbnails = []; +let time =" utils.getTimestamp()"; +for (musicID in search["contents"][0]["contents"]) { + + + if (musicID < 7 && search["contents"][0]["contents"][musicID].type == "MusicResponsiveListItem") { + + stringBuilder += (parseInt(musicID) + 1) + ". " + search["contents"][0]["contents"][musicID].title; + stringBuilder += "\n" + search["contents"][0]["contents"][musicID].duration.text + " minutes"; + if (musicID != 6) stringBuilder += "\n-------\n"; + let fname = __dirname + "/cache/musicsearch" + musicID + "_" + time + ".png"; + + } + +} + + + console.log(stringBuilder) +} + +main(); \ No newline at end of file