distube 2.8.18 → 3.0.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +32 -98
  2. package/dist/DisTube.d.ts +522 -0
  3. package/dist/DisTube.d.ts.map +1 -0
  4. package/dist/DisTube.js +794 -0
  5. package/dist/DisTube.js.map +1 -0
  6. package/dist/constant.d.ts +130 -0
  7. package/dist/constant.d.ts.map +1 -0
  8. package/dist/constant.js +150 -0
  9. package/dist/constant.js.map +1 -0
  10. package/dist/core/DisTubeBase.d.ts +55 -0
  11. package/dist/core/DisTubeBase.d.ts.map +1 -0
  12. package/dist/core/DisTubeBase.js +76 -0
  13. package/dist/core/DisTubeBase.js.map +1 -0
  14. package/dist/core/DisTubeHandler.d.ts +84 -0
  15. package/dist/core/DisTubeHandler.d.ts.map +1 -0
  16. package/dist/core/DisTubeHandler.js +311 -0
  17. package/dist/core/DisTubeHandler.js.map +1 -0
  18. package/dist/core/DisTubeOptions.d.ts +26 -0
  19. package/dist/core/DisTubeOptions.d.ts.map +1 -0
  20. package/dist/core/DisTubeOptions.js +93 -0
  21. package/dist/core/DisTubeOptions.js.map +1 -0
  22. package/dist/core/DisTubeStream.d.ts +52 -0
  23. package/dist/core/DisTubeStream.d.ts.map +1 -0
  24. package/dist/core/DisTubeStream.js +109 -0
  25. package/dist/core/DisTubeStream.js.map +1 -0
  26. package/dist/core/index.d.ts +7 -0
  27. package/dist/core/index.d.ts.map +1 -0
  28. package/dist/core/index.js +19 -0
  29. package/dist/core/index.js.map +1 -0
  30. package/dist/core/manager/BaseManager.d.ts +18 -0
  31. package/dist/core/manager/BaseManager.d.ts.map +1 -0
  32. package/dist/core/manager/BaseManager.js +44 -0
  33. package/dist/core/manager/BaseManager.js.map +1 -0
  34. package/dist/core/manager/QueueManager.d.ts +60 -0
  35. package/dist/core/manager/QueueManager.d.ts.map +1 -0
  36. package/dist/core/manager/QueueManager.js +202 -0
  37. package/dist/core/manager/QueueManager.js.map +1 -0
  38. package/dist/core/manager/index.d.ts +3 -0
  39. package/dist/core/manager/index.d.ts.map +1 -0
  40. package/dist/core/manager/index.js +15 -0
  41. package/dist/core/manager/index.js.map +1 -0
  42. package/dist/core/voice/DJSAdapter.d.ts +4 -0
  43. package/dist/core/voice/DJSAdapter.d.ts.map +1 -0
  44. package/dist/core/voice/DJSAdapter.js +61 -0
  45. package/dist/core/voice/DJSAdapter.js.map +1 -0
  46. package/dist/core/voice/DisTubeVoice.d.ts +83 -0
  47. package/dist/core/voice/DisTubeVoice.d.ts.map +1 -0
  48. package/dist/core/voice/DisTubeVoice.js +236 -0
  49. package/dist/core/voice/DisTubeVoice.js.map +1 -0
  50. package/dist/core/voice/DisTubeVoiceManager.d.ts +41 -0
  51. package/dist/core/voice/DisTubeVoiceManager.d.ts.map +1 -0
  52. package/dist/core/voice/DisTubeVoiceManager.js +67 -0
  53. package/dist/core/voice/DisTubeVoiceManager.js.map +1 -0
  54. package/dist/core/voice/index.d.ts +4 -0
  55. package/dist/core/voice/index.d.ts.map +1 -0
  56. package/dist/core/voice/index.js +16 -0
  57. package/dist/core/voice/index.js.map +1 -0
  58. package/dist/index.d.ts +8 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +23 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/plugin/http.d.ts +8 -0
  63. package/dist/plugin/http.d.ts.map +1 -0
  64. package/dist/plugin/http.js +20 -0
  65. package/dist/plugin/http.js.map +1 -0
  66. package/dist/plugin/https.d.ts +14 -0
  67. package/dist/plugin/https.d.ts.map +1 -0
  68. package/dist/plugin/https.js +50 -0
  69. package/dist/plugin/https.js.map +1 -0
  70. package/dist/plugin/index.d.ts +4 -0
  71. package/dist/plugin/index.d.ts.map +1 -0
  72. package/dist/plugin/index.js +16 -0
  73. package/dist/plugin/index.js.map +1 -0
  74. package/dist/plugin/youtube-dl.d.ts +11 -0
  75. package/dist/plugin/youtube-dl.d.ts.map +1 -0
  76. package/dist/plugin/youtube-dl.js +75 -0
  77. package/dist/plugin/youtube-dl.js.map +1 -0
  78. package/dist/struct/CustomPlugin.d.ts +27 -0
  79. package/dist/struct/CustomPlugin.d.ts.map +1 -0
  80. package/dist/struct/CustomPlugin.js +35 -0
  81. package/dist/struct/CustomPlugin.js.map +1 -0
  82. package/dist/struct/DisTubeError.d.ts +54 -0
  83. package/dist/struct/DisTubeError.d.ts.map +1 -0
  84. package/dist/struct/DisTubeError.js +72 -0
  85. package/dist/struct/DisTubeError.js.map +1 -0
  86. package/dist/struct/ExtractorPlugin.d.ts +29 -0
  87. package/dist/struct/ExtractorPlugin.d.ts.map +1 -0
  88. package/dist/struct/ExtractorPlugin.js +32 -0
  89. package/dist/struct/ExtractorPlugin.js.map +1 -0
  90. package/dist/struct/Playlist.d.ts +42 -0
  91. package/dist/struct/Playlist.d.ts.map +1 -0
  92. package/dist/struct/Playlist.js +104 -0
  93. package/dist/struct/Playlist.js.map +1 -0
  94. package/dist/struct/Plugin.d.ts +82 -0
  95. package/dist/struct/Plugin.d.ts.map +1 -0
  96. package/dist/struct/Plugin.js +108 -0
  97. package/dist/struct/Plugin.js.map +1 -0
  98. package/dist/struct/Queue.d.ts +217 -0
  99. package/dist/struct/Queue.d.ts.map +1 -0
  100. package/dist/struct/Queue.js +480 -0
  101. package/dist/struct/Queue.js.map +1 -0
  102. package/dist/struct/SearchResult.d.ts +28 -0
  103. package/dist/struct/SearchResult.d.ts.map +1 -0
  104. package/dist/struct/SearchResult.js +79 -0
  105. package/dist/struct/SearchResult.js.map +1 -0
  106. package/dist/struct/Song.d.ts +68 -0
  107. package/dist/struct/Song.d.ts.map +1 -0
  108. package/dist/struct/Song.js +229 -0
  109. package/dist/struct/Song.js.map +1 -0
  110. package/dist/struct/TaskQueue.d.ts +33 -0
  111. package/dist/struct/TaskQueue.d.ts.map +1 -0
  112. package/dist/struct/TaskQueue.js +58 -0
  113. package/dist/struct/TaskQueue.js.map +1 -0
  114. package/dist/struct/index.d.ts +10 -0
  115. package/dist/struct/index.d.ts.map +1 -0
  116. package/dist/struct/index.js +22 -0
  117. package/dist/struct/index.js.map +1 -0
  118. package/dist/tsconfig.tsbuildinfo +1 -0
  119. package/dist/type.d.ts +159 -0
  120. package/dist/type.d.ts.map +1 -0
  121. package/dist/type.js +3 -0
  122. package/dist/type.js.map +1 -0
  123. package/dist/util.d.ts +47 -0
  124. package/dist/util.d.ts.map +1 -0
  125. package/dist/util.js +205 -0
  126. package/dist/util.js.map +1 -0
  127. package/package.json +50 -24
  128. package/src/DisTube.js +0 -1121
  129. package/src/Playlist.js +0 -107
  130. package/src/Queue.js +0 -120
  131. package/src/SearchResult.js +0 -81
  132. package/src/Song.js +0 -135
  133. package/src/duration.js +0 -39
  134. package/typings/DisTube.d.ts +0 -635
  135. package/typings/Playlist.d.ts +0 -73
  136. package/typings/Queue.d.ts +0 -106
  137. package/typings/SearchResult.d.ts +0 -59
  138. package/typings/Song.d.ts +0 -104
  139. package/typings/duration.d.ts +0 -2
