play around cnc bot

This commit is contained in:
Daniel afx 2020-10-17 19:22:22 +03:00
parent 5585f790a7
commit 3ec2120346
3 changed files with 74 additions and 9 deletions

50
cncbot.py Normal file
View file

@ -0,0 +1,50 @@
import pydle
import random
import string
CNC_HOST='dark.deflax.net'
ADMIN_NICKNAMES = [ 'afx' ]
def get_random_string(length):
letters = string.ascii_lowercase
result_str = ''.join(random.choice(letters) for i in range(length))
return result_str
class ForestBot(pydle.Client):
async def on_connect(self):
await super().on_connect()
await self.join('#forest')
async def is_admin(self, nickname):
"""
Check whether or not a user has administrative rights for this bot.
This is a blocking function: use a coroutine to call it.
See pydle's documentation on blocking functionality for details.
"""
admin = False
# Check the WHOIS info to see if the source has identified with NickServ.
# This is a blocking operation, so use yield.
if nickname in ADMIN_NICKNAMES:
info = await self.whois(nickname)
print(info)
admin = info['identified']
return admin
async def on_message(self, target, source, message):
await super().on_message(target, source, message)
# Tell a user if they are an administrator for this bot.
if message.startswith('!stats'):
admin = await self.is_admin(source)
if admin:
await self.message(target, '{}: You are an administrator.'.format(source))
else:
await self.message(target, '{}: You are not an administrator.'.format(source))
if __name__ == '__main__':
cnc = ForestBot('client_' + get_random_string(5))
cnc.run(CNC_HOST, tls=False, tls_verify=False)

26
main.py
View file

@ -1,9 +1,12 @@
# Import system modules # Import system modules
from random import randrange #import trio
import asyncio
import random
import sqlite3 import sqlite3
# Import Kivy modules # Import Kivy modules
#from kivy.app import App #from kivy.app import App
#from kivy.app import async_runTouchApp
from kivymd.app import MDApp from kivymd.app import MDApp
from kivy.lang import Builder from kivy.lang import Builder
@ -22,8 +25,8 @@ from gpshelper import GpsHelper
from settings import SampleBoxLayout from settings import SampleBoxLayout
from game import GameWidget from game import GameWidget
# MOTD # Welcome message
motd = """] MOTD = """]
] GlobalForest 0.1 by afx""" ] GlobalForest 0.1 by afx"""
Builder.load_string(""" Builder.load_string("""
@ -64,7 +67,7 @@ class MainApp(MDApp):
def on_start(self): def on_start(self):
# Welcome # Welcome
print(motd) print(MOTD)
self.theme_cls.primary_palette = 'BlueGray' self.theme_cls.primary_palette = 'BlueGray'
@ -79,9 +82,20 @@ class MainApp(MDApp):
#self.search_menu = SearchPopupMenu() #self.search_menu = SearchPopupMenu()
if __name__ == '__main__': if __name__ == '__main__':
#asyncio.run(MainLoop())
#screen_manager = ScreenManager() #screen_manager = ScreenManager()
#screen_manager.add_widget(ScreenOne(name="screen_one")) #screen_manager.add_widget(ScreenOne(name="screen_one"))
#screen_manager.add_widget(ScreenTwo(name="screen_two")) #screen_manager.add_widget(ScreenTwo(name="screen_two"))
app = MainApp()
app.run()
kivyapp = MainApp()
kivyapp.run()
#cnc = ForestBot('client_' + get_random_string(5))
#loop = asyncio.get_event_loop()
#loop.create_task(
# cnc.run(CNC_HOST, tls=False, tls_verify=False)
#)
#loop.run_until_complete(
# kivyapp.async_run()
#)
#loop.close()

View file

@ -1,4 +1,5 @@
Kivy
pydle
ffpyplayer ffpyplayer
sqlite_utils sqlite_utils
Kivy
mapview mapview