Advertisement
AboRoh

Untitled

Oct 23rd, 2019
817
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.11 KB | None | 0 0
  1. client.on('message', async msg => {
  2. if (msg.author.bot) return undefined;
  3. if (!msg.content.startsWith(prefix)) return undefined;
  4. const args = msg.content.split(' ');
  5. const searchString = args.slice(1).join(' ');
  6. const url = args[1] ? args[1] .replace(/<(.+)>/g, '$1') : '';
  7. const serverQueue = queue.get(msg.guild.id);
  8. let command = msg.content.toLowerCase().split(" ")[0];
  9. command = command.slice(prefix.length)
  10. if (command === `play`) {
  11. const voiceChannel = msg.member.voiceChannel;
  12. if (!voiceChannel) return msg.channel.send('يجب توآجد حضرتك بروم صوتي .');
  13. const permissions = voiceChannel.permissionsFor(msg.client.user);
  14. if (!permissions.has('CONNECT')) {
  15. return msg.channel.send('لا يتوآجد لدي صلاحية للتكلم بهذآ الروم');
  16. }
  17. if (!permissions.has('SPEAK')) {
  18. return msg.channel.send('لا يتوآجد لدي صلاحية للتكلم بهذآ الروم');
  19. }
  20.  
  21. if (!permissions.has('EMBED_LINKS')) {
  22. return msg.channel.sendMessage("**يجب توآفر برمشن `EMBED LINKS`لدي **rl")
  23. }
  24.  
  25. if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
  26. const playlist = await youtube.getPlaylist(url);
  27. const videos = await playlist.getVideos();
  28. for (const video of Object.values(videos)) {
  29. const video2 = await youtube.getVideoByID(video.id);
  30. await handleVideo(video2, msg, voiceChannel, true);
  31. }
  32. return msg.channel.send(` **${playlist.title}** تم الإضآفة إلى قأئمة التشغيل`);
  33. } else {
  34. try {
  35.  
  36. var video = await youtube.getVideo(url);
  37.  
  38. } catch (error) {
  39. try {
  40. var fast = {};
  41. var videos = await youtube.searchVideos(searchString, 10);
  42. let index = 0;
  43. const embed1 = new Discord.RichEmbed()
  44. .setDescription(`**الرجآء من حضرتك إختيآر رقم المقطع** :
  45. ${videos.map(video2 => `[**${++index}**] **${video2.title}**`).join('\n')}`)
  46. .setFooter(`${msg.guild.name}`)
  47. .setThumbnail('https://e.top4top.net/p_1001lsv3w1.png')
  48.  
  49. msg.channel.sendEmbed(embed1).then(message =>{
  50.  
  51. message.delete(15000)
  52.  
  53. });
  54. try {
  55. var response = await msg.channel.awaitMessages(msg2 => msg2.content > 0 && msg2.content < 11, {
  56. maxMatches: 1,
  57. time: 20000,
  58. errors: ['time']
  59. })
  60.  
  61. }catch(err) {
  62. console.error(err);
  63. return msg.channel.send('لم يتم إختيآر مقطع صوتي');
  64. }
  65. const videoIndex = parseInt(response.first().content);
  66. var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
  67. } catch (err) {
  68. console.error(err);
  69. return msg.channel.send(':x: لا يتوفر نتآئج بحث ');
  70. }
  71. }
  72.  
  73. return handleVideo(video, msg, voiceChannel);
  74. }
  75. } else if (command === `skip`) {
  76. if (!msg.member.voiceChannel) return msg.channel.send('أنت لست بروم صوتي .');
  77. if (!serverQueue) return msg.channel.send('لا يتوفر مقطع لتجآوزه');
  78. serverQueue.connection.dispatcher.end('تم تجآوز هذآ المقطع');
  79. return undefined;
  80. } else if (command === `stop`) {
  81. if (!msg.member.voiceChannel) return msg.channel.send('أنت لست بروم صوتي .');
  82. if (!serverQueue) return msg.channel.send('لا يتوفر مقطع لإيقآفه');
  83. serverQueue.songs = [];
  84. serverQueue.connection.dispatcher.end('تم إيقآف هذآ المقطع');
  85. return undefined;
  86. } else if (command === `vol`) {
  87. if (!msg.member.voiceChannel) return msg.channel.send('أنت لست بروم صوتي .');
  88. if (!serverQueue) return msg.channel.send('لا يوجد شيء شغآل.');
  89. if (!args[1]) return msg.channel.send(`:loud_sound: مستوى الصوت **${serverQueue.volume}**`);
  90. serverQueue.volume = args[1];
  91. serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 50);
  92. return msg.channel.send(`:speaker: تم تغير الصوت الي **${args[1]}**`);
  93. } else if (command === `np`) {
  94. if (!serverQueue) return msg.channel.send('لا يوجد شيء حالي ف العمل.');
  95. const embedNP = new Discord.RichEmbed()
  96. .setDescription(`:notes: الان يتم تشغيل : **${serverQueue.songs[0].title}**`)
  97. return msg.channel.sendEmbed(embedNP);
  98. } else if (command === `replay`) {
  99. if (!serverQueue) return msg.channel.send('لا يوجد شيء حالي ف العمل.');
  100. const embedNP = new Discord.RichEmbed()
  101. .setDescription(`سيتم اعاده تشغيل الفديو :**${serverQueue.songs[0].title}**`)
  102. msg.channel.send({embed: embedNP})
  103. return handleVideo(video, msg, msg.member.voiceChannel);
  104.  
  105. } else if (command === `queue`) {
  106. if (!serverQueue) return msg.channel.send('لا يوجد شيء حالي ف العمل.');
  107. let index = 0;
  108. const embedqu = new Discord.RichEmbed()
  109. .setDescription(`**Songs Queue**
  110. ${serverQueue.songs.map(song => `**${++index} -** ${song.title}`).join('\n')}
  111. **الان يتم تشغيل** ${serverQueue.songs[0].title}`)
  112. return msg.channel.sendEmbed(embedqu);
  113. } else if (command === `pause`) {
  114. if (serverQueue && serverQueue.playing) {
  115. serverQueue.playing = false;
  116. serverQueue.connection.dispatcher.pause();
  117. return msg.channel.send('تم إيقاف الموسيقى مؤقتا!');
  118. }
  119. return msg.channel.send('لا يوجد شيء حالي ف العمل.');
  120. } else if (command === "resume") {
  121. if (serverQueue && !serverQueue.playing) {
  122. serverQueue.playing = true;
  123. serverQueue.connection.dispatcher.resume();
  124. return msg.channel.send('استأنفت الموسيقى بالنسبة لك !');
  125. }
  126. return msg.channel.send('لا يوجد شيء حالي في العمل.');
  127. }
  128.  
  129. return undefined;
  130. async function handleVideo(video, msg, voiceChannel, playlist = false) {
  131. const serverQueue = queue.get(msg.guild.id);
  132. const song = {
  133. id: video.id,
  134. title: Util.escapeMarkdown(video.title),
  135. url: `https://www.youtube.com/watch?v=${video.id}`,
  136. time:`${video.duration.hours}:${video.duration.minutes}:${video.duration.seconds}`,
  137. eyad:`${video.thumbnails.high.url}`,
  138. best:`${video.channel.title}`,
  139. bees:`${video.raw.snippet.publishedAt}`,
  140. shahd:`${video.raw.kind}`,
  141. zg:`${video.raw.snippet.channelId}`,
  142. views:`${video.raw.views}`,
  143. like:`${video.raw.likeCount}`,
  144. dislike:`${video.raw.dislikeCount}`,
  145. hi:`${video.raw.id}`
  146. };
  147. if (!serverQueue) {
  148. const queueConstruct = {
  149. textChannel: msg.channel,
  150. voiceChannel: voiceChannel,
  151. connection: null,
  152. songs: [],
  153. volume: 5,
  154. playing: true
  155. };
  156. queue.set(msg.guild.id, queueConstruct);
  157. queueConstruct.songs.push(song);
  158. try {
  159. var connection = await voiceChannel.join();
  160. queueConstruct.connection = connection;
  161. play(msg.guild, queueConstruct.songs[0]);
  162. } catch (error) {
  163. console.error(`I could not join the voice channel: ${error}`);
  164. queue.delete(msg.guild.id);
  165. return msg.channel.send(`لا أستطيع دخول هذآ الروم ${error}`);
  166. }
  167. } else {
  168. serverQueue.songs.push(song);
  169. console.log(serverQueue.songs);
  170. if (playlist) return undefined;
  171. else return msg.channel.send(` **${song.title}** تم اضافه الاغنية الي القائمة!`);
  172. }
  173. return undefined;
  174. }
  175.  
  176. function play(guild, song) {
  177. const serverQueue = queue.get(guild.id);
  178.  
  179. if (!song) {
  180. serverQueue.voiceChannel.leave();
  181. queue.delete(guild.id);
  182. return;
  183. }
  184. console.log(serverQueue.songs);
  185. const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
  186. .on('end', reason => {
  187. if (reason === 'Stream is not generating quickly enough.') console.log('Song ended.');
  188. else console.log(reason);
  189. serverQueue.songs.shift();
  190. play(guild, serverQueue.songs[0]);
  191. })
  192. .on('error', error => console.error(error));
  193. dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
  194. fetchVideoInfo(`${song.hi}`, function (err, idk) {
  195. if (err) throw new Error(err);
  196. console.log( idk);
  197. const yyyy = {}
  198. if(!yyyy[msg.guild.id]) yyyy[msg.guild.id] = {
  199. like: `${ idk.likeCount}`,
  200. dislike: `${ idk.dislikeCount}`
  201. }
  202. serverQueue.textChannel.send({embed : new Discord.RichEmbed()
  203. .setTitle(`**${ idk.title}**`)
  204. .setURL( idk.url)
  205. .addField('Time The Video :' , `${song.time}`, true)
  206. .addField('Channel Name :' , `${song.best}`, true)
  207. .addField('Channel ID :' , `${song.zg}`, true)
  208. .addField('Video Created at :' , `${ idk.datePublished}`, true)
  209. .addField('Views :' , `${ idk.views}`, true)
  210. .addField('Like👍 :' , `${ idk.likeCount}`, true)
  211. .addField('dislike👎 :' , `${ idk.dislikeCount}`, true)
  212. .addField('comments :' , `${ idk.commentCount}`, true)
  213. .setImage(`${song.eyad}`)
  214. .setThumbnail('http://cdn.akhbaar24.com/430e061a-f89a-43c7-86d9-82fae5f7c495.jpg')
  215. .setColor('#ff0000')
  216. .setTimestamp()
  217. }).then(love => {
  218. love.react('👍').then(r=>{
  219. love.react('👎').then(r =>{
  220. love.react('🙌').then(r=> {
  221. let likee = (reaction, user) => reaction.emoji.name === '👍' && user.id === msg.author.id;
  222. let dislikee = (reaction, user) => reaction.emoji.name === '👎' && user.id === msg.author.id;
  223. let cnn = (reaction, user) => reaction.emoji.name === '🙌' && user.id === msg.author.id;
  224.  
  225. let ll = love.createReactionCollector(likee , {max:5});
  226. let dd = love.createReactionCollector(dislikee , {max:5});
  227. let cn = love.createReactionCollector(cnn , {max:5});
  228.  
  229. ll.on("collect", r => {
  230. yyyy[msg.guild.id].like++;
  231. love.edit({embed : new Discord.RichEmbed()
  232. .setTitle(`**${ idk.title}**`)
  233. .setURL( idk.url)
  234. .addField('Time The Video :' , `${song.time}`, true)
  235. .addField('Channel Name :' , `${song.best}`, true)
  236. .addField('Channel ID :' , `${song.zg}`, true)
  237. .addField('Video Created at :' , `${ idk.datePublished}`, true)
  238. .addField('Views :' , `${ idk.views}`, true)
  239. .addField('Like👍 :' , `${yyyy[msg.guild.id].like}`, true)
  240. .addField('dislike👎 :' , `${ idk.dislikeCount}`, true)
  241. .addField('comments :' , `${ idk.commentCount}`, true)
  242. .setImage(`${song.eyad}`)
  243. .setThumbnail('http://cdn.akhbaar24.com/430e061a-f89a-43c7-86d9-82fae5f7c495.jpg')
  244. .setColor('#ff0000')
  245. .setTimestamp()
  246. });
  247. })
  248.  
  249. dd.on("collect", r => {
  250. yyyy[msg.guild.id].dislike++;
  251. love.edit({embed : new Discord.RichEmbed()
  252. .setTitle(`**${ idk.title}**`)
  253. .setURL( idk.url)
  254. .addField('Time The Video :' , `${song.time}`, true)
  255. .addField('Channel Name :' , `${song.best}`, true)
  256. .addField('Channel ID :' , `${song.zg}`, true)
  257. .addField('Video Created at :' , `${ idk.datePublished}`, true)
  258. .addField('Views :' , `${ idk.views}`, true)
  259. .addField('Like👍 :' , `${ idk.likeCount}`, true)
  260. .addField('dislike👎 :' , `${yyyy[msg.guild.id].dislike}`, true)
  261. .addField('comments :' , `${ idk.commentCount}`, true)
  262. .setImage(`${song.eyad}`)
  263. .setThumbnail('http://cdn.akhbaar24.com/430e061a-f89a-43c7-86d9-82fae5f7c495.jpg')
  264. .setColor('#ff0000')
  265. .setTimestamp()
  266. });
  267. })
  268. cn.on("collect", r => {
  269. love.edit({embed : new Discord.RichEmbed()
  270. .setTitle(`**${ idk.title}**`)
  271. .setURL( idk.url)
  272. .addField('Time The Video :' , `${song.time}`, true)
  273. .addField('Channel Name :' , `${song.best}`, true)
  274. .addField('Channel ID :' , `${song.zg}`, true)
  275. .addField('Video Created at :' , `${ idk.datePublished}`, true)
  276. .addField('Views :' , `${ idk.views}`, true)
  277. .addField('Like👍 :' , `${ idk.likeCount}`, true)
  278. .addField('dislike👎 :' , `${ idk.dislikeCount}`, true)
  279. .addField('comments :' , `${ idk.commentCount}`, true)
  280. .setImage(`${song.eyad}`)
  281. .setThumbnail('http://cdn.akhbaar24.com/430e061a-f89a-43c7-86d9-82fae5f7c495.jpg')
  282. .setColor('#ff0000')
  283. .setTimestamp()
  284. });
  285. })
  286. })
  287. })
  288. })
  289. })
  290. })
  291. }
  292. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement