43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
#!/usr/bin/env python
|
|
# Asyncronous IRC Bot Skeleton - Developed by acidvegas in Python (https://acid.vegas/skeleton)
|
|
# commands.py
|
|
|
|
class Command:
|
|
def __init__(self, bot):
|
|
self.Bot = bot
|
|
|
|
def action(self, target, msg):
|
|
self.sendmsg(target, f'\x01ACTION {msg}\x01')
|
|
|
|
def join_channel(self, chan, key=None):
|
|
self.raw(f'JOIN {chan} {key}') if key else raw('JOIN ' + chan)
|
|
|
|
def mode(self, target, mode):
|
|
self.raw(f'MODE {target} {mode}')
|
|
|
|
def nick(self, new_nick):
|
|
self.raw('NICK ' + new_nick)
|
|
|
|
def notice(self, target, msg):
|
|
self.raw(f'NOTICE {target} :{msg}')
|
|
|
|
def part_channel(self, chan, msg=None):
|
|
self.raw(f'PART {chan} {msg}') if msg else raw('PART ' + chan)
|
|
|
|
def quit(self, msg=None):
|
|
self.raw('QUIT :' + msg) if msg else raw('QUIT')
|
|
|
|
def raw(self, data):
|
|
self.Bot.writer.write(data[:510].encode('utf-8') + b'\r\n')
|
|
|
|
def register(self, nickname, username, realname, password=None):
|
|
if password:
|
|
self.raw('PASS ' + password)
|
|
self.raw('NICK ' + nickname)
|
|
self.raw(f'USER {username} 0 * :{realname}')
|
|
|
|
def sendmsg(self, target, msg):
|
|
self.raw(f'PRIVMSG {target} :{msg}')
|
|
|
|
def topic(self, chan, data):
|
|
self.raw(f'TOPIC {chan} :{text}') |