]> git.lizzy.rs Git - furrybot-discord.git/commitdiff
Add search feature
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 6 Mar 2022 19:05:04 +0000 (20:05 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 6 Mar 2022 19:05:04 +0000 (20:05 +0100)
music.js
package-lock.json
package.json

index c182a5e996032a00982cf5f033b4740488b7fdd7..50bba47eb30c53f75e28e27e8786fb5b218edab4 100644 (file)
--- a/music.js
+++ b/music.js
@@ -1,9 +1,18 @@
 const ytdl = require("ytdl-core")
 const voice = require("@discordjs/voice")
+const youtubeSearchApi = require("youtube-search-api")
 
 module.exports = {
        play: {
-               func: (msg, url) => {
+               func: async (msg, urlArr) => {
+                       let url = urlArr.join(" ")
+
+                       try {
+                               new URL(url)
+                       } catch {
+                               url = "https://youtube.com/watch?v=" + (await youtubeSearchApi.GetListByKeyword(url, false, 1)).items[0].id
+                       }
+
                        const channel = msg.member.voice.channel
 
                        if (! channel)
@@ -16,7 +25,7 @@ module.exports = {
                        })
                        const player = voice.createAudioPlayer()
 
-                       player.play(voice.createAudioResource(ytdl(url.join(" "), {filter: "audioonly"}), {inputType: voice.StreamType.Arbitrary}))
+                       player.play(voice.createAudioResource(ytdl(url, {filter: "audioonly"}), {inputType: voice.StreamType.Arbitrary}))
                        conn.subscribe(player)
                }
        }
index 4ade40c164f0b660937e8176dd70c958b0e51ec8..83c233d1647e8b6b26328620fb99e321fedd320b 100644 (file)
@@ -16,6 +16,7 @@
         "pseudo-random": "^0.6.0",
         "sha1": "^1.1.1",
         "sodium": "^3.0.2",
+        "youtube-search-api": "^1.1.0",
         "ytdl-core": "^4.11.0"
       }
     },
       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
       "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
     },
+    "node_modules/axios": {
+      "version": "0.21.4",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+      "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+      "dependencies": {
+        "follow-redirects": "^1.14.0"
+      }
+    },
     "node_modules/boolbase": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
       "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
     },
+    "node_modules/follow-redirects": {
+      "version": "1.14.9",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+      "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
+      "funding": [
+        {
+          "type": "individual",
+          "url": "https://github.com/sponsors/RubenVerborgh"
+        }
+      ],
+      "engines": {
+        "node": ">=4.0"
+      },
+      "peerDependenciesMeta": {
+        "debug": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/form-data": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
         }
       }
     },
+    "node_modules/youtube-search-api": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/youtube-search-api/-/youtube-search-api-1.1.0.tgz",
+      "integrity": "sha512-mzaCMzwJIPw1NaW+HanK9WnXcds5aWSA1zdp73gXeoUjkP19rVtjFmdZLvz0abHq/WhpbesNZRVRgJs+H/j8mA==",
+      "dependencies": {
+        "axios": "^0.21.0"
+      }
+    },
     "node_modules/ytdl-core": {
       "version": "4.11.0",
       "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.11.0.tgz",
       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
       "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
     },
+    "axios": {
+      "version": "0.21.4",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+      "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+      "requires": {
+        "follow-redirects": "^1.14.0"
+      }
+    },
     "boolbase": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
       "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
     },
+    "follow-redirects": {
+      "version": "1.14.9",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+      "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
+    },
     "form-data": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
       "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
       "requires": {}
     },
+    "youtube-search-api": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/youtube-search-api/-/youtube-search-api-1.1.0.tgz",
+      "integrity": "sha512-mzaCMzwJIPw1NaW+HanK9WnXcds5aWSA1zdp73gXeoUjkP19rVtjFmdZLvz0abHq/WhpbesNZRVRgJs+H/j8mA==",
+      "requires": {
+        "axios": "^0.21.0"
+      }
+    },
     "ytdl-core": {
       "version": "4.11.0",
       "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.11.0.tgz",
index ac7c3b87ab93f2e6296cba3f8b8a191e366ae07d..2835301f21dcfaa25a085cd5ac628495e58bd4f3 100644 (file)
@@ -24,6 +24,7 @@
     "pseudo-random": "^0.6.0",
     "sha1": "^1.1.1",
     "sodium": "^3.0.2",
+    "youtube-search-api": "^1.1.0",
     "ytdl-core": "^4.11.0"
   }
 }