From 3c8848f61565bffc4d02611e45417cf0aa1f024e Mon Sep 17 00:00:00 2001 From: Taken Date: Fri, 23 Aug 2024 20:21:46 +0200 Subject: [PATCH] Updated music system with new extractor and small tweaks --- package.json | 1 + src/components/autocomplete/music.ts | 2 +- src/enviroment.d.ts | 10 +++++ src/utils/Client.ts | 2 +- src/utils/Illegitimate.ts | 13 ++++-- yarn.lock | 66 +++++++++++++++++++++++++--- 6 files changed, 83 insertions(+), 11 deletions(-) create mode 100644 src/enviroment.d.ts diff --git a/package.json b/package.json index 9ad49de..adb1a36 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "chalk": "^5.3.0", "cron": "^3.1.7", "discord-player": "^6.7.1", + "discord-player-youtubei": "^1.2.6", "discord.js": "^14.15.3", "dotenv": "^16.4.5", "ioredis": "^5.4.1", diff --git a/src/components/autocomplete/music.ts b/src/components/autocomplete/music.ts index d971b07..7b38b2d 100644 --- a/src/components/autocomplete/music.ts +++ b/src/components/autocomplete/music.ts @@ -19,7 +19,7 @@ export default { const player = useMainPlayer() const { tracks } = await player.search(focusedOption.value, { - searchEngine: QueryType.AUTO_SEARCH + searchEngine: QueryType.YOUTUBE_SEARCH }) const results = tracks.map(track => ({ diff --git a/src/enviroment.d.ts b/src/enviroment.d.ts new file mode 100644 index 0000000..2a38ae2 --- /dev/null +++ b/src/enviroment.d.ts @@ -0,0 +1,10 @@ +declare global { + namespace NodeJS { + interface ProcessEnv { + NODE_ENV?: "dev" | "prod" + TYPESCRIPT?: "true" + } + } +} + +export { } \ No newline at end of file diff --git a/src/utils/Client.ts b/src/utils/Client.ts index beca26b..047eb7c 100644 --- a/src/utils/Client.ts +++ b/src/utils/Client.ts @@ -32,7 +32,7 @@ export class ExtendedClient extends Client { async start() { let token: string - if (process.env.NODE_ENV === "dev" && process.env.TYPESCRIPT) { + if (process.env.NODE_ENV === "dev" && process.env.TYPESCRIPT === "true") { console.log(color("Running in development mode. [ts-node]", "lavender")) token = env.dev.devtoken! autoDeployCommands("ts", this) diff --git a/src/utils/Illegitimate.ts b/src/utils/Illegitimate.ts index 8522257..af8c2ca 100644 --- a/src/utils/Illegitimate.ts +++ b/src/utils/Illegitimate.ts @@ -6,6 +6,7 @@ import env from "utils/Env.js" import loadAllEvents from "./Events/loadevents.js" import { Player } from "discord-player" import { Sequelize } from "sequelize" +import { YoutubeiExtractor } from "discord-player-youtubei" const client = new Client() const redis = new Redis(env.prod.redisURI!) @@ -32,7 +33,9 @@ class Illegitimate { async start() { await this.init() await loadAllEvents(client, ft) - await player.extractors.loadDefault() + // await player.extractors.loadDefault() + await player.extractors.loadDefault(ext => ext != "YouTubeExtractor") + await player.extractors.register(YoutubeiExtractor, {}) await client.start() await this.databases() } @@ -41,12 +44,14 @@ class Illegitimate { redis.on("ready", () => { console.log(color("Connected to Redis", "green")) }) + // if (process.env.NODE_ENV === "dev") { + // sequelize.sync().then(() => { + // console.log(color("Synced the db [dev]", "green")) + // }) + // } // connect(env.prod.mongoURI!, {}).then(() => { // console.log(color("Connected to MongoDB", "green")) // }) - sequelize.sync().then(() => { - console.log(color("Connected to Postgres", "green")) - }) } private async init() { diff --git a/yarn.lock b/yarn.lock index cfaf447..ba09b9b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -215,6 +215,13 @@ __metadata: languageName: node linkType: hard +"@fastify/busboy@npm:^2.0.0": + version: 2.1.1 + resolution: "@fastify/busboy@npm:2.1.1" + checksum: 10c0/6f8027a8cba7f8f7b736718b013f5a38c0476eea67034c94a0d3c375e2b114366ad4419e6a6fa7ffc2ef9c6d3e0435d76dd584a7a1cbac23962fda7650b579e3 + languageName: node + linkType: hard + "@gar/promisify@npm:^1.0.1": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -906,7 +913,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.11.0, acorn@npm:^8.12.0, acorn@npm:^8.4.1": +"acorn@npm:^8.11.0, acorn@npm:^8.12.0, acorn@npm:^8.4.1, acorn@npm:^8.8.0": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -1630,6 +1637,18 @@ __metadata: languageName: node linkType: hard +"discord-player-youtubei@npm:^1.2.6": + version: 1.2.6 + resolution: "discord-player-youtubei@npm:1.2.6" + dependencies: + tiny-typed-emitter: "npm:^2.1.0" + youtubei.js: "npm:^10.3.0" + bin: + discord-player-youtubei: bin/index.js + checksum: 10c0/a1f9ce2f0247ca161e377ad74640ddbbb6e1392d045b1f877956f6865de31785f3c2045b99b5a1c06c4f267c5febd9b4f90693045db19e9b19365ac3aea29563 + languageName: node + linkType: hard + "discord-player@npm:^6.7.1": version: 6.7.1 resolution: "discord-player@npm:6.7.1" @@ -2571,6 +2590,7 @@ __metadata: cron: "npm:^3.1.7" cross-env: "npm:^7.0.3" discord-player: "npm:^6.7.1" + discord-player-youtubei: "npm:^1.2.6" discord.js: "npm:^14.15.3" dotenv: "npm:^16.4.5" eslint: "npm:^9.9.0" @@ -2789,6 +2809,15 @@ __metadata: languageName: node linkType: hard +"jintr@npm:^2.1.1": + version: 2.1.1 + resolution: "jintr@npm:2.1.1" + dependencies: + acorn: "npm:^8.8.0" + checksum: 10c0/70db5429fb16e1eff2a4d7741885bf2ec1b751a82319911d8075745e0c6d5cc0d75cb59ecd70a38534accc60d0b23e9334631049517b40dc3a2bc6dbe99b2e2f + languageName: node + linkType: hard + "js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" @@ -4742,6 +4771,13 @@ __metadata: languageName: node linkType: hard +"tiny-typed-emitter@npm:^2.1.0": + version: 2.1.0 + resolution: "tiny-typed-emitter@npm:2.1.0" + checksum: 10c0/522bed4c579ee7ee16548540cb693a3d098b137496110f5a74bff970b54187e6b7343a359b703e33f77c5b4b90ec6cebc0d0ec3dbdf1bd418723c5c3ce36d8a2 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -4873,7 +4909,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.1.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2": +"tslib@npm:^2.1.0, tslib@npm:^2.5.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2": version: 2.6.3 resolution: "tslib@npm:2.6.3" checksum: 10c0/2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a @@ -4946,10 +4982,19 @@ __metadata: languageName: node linkType: hard +"undici@npm:^5.19.1": + version: 5.28.4 + resolution: "undici@npm:5.28.4" + dependencies: + "@fastify/busboy": "npm:^2.0.0" + checksum: 10c0/08d0f2596553aa0a54ca6e8e9c7f45aef7d042c60918564e3a142d449eda165a80196f6ef19ea2ef2e6446959e293095d8e40af1236f0d67223b06afac5ecad7 + languageName: node + linkType: hard + "undici@npm:^6.11.1, undici@npm:^6.15.0, undici@npm:^6.17.0": - version: 6.19.7 - resolution: "undici@npm:6.19.7" - checksum: 10c0/801d1e66d5bccdd3fcc9ecf1c95b83a593e4867b89e21ed725e35bd4d572b3d3ce1d7feab2a4f2046f65923de70bfafb69ac148c633d1ab30a948d6fec24475a + version: 6.19.8 + resolution: "undici@npm:6.19.8" + checksum: 10c0/07fd8520bce7e34ea29c07ef0de27b734183042cdb4e2f1262cd1fb9b755a6b04ff2471040395dfb1770fb7786069a97c5178bcf706b80a34075994f46feb37c languageName: node linkType: hard @@ -5257,3 +5302,14 @@ __metadata: checksum: 10c0/24d8071d3eb9f2559c3898e0097f145a1c5aa3c24439a5ae1b00644860092b2ec9d3b304236ebe2989b4d7bd033852632ede302ff6bf7cb914f026f3a2d912de languageName: node linkType: hard + +"youtubei.js@npm:^10.3.0": + version: 10.3.0 + resolution: "youtubei.js@npm:10.3.0" + dependencies: + jintr: "npm:^2.1.1" + tslib: "npm:^2.5.0" + undici: "npm:^5.19.1" + checksum: 10c0/7b635f7bf5e8837d1dd22b9009a168044a9fdf53725e35df2cfd09d83f203ed040223af3c10b516c2c6c330909d31407483195418ce883c564b1b52e3e3dd7b6 + languageName: node + linkType: hard