package/README.md CHANGED
@@ -3,28 +3,32 @@
3
3
  <a href="https://nodei.co/npm/distube/"><img src="https://nodei.co/npm/distube.png?downloads=true&downloadRank=true&stars=true"></a>
4
4
  </p>
5
5
  <p>
6
- <img alt="npm" src="https://img.shields.io/npm/dt/distube">
7
- <img alt="Depfu" src="https://img.shields.io/depfu/skick1234/DisTube">
8
- <img alt="Codacy Grade" src="https://img.shields.io/codacy/grade/79c8b7d7d026410f8e1b7e9d326167a7?label=Codacy%20Score">
9
- <img alt="CodeFactor Grade" src="https://img.shields.io/codefactor/grade/github/skick1234/DisTube?label=Codefactor%20Score">
6
+ <img alt="GitHub Workflow Status" src="https://img.shields.io/github/workflow/status/skick1234/DisTube/Testing?label=Tests&logo=github&style=flat-square">
7
+ <img alt="node-current" src="https://img.shields.io/node/v/distube?logo=node.js&logoColor=white&style=flat-square">
8
+ <img alt="npm peer dependency version" src="https://img.shields.io/npm/dependency-version/distube/peer/discord.js?label=discord.js&logo=discord&logoColor=white&style=flat-square">
9
+ <img alt="Depfu" src="https://img.shields.io/depfu/skick1234/DisTube?style=flat-square">
10
+ <img alt="Codecov branch" src="https://img.shields.io/codecov/c/github/skick1234/DisTube?logo=codecov&logoColor=white&style=flat-square&token=WWDYRRSEQW">
11
+ <br>
12
+ <img alt="npm" src="https://img.shields.io/npm/dt/distube?logo=npm&style=flat-square">
13
+ <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/skick1234/DisTube?logo=github&logoColor=white&style=flat-square">
14
+ <img alt="Discord" src="https://img.shields.io/discord/732254550689316914?logo=discord&logoColor=white&style=flat-square">
10
15
  </p>
