Grafiksel Say Komutu

CAGLARmc

Katılımcı Üye
15 Eyl 2018
393
66
Jupiter
Merhaba Dostlar


Arkadaşımın discord sunucusu için yapmış olduğum say komutunu sizinle paylaşmak istedim matplotlib kullanarak gafiksel bir şekilde görebiliyorsunuz

Kod:
import discord
import random
from matplotlib import pyplot as plt
import numpy as np
class MyClient(discord.Client):
    async def on_ready(self):
        print('Logged in as')
        print(self.user.name)
        print(self.user.id)
        print('------')

    async def on_message(self, message,*args):
        if message.author.id == self.user.id:
            return
        if message.content.startswith('!bot-bilgim'):
            fig = plt.figure()
            ax = fig.add_axes([0,0,1,1])
            ax.axis('equal')
            uyeler = []
            sunucular = []
            say = 0
            for i in self.guilds:
##                await message.channel.send(i.member_count)
                fig = plt.figure()
                ax = fig.add_axes([0,0,1,1])
                ax.axis('equal')
                uyeler.append(i.member_count)
                sunucular.append(i.name)

            ax.pie(uyeler, labels = sunucular,autopct='%1.2f%%')

            plt.title("Bot Bilgisi")

            dosya_adi = str(random.random())


            foto =f"sunucu_bilgi_grafikler/{dosya_adi}{say}.png"
            plt.savefig(foto);
            say+=1
            await message.channel.send(file=discord.File(foto))



        if message.content.startswith('!say'):
            toplam_uye = message.guild.member_count
            online_uye = 0
            offline_uye = 0
            tagdaki_uye_sayi = 0
            say = 0
            sunucu_ad = message.guild.name
            for user in message.guild.members:
                if user.status != discord.Status.offline:
                    online_uye += 1
                else:
                    offline_uye +=1
                if "₴" in user.name:
                    tagdaki_uye_sayi += 1

            embed = discord.Embed(title="Sunucu: {}".format(message.guild.name), description="Üye Bilgileri", color=0xfc0303)
            embed.add_field(name="Toplam Üye Sayısı: ", value=str(toplam_uye), inline=False)
            embed.add_field(name="Online Üye Sayısı: ", value=str(online_uye), inline=False)
            embed.add_field(name="Offline Üye Sayısı: ", value=str(offline_uye), inline=False)
            embed.add_field(name="Tagdaki Üye Sayısı: ", value=str(tagdaki_uye_sayi), inline=False)
            await message.channel.send(embed=embed)
            fig = plt.figure()
            ax = fig.add_axes([0,0,1,1])
            ax.axis('equal')

            dilimler = [toplam_uye,online_uye,offline_uye,tagdaki_uye_sayi]

            basliklar = ["Toplam Üye", "Online Üye", "Offline Üye", "Tagdaki Üye"]

            ax.pie(dilimler, explode= (0.1, 0.1, 0.1, 0.1), labels = basliklar,autopct='%1.2f%%', shadow=True)

            plt.title(sunucu_ad+" Üyeler")
            
            dosya_adi = str(random.random())


            foto =f"sunucu_bilgi_grafikler/{dosya_adi}{say}.png"
            plt.savefig(foto);
            say+=1
            await message.channel.send(file=discord.File(foto))
                
                




client = MyClient()
client.run('TOKENINIZ')

--KOMUTLAR--

[ !say ] Komutun yazıldığı sunucunun anlık olarak Toplam Üye - Online Üye - Offline Üye - Tagdaki Üye sayılarını hem embed şeklinde hemde grafik şeklinde hazırlayıp sunucuya atar

[ !bot-bilgim ] Botun bulunduğu sunucuları ve üye sayılarını grafiksel ve embed şeklinde atar
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.