Jabber/XMPP conference bot & framework
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
brathuhn/main.py

72 lines
2.2 KiB

#!/usr/bin/python
# -*- coding: utf-8 -*-
import brathuhn
import subprocess
import random
from get_quote import *
brathuhn.addCommand("quote","Usage: !quote language (two letter code) topic",quote)
from logger import *
brathuhn.addPrivateCommand("show_log","Usage: !show_log",show_log)
brathuhn.addPrivateCommand("start_log","Usage: !start_log",start_log)
brathuhn.addPrivateCommand("stop_log","Usage: !stop_log",stop_log)
brathuhn.addPrivateCommand("delete_log","Usage: !delete_log",del_log)
brathuhn.addGroupListener(message_logger)
brathuhn.addStatusListener(status_logger)
def cowsay(msg,args):
cowfile="default"
text=""
if( len(args)==2 ):
text=args[1]
elif( len(args)>=3 ):
cowfile=args[1]
for i in range(2,len(args)):
text+=args[i]+" "
else:
brathuhn.sendMsg(brathuhn.ROOM,"Usage: "+args[0]+" [cowfile] text",'groupchat')
return
try:
txt=subprocess.check_output(["cowsay","-f",cowfile,text])
for line in txt.split('\n'):
#brathuhn.sendStyledMsg(brathuhn.ROOM,line,'groupchat',)
brathuhn.sendMonoMsg(brathuhn.ROOM,line,'groupchat')
except subprocess.CalledProcessError:
pass
brathuhn.addCommand("cowsay","Usage: !cowsay [cowfile] text",cowsay)
def choose(msg,args):
if len(args)==1:
brathuhn.sendMsg(brathuhn.ROOM,"Usage: "+args[0]+" item_1 item_2 ... item_n",'groupchat')
else:
brathuhn.sendMsg(brathuhn.ROOM,args[1+random.randint(0,len(args[1:])-1)],'groupchat')
brathuhn.addCommand("choose","Usage: !choose item_1 item_2 ... item_n",choose)
kraken_img = """
_,.---. ,''-._
Release the kraken! ;- X ,/-- \\
/ \\ ' `. :
| \\ / | | )
,''-..--'\\ \\....-'__ '
/ .-...--'': ,. , _.-'O,'
.'/ _O_ O / /O)\\ \\''-O,-'
[\\_ .' /,' ,+-'._/O/ / /_
\\/'-' :/ ' '`'''''`+
_;._.:..."""
def kraken(mfrom,msg):
if "kraken" in msg.lower() and not brathuhn.room_nick in mfrom:
for line in kraken_img.split('\n'):
brathuhn.sendMonoMsg(brathuhn.ROOM,line,'groupchat')
brathuhn.addGroupListener(kraken)
brathuhn.connect_and_join()
brathuhn.loop()