11
16
  </div>
12
17
 
13
18
  # DisTube
14
19
 
15
- A Discord.js v12 module to simplify your music commands and play songs with audio filters on Discord without any API key.
20
+ A Discord.js module to simplify your music commands and play songs with audio filters on Discord without any API key.
16
21
 
17
- [DisTube Support Server](https://discord.gg/feaDd9h) - [Frequently Asked Questions](https://github.com/skick1234/DisTube/wiki/Frequently-Asked-Questions)
22
+ [DisTube Support Server](https://discord.gg/feaDd9h) - [Frequently Asked Questions](https://discord.gg/feaDd9h)
18
23
 
19
24
  ## Features
20
25
 
21
- - Build on discord.js v12
22
- - Easily to use and customize
26
+ - Build on `@discordjs/voice`
27
+ - Easy to use and customize
23
28
  - Support YouTube, SoundCloud, Facebook, and [700+ more sites](https://ytdl-org.github.io/youtube-dl/supportedsites.html)
24
29
  - Audio filters (bassboost, nightcore, vaporwave,...)
25
- - Autoplay related YouTube songs
26
- - Prebuilt server queue
27
- - Multiple servers compatible
30
+ - Autoplay related songs
31
+ - Plugin system to support more sites ([Plugin List](https://distube.js.org/#/docs/DisTube/stable/plugin/list))
28
32
 
29
33
  ## Installation
30
34
 
@@ -33,10 +37,15 @@ npm install distube
33
37
  ```
34
38
 
35
39
  ### Requirement
36
- - [discord.js](https://discord.js.org) v12
37
- - [FFmpeg](https://www.ffmpeg.org/download.html) - `npm install ffmpeg-static`
38
- - [@discordjs/opus](https://github.com/discordjs/opus) - `npm install @discordjs/opus`
39
- - [python](https://www.python.org/) *(For [`youtube-dl`](http://ytdl-org.github.io/youtube-dl/) to support [700+ more sites](https://ytdl-org.github.io/youtube-dl/supportedsites.html).)*
40
+
41
+ - Node v12 or higher
42
+ - [git](https://git-scm.com/downloads) _(For installing forked dependencies)_
43
+ - [discord.js](https://discord.js.org) v12 or **v13 _(Recommended)_**
44
+ - [@discordjs/voice](https://github.com/discordjs/voice)
45
+ - [FFmpeg](https://www.ffmpeg.org/download.html)
46
+ - [@discordjs/opus](https://github.com/discordjs/opus)
47
+ - [sodium](https://www.npmjs.com/package/sodium) or [libsodium-wrappers](https://www.npmjs.com/package/libsodium-wrappers)
48
+ - [python](https://www.python.org/) _(Optional - For [`youtube-dl`](https://youtube-dl.org/) to support [700+ more sites](https://ytdl-org.github.io/youtube-dl/supportedsites.html).)_
40
49
 
41
50
  ## Documentation
42
51
 
@@ -44,88 +53,13 @@ Read DisTube's definitions, properties and events details in the [Documentation
44
53
 
45
54
  ## Example Bot
46
55
 
47
- - [DisTube-Bot](https://skick.xyz/DisTube) - A music bot with reaction controller, filters, DJ mode, user's custom playlist and voting.
48
- - [DisTube-Example](https://github.com/distubejs/example) - Example bot with simple command handler.
49
-
50
- ```javascript
51
-
52
- // DisTube example bot, definitions, properties and events details in the Documentation page.
53
- const Discord = require('discord.js'),
54
- DisTube = require('distube'),
55
- client = new Discord.Client(),
56
- config = {
57
- prefix: ".",
58
- token: process.env.TOKEN || "Your Discord Token"
59
- };
60
-
61
- // Create a new DisTube
62
- const distube = new DisTube(client, { searchSongs: true, emitNewSongOnly: true });
63
-
64
- client.on('ready', () => {
65
- console.log(`Logged in as ${client.user.tag}!`);
66
- });
67
-
68
- client.on("message", async (message) => {
69
- if (message.author.bot) return;
70
- if (!message.content.startsWith(config.prefix)) return;
71
- const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
72
- const command = args.shift();
73
-
74
- if (command == "play")
75
- distube.play(message, args.join(" "));
76
-
77
- if (["repeat", "loop"].includes(command))
78
- distube.setRepeatMode(message, parseInt(args[0]));
79
-
80
- if (command == "stop") {
81
- distube.stop(message);
82
- message.channel.send("Stopped the music!");
83
- }
84
-
85
- if (command == "skip")
86
- distube.skip(message);
87
-
88
- if (command == "queue") {
89
- let queue = distube.getQueue(message);
90
- message.channel.send('Current queue:\n' + queue.songs.map((song, id) =>
91
- `**${id + 1}**. ${song.name} - \`${song.formattedDuration}\``
92
- ).slice(0, 10).join("\n"));
93
- }
94
-
95
- if ([`3d`, `bassboost`, `echo`, `karaoke`, `nightcore`, `vaporwave`].includes(command)) {
96
- let filter = distube.setFilter(message, command);
97
- message.channel.send("Current queue filter: " + (filter || "Off"));
98
- }
99
- });
100
-
101
- // Queue status template
102
- const status = (queue) => `Volume: \`${queue.volume}%\` | Filter: \`${queue.filter || "Off"}\` | Loop: \`${queue.repeatMode ? queue.repeatMode == 2 ? "All Queue" : "This Song" : "Off"}\` | Autoplay: \`${queue.autoplay ? "On" : "Off"}\``;
56
+ - [DisTube Bot](https://skick.xyz/DisTube) - A music bot with reaction controller, filters, DJ mode, user's custom playlist and voting.
57
+ - [DisTube Example](https://github.com/distubejs/example) - Example bot with simple command handler.
58
+ - [DisTube Guide](https://distube.js.org/guide) - How to build a music bot from scratch.
103
59
 
104
- // DisTube event listeners, more in the documentation page
105
- distube
106
- .on("playSong", (message, queue, song) => message.channel.send(
107
- `Playing \`${song.name}\` - \`${song.formattedDuration}\`\nRequested by: ${song.user}\n${status(queue)}`
108
- ))
109
- .on("addSong", (message, queue, song) => message.channel.send(
110
- `Added ${song.name} - \`${song.formattedDuration}\` to the queue by ${song.user}`
111
- ))
112
- .on("playList", (message, queue, playlist, song) => message.channel.send(
113
- `Play \`${playlist.name}\` playlist (${playlist.songs.length} songs).\nRequested by: ${song.user}\nNow playing \`${song.name}\` - \`${song.formattedDuration}\`\n${status(queue)}`
114
- ))
115
- .on("addList", (message, queue, playlist) => message.channel.send(
116
- `Added \`${playlist.name}\` playlist (${playlist.songs.length} songs) to queue\n${status(queue)}`
117
- ))
118
- // DisTubeOptions.searchSongs = true
119
- .on("searchResult", (message, result) => {
120
- let i = 0;
121
- message.channel.send(`**Choose an option from below**\n${result.map(song => `**${++i}**. ${song.name} - \`${song.formattedDuration}\``).join("\n")}\n*Enter anything else or wait 60 seconds to cancel*`);
122
- })
123
- // DisTubeOptions.searchSongs = true
124
- .on("searchCancel", (message) => message.channel.send(`Searching canceled`))
125
- .on("error", (message, e) => {
126
- console.error(e)
127
- message.channel.send("An error encountered: " + e);
128
- });
60
+ ## Dependencies
129
61
 
130
- client.login(config.token);
131
- ```
62
+ - [node-ytdl-core](https://github.com/fent/node-ytdl-core): YouTube scraper ([DisTube Fork](https://github.com/distubejs/node-ytdl-core))
63
+ - [node-ytsr](https://github.com/TimeForANinja/node-ytsr): YouTube search scraper ([DisTube Fork](https://github.com/distubejs/ytsr))
64
+ - [node-ytpl](https://github.com/TimeForANinja/node-ytpl): YouTube playlist resolver ([DisTube Fork](https://github.com/distubejs/ytpl))
65
+ - [youtube-dl-exec](https://github.com/microlinkhq/youtube-dl-exec): [`youtube-dl`](https://youtube-dl.org/) wrapper