Revisions for ⁨radyo⁩

View the changes made to this paste.

public ⁨6⁩ ⁨files⁩ 2021-04-13 10:48:47 UTC

bot.js

@@ -0,0 +1,467 @@

+const Discord = require('discord.js');
+const client = new Discord.Client();
+const ayarlar = require('./ayarlar.json');
+const chalk = require('chalk');
+const fs = require('fs');
+const ms = require('ms');
+const moment = require('moment');
+const Jimp = require('jimp');
+const db = require('quick.db');
+const YouTube = require("simple-youtube-api");
+const ytdl = require("ytdl-core");
+const youtube = new YouTube("AIzaSyCkT_L10rO_NixDHNjoAixUu45TVt0ES-s");
+const queue = new Map();
+const { promisify } = require("util");
+require('./util/eventLoader')(client);
+
+
+var prefix = ayarlar.prefix;
+
+const log = message => {
+    console.log(`${message}`);
+};
+
+
+
+
+client.commands = new Discord.Collection();
+client.aliases = new Discord.Collection();
+fs.readdir('./komutlar/', (err, files) => {
+    if (err) console.error(err);
+    log(`${files.length} komut yüklenecek.`);
+    files.forEach(f => {
+        let props = require(`./komutlar/${f}`);
+        log(`Yüklenen komut: ${props.help.name}.`);
+        client.commands.set(props.help.name, props);
+        props.conf.aliases.forEach(alias => {
+            client.aliases.set(alias, props.help.name);
+        });
+    });
+});
+
+
+
+
+client.reload = command => {
+    return new Promise((resolve, reject) => {
+        try {
+            delete require.cache[require.resolve(`./komutlar/${command}`)];
+            let cmd = require(`./komutlar/${command}`);
+            client.commands.delete(command);
+            client.aliases.forEach((cmd, alias) => {
+                if (cmd === command) client.aliases.delete(alias);
+            });
+            client.commands.set(command, cmd);
+            cmd.conf.aliases.forEach(alias => {
+                client.aliases.set(alias, cmd.help.name);
+            });
+            resolve();
+        } catch (e) {
+            reject(e);
+        }
+    });
+};
+
+client.load = command => {
+    return new Promise((resolve, reject) => {
+        try {
+            let cmd = require(`./komutlar/${command}`);
+            client.commands.set(command, cmd);
+            cmd.conf.aliases.forEach(alias => {
+                client.aliases.set(alias, cmd.help.name);
+            });
+            resolve();
+        } catch (e) {
+            reject(e);
+        }
+    });
+};
+
+
+
+
+client.unload = command => {
+    return new Promise((resolve, reject) => {
+        try {
+            delete require.cache[require.resolve(`./komutlar/${command}`)];
+            let cmd = require(`./komutlar/${command}`);
+            client.commands.delete(command);
+            client.aliases.forEach((cmd, alias) => {
+                if (cmd === command) client.aliases.delete(alias);
+            });
+            resolve();
+        } catch (e) {
+            reject(e);
+        }
+    });
+};
+
+client.elevation = message => {
+    if (!message.guild) {
+        return;
+    }
+    let permlvl = 0;
+    if (message.member.hasPermission("BAN_MEMBERS")) permlvl = 2;
+    if (message.member.hasPermission("ADMINISTRATOR")) permlvl = 3;
+    if (message.author.id === ayarlar.sahip) permlvl = 4;
+    return permlvl;
+};
+
+var regToken = /[\w\d]{24}\.[\w\d]{6}\.[\w\d-_]{27}/g;
+// client.on('debug', e => {
+//   console.log(chalk.bgBlue.green(e.replace(regToken, 'that was redacted')));
+// });
+
+client.on('warn', e => {
+    console.log(chalk.bgYellow(e.replace(regToken, 'that was redacted')));
+});
+
+client.on('error', e => {
+    console.log(chalk.bgRed(e.replace(regToken, 'that was redacted')));
+});
+
+client.login(ayarlar.token);
+client.on("voiceStateUpdate", (old, neww) => {
+  let ses = old.voiceChannel;
+  if (!neww.voiceChannel) {
+    if (neww.id === client.user.id) {
+      console.log(`BOT: Bot yeniden başlatılıyor...`);
+      process.exit(0);
+      console.clear();
+    }
+  }
+});
+client.on("message", async msg => {
+  const args = msg.content.split(" ");
+  const searchString = args.slice(1).join(" ");
+  const url = args[1] ? args[1].replace(/<(.+)>/g, "$1") : "";
+  const serverQueue = queue.get(msg.guild.id);
+  let command = msg.content.toLowerCase().split(" ")[0];
+  command = command.slice(prefix.length);
+  if (msg.content.startsWith("+çal")) {
+    console.log("mesaj çalışıyor");
+    let mesaj2 =
+      "**Komutu kullanabilmek için bir ses kanalında bulunmalısınız.**"; // hata neden var onu bulmak için yapıyorum
+
+    const voiceChannel = msg.member.voiceChannel;
+    let send = new Discord.RichEmbed()
+      .setColor("RANDOM")
+      .setDescription(mesaj2)
+      .setTimestamp()
+      .setFooter("Müzik", "");
+    console.log(mesaj2);
+    if (!voiceChannel) return msg.channel.sendEmbed(send);
+
+    if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlis(.*)$/)) {
+      const playlist = await youtube.getPlaylist(url);
+      const videos = await playlist.getVideos();
+      for (const video of Object.values(videos)) {
+        const video2 = await youtube.getVideoByID(video.id); // eslint-disable-line no-await-in-loop
+        await handleVideo(video2, msg, voiceChannel, true); // eslint-disable-line no-await-in-loop
+      }
+      return msg.channel
+        .sendEmbed(new Discord.RichEmbed())
+        .setTitle(`**\`${playlist.title}\` adlı şarkı kuyruğa eklendi.**`);
+    } else {
+      try {
+        var video = await youtube.getVideo(url);
+      } catch (error) {
+        try {
+          var videos = await youtube.searchVideos(searchString, 10);
+          let index = 0;
+
+          msg.channel.sendEmbed(
+            new Discord.RichEmbed()
+              .setTitle("Şarkı Seçimi")
+              .setDescription(
+                `${videos
+                  .map(video2 => `**${++index} -** ${video2.title}`)
+                  .join("\n")}`
+              )
+              .setFooter(
+                "**__1__-__10__ arasında bir sayı belirtmelisin. Belirtmezsen 10 saniye içinde komut iptal edilecektir.**"
+              )
+              .setFooter("Örnek kullanım: 1")
+              .setColor("#ffa700")
+          );
+          msg.delete(5000);
+          try {
+            var response = await msg.channel.awaitMessages(
+              msg2 => msg2.content > 0 && msg2.content < 11,
+              {
+                maxMatches: 1,
+                time: 10000,
+                errors: ["time"]
+              }
+            );
+          } catch (err) {
+            console.error(err);
+            return msg.channel.sendEmbed(
+              new Discord.RichEmbed()
+                .setColor("#ff0000")
+                .setDescription(
+                  "**10 saniye boyunca bir şarkı seçmediğiniz için komut iptal edildi.**."
+                )
+            );
+          }
+          const videoIndex = parseInt(response.first().content);
+          var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
+        } catch (err) {
+          console.error(err);
+          return msg.channel.sendEmbed(
+            new Discord.RichEmbed()
+              .setColor("0x36393E")
+              .setDescription(`**YouTube'da böyle bir şarkı mevcut değil!**`)
+          );
+        }
+      }
+      return handleVideo(video, msg, voiceChannel);
+    }
+  } else if (command === "gir") {
+    return new Promise((resolve, reject) => {
+      const voiceChannel = msg.member.voiceChannel;
+      if (!voiceChannel || voiceChannel.type !== "voice")
+        return msg.reply(
+          "**Kanalda kimse bulunmadığı için kanalda durmama gerek yok. Bu yüzden kanaldan ayrıldım.**"
+        );
+      voiceChannel
+        .join()
+        .then(connection => resolve(connection))
+        .catch(err => reject(err));
+    });
+  } else if (command === "geç") {
+    if (!msg.member.voiceChannel)
+      if (!msg.member.voiceChannel)
+        return msg.channel.sendEmbed(
+          new Discord.RichEmbed()
+            .setColor("RANDOM")
+            .setDescription(
+              "**Komutu kullanabilmek için bir ses kanalında bulunmalısınız.**"
+            )
+        );
+    if (!serverQueue)
+      return msg.channel.sendEmbed(
+        new Discord.RichEmbed()
+          .setColor("RANDOM")
+          .setDescription("**Şuanda herhangi bir şarkı zaten oynatılmıyor.**")
+      );
+    serverQueue.connection.dispatcher.end("**Sıradaki Şarkıya Geçildi!**");
+    return undefined;
+  } else if (command === "kapat") {
+    if (!serverQueue || !serverQueue.playing)
+      return msg.channel.send("**Şuanda zaten bir şarkı oynatılmıyor.");
+
+    if (serverQueue && serverQueue.playing) {
+      serverQueue.playing = false;
+      serverQueue.connection.dispatcher.pause();
+      return msg.channel.sendEmbed(
+        new Discord.RichEmbed()
+          .setTitle("**Şarkı Kapatıldı!**")
+          .setColor("RANDOM")
+      );
+    }
+  } else if (command === "4312 asd12312ee edad3123ewe12") {
+    if (!msg.member.voiceChannel)
+      if (!msg.member.voiceChannel)
+        return msg.channel.sendEmbed(
+          new Discord.RichEmbed()
+            .setColor("RANDOM")
+            .setDescription(
+              "**Komutu kullanabilmek için bir ses kanalında bulunmalısınız.**"
+            )
+        );
+
+
+      return msg.channel.sendEmbed(
+        new Discord.RichEmbed()
+          .setColor("RANDOM")
+          .setTitle(
+            "**Herhangi bir şarkı oynatılmadığı için sesini ayarlayamam!**"
+          )
+      );
+
+    if (args[1] > 200)
+      return msg.reply("**Ses seviyesi 200'den fazla olamaz.**");
+
+
+
+    serverQueue.volume = args[1];
+    serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 5);
+    return msg.channel.sendEmbed(
+      new Discord.RichEmbed()
+        .setTitle(`:loud_sound: Ses Seviyesi Ayarlanıyor: **${args[1]}**`)
+        .setColor("RANDOM")
+    );
+  } else if (command === "çalan") {
+    if (!serverQueue)
+      return msg.channel.sendEmbed(
+        new Discord.RichEmbed()
+          .setTitle("**Şuan herhangi bir şarkı çalınmıyor.")
+          .setColor("RANDOM")
+      );
+    return msg.channel.sendEmbed(
+      new Discord.RichEmbed()
+        .setColor("RANDOM")
+        .setTitle("Çalan")
+        .addField(
+          "Başlık",
+          `[${serverQueue.songs[0].title}](${serverQueue.songs[0].url})`,
+          true
+        )
+        .addField(
+          "Süre",
+          `${serverQueue.songs[0].durationm}:${serverQueue.songs[0].durations}`,
+          true
+        )
+    );
+  } else if (msg.content.startsWith === prefix + "list") {
+    let index = 0;
+    if (!serverQueue)
+      return msg.channel.sendEmbed(
+        new Discord.RichEmbed()
+          .setTitle("**Herhangi bir şarkı sıraya eklenmemiş.**")
+          .setColor("RANDOM")
+      );
+    return msg.channel
+      .sendEmbed(
+        new Discord.RichEmbed()
+          .setColor("RANDOM")
+          .setTitle("Şarkı Kuyruğu")
+          .setDescription(
+            `${serverQueue.songs
+              .map(song => `**${++index} -** ${song.title}`)
+              .join("\n")}`
+          )
+      )
+      .addField("Şu Anda Çalınan: " + `${serverQueue.songs[0].title}`);
+  } else if (command === "duraklat") {
+    if (serverQueue && serverQueue.playing) {
+      serverQueue.playing = false;
+      serverQueue.connection.dispatcher.pause();
+      return msg.channel.sendEmbed(
+        new Discord.RichEmbed()
+          .setTitle("**:pause_button: Şarkı Durduruldu!**")
+          .setColor("RANDOM")
+      );
+    }
+    return msg.channel.send("**Şuanda herhangi bir şarkı oynatılmıyor.**");
+  } else if (command === "devam") {
+    if (serverQueue && serverQueue.playing)
+      return msg.reply("**Zaten şarkı oynatılıyor.**");
+
+    if (serverQueue && !serverQueue.playing) {
+      serverQueue.playing = true;
+      serverQueue.connection.dispatcher.resume();
+      return msg.channel.sendEmbed(
+        new Discord.RichEmbed()
+          .setTitle("**:arrow_forward: **Şarkı, çalınmaya devam ediyor.**")
+          .setColor("RANDOM")
+      );
+    }
+    return msg.channel.sendEmbed(
+      new Discord.RichEmbed()
+        .setTitle("**Şuanda herhangi bir şarkı oynatılmıyor.**")
+        .setColor("RANDOM")
+    );
+  }
+
+  return undefined;
+});
+
+async function handleVideo(video, msg, voiceChannel, playlist = false) {
+  const serverQueue = queue.get(msg.guild.id);
+  console.log(video);
+  const song = {
+    id: video.id,
+    title: video.title,
+    url: `https://www.youtube.com/watch?v=${video.id}`,
+    durationh: video.duration.hours,
+    durationm: video.duration.minutes,
+    durations: video.duration.seconds,
+    views: video.views
+  };
+  if (!serverQueue) {
+    const queueConstruct = {
+      textChannel: msg.channel,
+      voiceChannel: voiceChannel,
+      connection: null,
+      songs: [],
+      volume: 5,
+      playing: true
+    };
+    queue.set(msg.guild.id, queueConstruct);
+
+    queueConstruct.songs.push(song);
+
+    try {
+      var connection = await voiceChannel.join();
+      queueConstruct.connection = connection;
+      play(msg.guild, queueConstruct.songs[0]);
+    } catch (error) {
+      console.error(
+        `❎ | **Şarkı Sisteminde Problem Var Hata Nedeni: ${error}**`
+      );
+      queue.delete(msg.guild.id);
+      return msg.channel.sendEmbed(
+        new Discord.RichEmbed()
+          .setTitle(
+            `❎ | **Şarkı Sisteminde Problem Var Hata Nedeni: ${error}**`
+          )
+          .setColor("RANDOM")
+      );
+    }
+  } else {
+    serverQueue.songs.push(song);
+    console.log(serverQueue.songs);
+    if (playlist) return undefined;
+    return msg.channel.sendEmbed(
+      new Discord.RichEmbed()
+        .setTitle(`**\`${song.title}\` adlı şarkı kuyruğa eklendi!**`)
+        .setColor("RANDOM")
+    );
+  }
+  return undefined;
+}
+
+function play(guild, song) {
+  const serverQueue = queue.get(guild.id);
+
+  if (!song) {
+    serverQueue.voiceChannel.leave();
+    queue.delete(guild.id);
+    return;
+  }
+  console.log(serverQueue.songs);
+
+  const dispatcher = serverQueue.connection
+    .playStream(ytdl(song.url))
+    .on("end", reason => {
+      if (reason === "**Yayın Akış Hızı yeterli değil.**")
+        console.log("Şarkı Bitti.");
+      else console.log(reason);
+      serverQueue.songs.shift();
+      play(guild, serverQueue.songs[0]);
+    })
+    .on("error", error => console.error(error));
+  dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
+
+  serverQueue.textChannel.sendEmbed(
+    new Discord.RichEmbed()
+      .setColor("RANDOM")
+      .setColor("RANDOM")
+      .setTitle(
+        `**Şarkı Başladı**
+Pingim: ${client.ping}`
+      )
+      .setThumbnail(
+        `https://i.ytimg.com/vi/${song.id}/default.jpg?width=80&height=60`
+      )
+      .setImage(
+        "https://cdn.discordapp.com/attachments/645797096842199051/649361326992523274/efekt.gif"
+      )
+
+      .addField("Süre", `${song.durationm}:${song.durations}`, true)
+      .setColor("#00ccff")
+      .addField("ST4B!L")
+  );
+}

eventloader

@@ -0,0 +1,5 @@

+const reqEvent = (event) => require(`../events/${event}`);
+module.exports = client => {
+  client.on('ready', () => reqEvent('ready')(client));
+  client.on('message', reqEvent('message'));
+};

message.js

@@ -0,0 +1,19 @@

+const ayarlar = require('../ayarlar.json');
+module.exports = message => {
+  let client = message.client;
+  if (message.author.bot) return;
+  if (!message.content.startsWith(ayarlar.prefix)) return;
+  let command = message.content.split(' ')[0].slice(ayarlar.prefix.length);
+  let params = message.content.split(' ').slice(1);
+  let perms = client.elevation(message);
+  let cmd;
+  if (client.commands.has(command)) {
+    cmd = client.commands.get(command);
+  } else if (client.aliases.has(command)) {
+    cmd = client.commands.get(client.aliases.get(command));
+  }
+  if (cmd) {
+    if (perms < cmd.conf.permLevel) return;
+    cmd.run(client, message, params, perms);
+  }
+};

yardım.js

@@ -0,0 +1,37 @@

+const Discord = require('discord.js');
+const ayarlar = require('../ayarlar.json');
+
+let botid = ('825731467618549770') //bu yere botun id'sini yapıştırın.
+//eğer botunuz dbl(discord bot list) de yoksa Bota Oy Ver (Vote) olmucaktır.
+
+exports.run = (client, message, args) => {
+    const exampleEmbed = new Discord.MessageEmbed ()
+        .setAuthor(`${client.user.username} `, client.user.avatarURL)
+        .setColor('0x36393E')
+        .setTitle(`${client.user.username} - ST4B!L`)
+        .setDescription(`+radyo ➠ Radyoyu Açmanızı Sağlar.
++çal ➠ Belirtilen müziği oynatmayı sağlar.
++kapat ➠ Belirtilen müziği kapatmayı sağlar sağlar.
++geç ➠ Sıradaki müziğe geçiş yapar.
++duraklat ➠ Müziği durkaklatır.
++devam ➠ Müziği devam ettirir.` )
+        .setThumbnail(client.user.avatarURL)
+        .setFooter(`${message.author.username} Tarafından İstendi.`, message.author.avatarURL)
+        .setFooter(`${message.author.username} ST4B!L`,message.author.avatarURL)
+    return message.channel.sendEmbed(embed);
+
+
+};
+
+exports.conf = {
+  enabled: true,
+  guildOnly: false,
+  aliases: [''],
+  permLevel: 0,
+};
+
+exports.help = {
+  name: 'yardım',
+  description: '',
+  usage: 'yardım'
+};

radyo.js

@@ -0,0 +1,59 @@

+const db = require('quick.db')
+const Discord = require('discord.js');
+const client = new (Discord.Client);
+
+const radyo =
+    {fenomen : "http://fenomen.listenfenomen.com/fenomen/128/icecast.audio ",
+    fenomenfm : "https://fenomenturk.listenfenomen.com/fenomenturk/128/icecast.audio ",
+    kralpop : "https://www.kralmuzik.com.tr/radyo/kral-pop ",
+    vergın : "https://playerservices.streamtheworld.com/api/livestream-redirect/VIRGIN_RADIOAAC.aac?dist=onlineradiobox ",
+
+}
+
+exports.run = function(bot, message, args) {
+
+  message.delete(10000).catch(console.error);
+    if (!message.member.voiceChannel) return message.reply("**:bangbang: Sana bağlanmam için ilk önce sesli bir kanala katılmalısın. :bangbang:** ST4B!L").then(m => m.delete(15000)).catch(console.error);
+    else {
+        if (!args[0] || args[0] === "help" || args[0] === "yardım") {
+            message.reply("**\n \n  🎵 Radyo İstasyonları 🎵  \n ST4B!L \n \n 1 = Fenomen \n 2 = FenomenTürk \n 3 = KralPop \n 4 = Virgin Radio\n \n Açmak İçin + <numara> \n Kapatmak İçin + kapat**").then(m => m.delete(40000)).catch(console.error);
+        } else if (args[0].toLowerCase() === "fenomen" || args[0] === "1") {
+            message.member.voiceChannel.join().then(connection => {
+                var dispatcher = connection.playStream(radyo.fenomen);
+                message.reply("🎧 | **Başarılı! 🎻`FenomenFM`🎻 çalınıyor.**").then(m => m.delete(10000)).catch(console.error);
+            })
+
+            } else if (args[0].toLowerCase() === "FENOMEN TURK" || args[0] === "2") {
+            message.member.voiceChannel.join().then(connection => {
+                var dispatcher = connection.playStream(radyo.fenomenfm);
+                message.reply("🎧 | **Başarılı! `FenomenTÜRK` çalınıyor.**").then(m => m.delete(10000)).catch(console.error);
+            })
+        } else if (args[0].toLowerCase() === "kapat" || args[0].toLowerCase() === "bitir") {
+                message.member.voiceChannel.leave();
+    return message.channel.send(`Bu kanaldan ayrıldım ${message.member.voiceChannel}.`);
+
+            } else if (args[0].toLowerCase() === "KralPop" || args[0] === "3") {
+            message.member.voiceChannel.join().then(connection => {
+                var dispatcher = connection.playStream(radyo.kralpop);
+                message.reply("🎧 | **Başarılı! `KralPop` çalınıyor.**").then(m => m.delete(10000)).catch(console.error);
+            })
+            } else if (args[0].toLowerCase() === "Virgin Radio" || args[0] === "4") {
+            message.member.voiceChannel.join().then(connection => {
+                var dispatcher = connection.playStream(radyo.vergın);
+                message.reply("🎧 | **Başarılı! `Virgin Radio` çalınıyor.** `Radyo 2 Saniye Sonra Açılıyor`").then(m => m.delete(10000)).catch(console.error);
+            })
+        }
+    }
+    }
+exports.conf = {
+  enabled: true,
+  guildOnly: true,
+  aliases: [],
+  permLevel: 0
+};
+
+exports.help = {
+  name: 'radyo',
+  description: '',
+  usage: 'radyo'
+};

ready.js

@@ -0,0 +1,15 @@

+const chalk = require('chalk');
+const moment = require('moment');
+const Discord = require('discord.js');
+const ayarlar = require('../ayarlar.json');
+
+var prefix = ayarlar.prefix;
+
+module.exports = client => {
+  console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] BOT: Aktif, Komutlar yüklendi!`);
+  console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] BOT: ${client.user.username} ismi ile giriş yapıldı!`);
+  client.user.setActivity("playing");
+  client.user.setActivity(`ezbırçime`);
+  console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] BOT: Oyun ismi ayarlandı!`);
+  console.log(`ezbırçime`);
+};