Added some more debugging stuffs to banterbot. Fixed some utils
This commit is contained in:
parent
f2dbad05af
commit
d7842734ac
|
@ -55,6 +55,14 @@ parser.add_argument(
|
||||||
help="the nick to use",
|
help="the nick to use",
|
||||||
metavar="NICK",
|
metavar="NICK",
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-o",
|
||||||
|
"--owner",
|
||||||
|
dest="owner",
|
||||||
|
default="krowbar",
|
||||||
|
help="the owner of this bot",
|
||||||
|
metavar="OWNER",
|
||||||
|
)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
@ -225,7 +233,8 @@ def get_xkcd(channel, text):
|
||||||
|
|
||||||
|
|
||||||
def get_wphilosophy(channel, text):
|
def get_wphilosophy(channel, text):
|
||||||
steps = wikiphilosophy.get_philosophy_lower(text[17:])
|
util.sendmsg(ircsock, channel, "Ok, give me a minute while I look up '{}'".format(text))
|
||||||
|
steps = wikiphilosophy.get_philosophy_lower(text)
|
||||||
if not steps:
|
if not steps:
|
||||||
util.sendmsg(
|
util.sendmsg(
|
||||||
ircsock, channel, "Couldn't find a wikipedia entry for {}".format(text)
|
ircsock, channel, "Couldn't find a wikipedia entry for {}".format(text)
|
||||||
|
@ -302,7 +311,7 @@ def get_whosaid(channel, text):
|
||||||
|
|
||||||
|
|
||||||
def get_notice(user, channel):
|
def get_notice(user, channel):
|
||||||
ircsock.send("CNOTICE " + user + " " + channel + " :Notice me senpai!\r\n")
|
util.notice(ircsock, user, channel, "Notice me senpai!")
|
||||||
|
|
||||||
|
|
||||||
def get_water(user, channel, msg, botnick):
|
def get_water(user, channel, msg, botnick):
|
||||||
|
@ -316,12 +325,9 @@ def mug_off(channel):
|
||||||
|
|
||||||
def rollcall(channel):
|
def rollcall(channel):
|
||||||
text = """
|
text = """
|
||||||
U wot m8? I score all the top drawer #banter and #bantz on this channel!
|
U wot m8? I score all the top drawer #banter and #bantz on this channel! / Find new top-shelf banter with !newbanter, !rhymes, and !define.
|
||||||
Find new top-shelf banter with !newbanter, !rhymes, and !define.
|
Look up things with !acronym and !whosaid / Make your chatter #legend with !rainbow, !toilet, and !figlet.
|
||||||
Look up things with !acronym and !whosaid.
|
Find interesting things with !xkcd and !wiki-philosophy / Get jokes with !welch !evil !kjp and !help
|
||||||
Make your chatter #legend with !rainbow, !toilet, and !figlet.
|
|
||||||
Find interesting things with !xkcd and !wiki-philosophy.
|
|
||||||
Get jokes with !welch and !evil
|
|
||||||
"""
|
"""
|
||||||
for line in textwrap.dedent(text).split("\n"):
|
for line in textwrap.dedent(text).split("\n"):
|
||||||
if line == "":
|
if line == "":
|
||||||
|
@ -337,6 +343,7 @@ def listen(botnick):
|
||||||
|
|
||||||
if ircmsg[:4] == "PING":
|
if ircmsg[:4] == "PING":
|
||||||
util.ping(ircsock, ircmsg)
|
util.ping(ircsock, ircmsg)
|
||||||
|
print("** " + ircmsg)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
formatted = util.format_message(ircmsg)
|
formatted = util.format_message(ircmsg)
|
||||||
|
@ -344,66 +351,77 @@ def listen(botnick):
|
||||||
if "" == formatted:
|
if "" == formatted:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# print formatted
|
print(formatted)
|
||||||
|
|
||||||
_time, user, _command, channel, messageText = formatted.split("\t")
|
_time, user, _command, channel, messageText = formatted.split("\t")
|
||||||
|
|
||||||
if ircmsg.find("#banter") != -1 or ircmsg.find("#bantz") != -1:
|
if messageText.find("#banter") != -1 or messageText.find("#bantz") != -1:
|
||||||
score_banter(channel, user, messageText)
|
score_banter(channel, user, messageText)
|
||||||
|
|
||||||
if ircmsg.find(":!newbanter") != -1:
|
if messageText.startswith("!newbanter"):
|
||||||
get_new_banter(channel, user)
|
get_new_banter(channel, user)
|
||||||
|
|
||||||
if ircmsg.find(":!rhymes") != -1:
|
if messageText.startswith("!rhymes"):
|
||||||
get_rhymes(channel, user, messageText)
|
get_rhymes(channel, user, messageText)
|
||||||
|
|
||||||
if ircmsg.find(":!define") != -1:
|
if messageText.startswith("!define"):
|
||||||
define_word(channel, user, messageText)
|
define_word(channel, user, messageText)
|
||||||
|
|
||||||
if ircmsg.find(":!rainbow") != -1:
|
if messageText.startswith("!rainbow"):
|
||||||
make_rainbow(channel, user, messageText)
|
make_rainbow(channel, user, messageText)
|
||||||
|
|
||||||
if ircmsg.find(":!welch") != -1:
|
if messageText.startswith("!welch"):
|
||||||
get_welch(channel)
|
get_welch(channel)
|
||||||
|
|
||||||
if ircmsg.find(":!evil") != -1:
|
if messageText.startswith("!evil"):
|
||||||
get_evil(channel)
|
get_evil(channel)
|
||||||
|
|
||||||
if ircmsg.find(":!kjp") != -1:
|
if messageText.startswith("!kjp"):
|
||||||
get_tumble("http://kingjamesprogramming.tumblr.com", channel)
|
get_tumble("http://kingjamesprogramming.tumblr.com", channel)
|
||||||
|
|
||||||
if ircmsg.find(":!help") != -1:
|
if messageText.startswith("!help"):
|
||||||
get_tumble("http://thedoomthatcametopuppet.tumblr.com", channel)
|
get_tumble("http://thedoomthatcametopuppet.tumblr.com", channel)
|
||||||
|
|
||||||
if ircmsg.find(":!xkcd") != -1:
|
if messageText.startswith("!xkcd"):
|
||||||
get_xkcd(channel, messageText)
|
get_xkcd(channel, messageText)
|
||||||
if ircmsg.find(":!wiki-philosophy") != -1:
|
|
||||||
get_wphilosophy(channel, messageText)
|
|
||||||
|
|
||||||
if ircmsg.find(":!figlet") != -1:
|
if messageText.startswith("!wiki-philosophy"):
|
||||||
|
get_wphilosophy(channel, messageText[17:])
|
||||||
|
|
||||||
|
if messageText.startswith("!figlet"):
|
||||||
figlet(channel, messageText[8:])
|
figlet(channel, messageText[8:])
|
||||||
|
|
||||||
if ircmsg.find(":!toilet") != -1:
|
if messageText.startswith("!toilet"):
|
||||||
toilet(channel, messageText[8:])
|
toilet(channel, messageText[8:])
|
||||||
|
|
||||||
if ircmsg.find(":!acronym") != -1:
|
if messageText.startswith("!acronym"):
|
||||||
get_acronym(channel, messageText[9:])
|
get_acronym(channel, messageText[9:])
|
||||||
|
|
||||||
if ircmsg.find(":!whosaid") != -1:
|
if messageText.startswith("!whosaid"):
|
||||||
get_whosaid(channel, messageText[9:])
|
get_whosaid(channel, messageText[9:])
|
||||||
|
|
||||||
if ircmsg.find(":!notice") != -1:
|
if messageText.startswith("!notice"):
|
||||||
get_notice(user, channel)
|
get_notice(user, channel)
|
||||||
|
|
||||||
if ircmsg.find(":!water") != -1:
|
if messageText.startswith("!water"):
|
||||||
get_water(user, channel, messageText[7:], botnick)
|
get_water(user, channel, messageText[7:], botnick)
|
||||||
|
|
||||||
if ircmsg.find(":!rollcall") != -1:
|
if messageText.startswith("!rollcall"):
|
||||||
rollcall(channel)
|
rollcall(channel)
|
||||||
|
|
||||||
if ircmsg.find(":" + botnick + ":") != -1:
|
if messageText.startswith(botnick + ":"):
|
||||||
mug_off(channel)
|
mug_off(channel)
|
||||||
|
|
||||||
|
if messageText.startswith("!join") and user == args.owner:
|
||||||
|
util.joinchan(ircsock, messageText[6:])
|
||||||
|
|
||||||
|
if messageText.startswith("!part") and user == args.owner:
|
||||||
|
util.part(ircsock, messageText[6:])
|
||||||
|
|
||||||
|
if messageText.startswith("!quit") and user == args.owner:
|
||||||
|
util.part(ircsock, "Later chumps!")
|
||||||
|
return
|
||||||
|
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
|
@ -412,6 +430,6 @@ def listen(botnick):
|
||||||
|
|
||||||
|
|
||||||
# ROOT: i commented this out until it stops pegging the CPU.
|
# ROOT: i commented this out until it stops pegging the CPU.
|
||||||
#ircsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
ircsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
#util.connect(ircsock, args)
|
util.connect(ircsock, args)
|
||||||
#listen(args.nick)
|
listen(args.nick)
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
if [[ ! `pidof -sx banterbot.py` ]]; then
|
if [[ ! `pidof -sx banterbot.py` ]]; then
|
||||||
#nohup ./banterbot.py -s 127.0.0.1:6667 -n banterbot -c \#tildetown \#bots >> banterlog 2>> banterlog &
|
#nohup ./banterbot.py -s 127.0.0.1:6667 -n banterbot -c \#tildetown \#bots >> banterlog 2>> banterlog &
|
||||||
echo "Starting banterbot"
|
echo "Starting banterbot"
|
||||||
nohup ./banterbot.py -s 127.0.0.1:6667 -n banterbot -c \#bots >> banterlog 2>> banterlog &
|
nohup ./banterbot.py -s 127.0.0.1:6667 -n banterbot -c \#tildetown \#bots >> banterlog 2>> banterlog &
|
||||||
else
|
else
|
||||||
echo "Banterbot has already been started"
|
echo "Banterbot has already been started"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
krowbar&^%2590&^%1542633864
|
krowbar&^%2596&^%1542728099
|
||||||
karlen&^%498&^%1527613440
|
karlen&^%498&^%1527613440
|
||||||
endorphant&^%801&^%1444775660
|
endorphant&^%801&^%1444775660
|
||||||
jumblesale&^%25&^%1426171214
|
jumblesale&^%25&^%1426171214
|
||||||
|
@ -43,7 +43,7 @@ cosnok&^%807&^%1508878859
|
||||||
escobar&^%1&^%1475431401
|
escobar&^%1&^%1475431401
|
||||||
amicabot&^%30&^%1481225205
|
amicabot&^%30&^%1481225205
|
||||||
caff&^%1030&^%1540040705
|
caff&^%1030&^%1540040705
|
||||||
kadin&^%18&^%1541514839
|
kadin&^%19&^%1542733284
|
||||||
desvox&^%36&^%1542379512
|
desvox&^%36&^%1542379512
|
||||||
mankins&^%3&^%1480211581
|
mankins&^%3&^%1480211581
|
||||||
cinch&^%2&^%1480454755
|
cinch&^%2&^%1480454755
|
||||||
|
@ -57,7 +57,7 @@ tehfraga&^%671&^%1542490496
|
||||||
sushi&^%10&^%1493253212
|
sushi&^%10&^%1493253212
|
||||||
troido&^%302&^%1538991819
|
troido&^%302&^%1538991819
|
||||||
gamebot&^%203&^%1542505151
|
gamebot&^%203&^%1542505151
|
||||||
nilaky&^%1501&^%1542491307
|
nilaky&^%1511&^%1542738605
|
||||||
bucket&^%103&^%1507931139
|
bucket&^%103&^%1507931139
|
||||||
lolbot&^%1&^%1502568407
|
lolbot&^%1&^%1502568407
|
||||||
m455&^%12&^%1512076715
|
m455&^%12&^%1512076715
|
||||||
|
@ -70,8 +70,8 @@ pinhook&^%8&^%1509744722
|
||||||
emfor&^%3&^%1509671353
|
emfor&^%3&^%1509671353
|
||||||
k2l8m11n2&^%11&^%1510932395
|
k2l8m11n2&^%11&^%1510932395
|
||||||
sacredpix&^%3&^%1522082931
|
sacredpix&^%3&^%1522082931
|
||||||
deltawitch&^%3304&^%1542620562
|
deltawitch&^%3309&^%1542655912
|
||||||
login&^%2633&^%1542634018
|
login&^%2643&^%1542737740
|
||||||
kelpiebot&^%3&^%1513101957
|
kelpiebot&^%3&^%1513101957
|
||||||
unreal&^%2&^%1534387108
|
unreal&^%2&^%1534387108
|
||||||
tildethief&^%7421&^%1542467787
|
tildethief&^%7421&^%1542467787
|
||||||
|
@ -90,7 +90,7 @@ saturn597&^%3&^%1521429369
|
||||||
cwmccabe&^%2&^%1521598124
|
cwmccabe&^%2&^%1521598124
|
||||||
lucidiot&^%28&^%1526201925
|
lucidiot&^%28&^%1526201925
|
||||||
tracer&^%1&^%1521744878
|
tracer&^%1&^%1521744878
|
||||||
jan6&^%1116&^%1542487863
|
jan6&^%1116&^%1542729468
|
||||||
jan&^%10&^%1522319160
|
jan&^%10&^%1522319160
|
||||||
etathetae&^%3&^%1522937843
|
etathetae&^%3&^%1522937843
|
||||||
eeeeeta&^%52&^%1540361066
|
eeeeeta&^%52&^%1540361066
|
||||||
|
@ -104,10 +104,10 @@ lunasspec&^%4&^%1524164784
|
||||||
littlebigly&^%49&^%1535927253
|
littlebigly&^%49&^%1535927253
|
||||||
severak&^%17&^%1540822455
|
severak&^%17&^%1540822455
|
||||||
ralph&^%4&^%1526980620
|
ralph&^%4&^%1526980620
|
||||||
von&^%425&^%1542623529
|
von&^%426&^%1542728162
|
||||||
ensis&^%1750&^%1539356542
|
ensis&^%1750&^%1539356542
|
||||||
simon&^%26&^%1527937489
|
simon&^%26&^%1527937489
|
||||||
benharri&^%2277&^%1542609742
|
benharri&^%2295&^%1542743369
|
||||||
cpb&^%3&^%1528930564
|
cpb&^%3&^%1528930564
|
||||||
calmbit&^%160&^%1542220635
|
calmbit&^%160&^%1542220635
|
||||||
wisebot&^%5652&^%1542183214
|
wisebot&^%5652&^%1542183214
|
||||||
|
@ -118,23 +118,23 @@ pounce&^%19&^%1532133325
|
||||||
von_&^%5&^%1532502104
|
von_&^%5&^%1532502104
|
||||||
livix&^%7&^%1533603142
|
livix&^%7&^%1533603142
|
||||||
ben&^%3&^%1533767627
|
ben&^%3&^%1533767627
|
||||||
npa&^%139&^%1542620546
|
npa&^%146&^%1542708198
|
||||||
ezo&^%6&^%1533883842
|
ezo&^%6&^%1533883842
|
||||||
aliasless&^%36&^%1541001821
|
aliasless&^%36&^%1541001821
|
||||||
kirch&^%213&^%1542401397
|
kirch&^%217&^%1542659656
|
||||||
root&^%2&^%1535558514
|
root&^%2&^%1535558514
|
||||||
byte&^%5&^%1536416308
|
byte&^%5&^%1536416308
|
||||||
qbe&^%7&^%1537850181
|
qbe&^%7&^%1537850181
|
||||||
informati&^%3&^%1536733938
|
informati&^%3&^%1536733938
|
||||||
h00fi&^%1&^%1537050053
|
h00fi&^%1&^%1537050053
|
||||||
fantoro&^%26&^%1542538478
|
fantoro&^%31&^%1542657642
|
||||||
benjaminwil&^%550&^%1542409435
|
benjaminwil&^%553&^%1542737924
|
||||||
diodelass&^%3&^%1539382302
|
diodelass&^%3&^%1539382302
|
||||||
brendantcc&^%3&^%1539908223
|
brendantcc&^%3&^%1539908223
|
||||||
dozens&^%21&^%1542222479
|
dozens&^%21&^%1542222479
|
||||||
bowlercaptain&^%6&^%1540926135
|
bowlercaptain&^%6&^%1540926135
|
||||||
nicole&^%6&^%1541276844
|
nicole&^%6&^%1541276844
|
||||||
midnightpupil&^%12&^%1542216854
|
midnightpupil&^%12&^%1542216854
|
||||||
ahriman&^%79&^%1542617214
|
ahriman&^%97&^%1542748742
|
||||||
tunas&^%37&^%1542583679
|
tunas&^%79&^%1542748854
|
||||||
khuxkm&^%2&^%1542566334
|
khuxkm&^%2&^%1542566334
|
||||||
|
|
|
@ -41,7 +41,7 @@ def tumble(url):
|
||||||
)
|
)
|
||||||
# just the date and notes
|
# just the date and notes
|
||||||
|
|
||||||
return quote.encode("ascii", "ignore")
|
return quote
|
||||||
except: # sometimes we fail. let's retry a few times
|
except: # sometimes we fail. let's retry a few times
|
||||||
if tries == 0:
|
if tries == 0:
|
||||||
return ""
|
return ""
|
||||||
|
|
|
@ -3,15 +3,28 @@ import time
|
||||||
import random
|
import random
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
MAX_LINE = 400
|
||||||
|
|
||||||
|
|
||||||
def ping(ircsock, msg):
|
def ping(ircsock, msg):
|
||||||
ircsock.send("PONG {}\n".format(msg.split(" ")[1]).encode())
|
ircsock.send("PONG {}\n".format(msg.split(" ")[1]).encode())
|
||||||
|
|
||||||
|
|
||||||
def sendmsg(ircsock, chan, msg):
|
def sendmsg(ircsock, chan, msg):
|
||||||
print("sending {} to {}".format(msg, chan))
|
print("sending {} to {}".format(msg, chan)[0:MAX_LINE])
|
||||||
ircsock.send("PRIVMSG {} :{}\r\n".format(chan, msg).encode())
|
ircsock.send("PRIVMSG {} :{}\r\n".format(chan, msg).encode()[0:MAX_LINE])
|
||||||
|
|
||||||
|
def notice(ircsock, user, chan, msg):
|
||||||
|
print("sending notice {} to {} in {}".format(msg, user, chan)[0:MAX_LINE])
|
||||||
|
ircsock.send("CNOTICE {} {} :{}\r\n".format(user, chan, msg).encode()[0:MAX_LINE])
|
||||||
|
|
||||||
|
def part(ircsock, chan, msg="Bye!"):
|
||||||
|
print("leaving channel {}".format(chan))
|
||||||
|
ircsock.send("PART {} {}\r\n".format(chan, msg).encode())
|
||||||
|
|
||||||
|
def quit(ircsock, msg="Quitting!"):
|
||||||
|
print("!! quitting !!")
|
||||||
|
ircsock.send("QUIT {}".format(msg).encode())
|
||||||
|
|
||||||
def joinchan(ircsock, chan):
|
def joinchan(ircsock, chan):
|
||||||
print("joining {}".format(chan))
|
print("joining {}".format(chan))
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python3
|
||||||
import fileinput
|
import fileinput
|
||||||
import time
|
import time
|
||||||
import calendar
|
import calendar
|
||||||
|
@ -7,7 +7,7 @@ import operator
|
||||||
|
|
||||||
MAX_NODES = 5
|
MAX_NODES = 5
|
||||||
|
|
||||||
logfile = "/home/jumblesale/Code/irc/log"
|
logfile = "/home/archangelic/irc/log"
|
||||||
timeCutoff = calendar.timegm(time.gmtime()) - (3 * 7 * 24 * 60 * 60) # 3 weeks
|
timeCutoff = calendar.timegm(time.gmtime()) - (3 * 7 * 24 * 60 * 60) # 3 weeks
|
||||||
|
|
||||||
nameFix = {
|
nameFix = {
|
||||||
|
@ -31,7 +31,7 @@ def whoSaid(word):
|
||||||
try:
|
try:
|
||||||
time, user, message = line.split("\t", 3)
|
time, user, message = line.split("\t", 3)
|
||||||
time = int(time)
|
time = int(time)
|
||||||
if nameFix.has_key(user):
|
if user in nameFix:
|
||||||
user = nameFix[user]
|
user = nameFix[user]
|
||||||
else:
|
else:
|
||||||
user = user.lower()
|
user = user.lower()
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
import urllib
|
import urllib
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
import random
|
import random
|
||||||
|
@ -9,7 +10,7 @@ def get_philosophy(word, max_steps=20):
|
||||||
|
|
||||||
url = "https://en.wikipedia.org/wiki/%s" % word
|
url = "https://en.wikipedia.org/wiki/%s" % word
|
||||||
while steps < max_steps:
|
while steps < max_steps:
|
||||||
soup = BeautifulSoup(urllib.urlopen(url).read(), "html.parser")
|
soup = BeautifulSoup(urllib.request.urlopen(url).read(), "html.parser")
|
||||||
title = soup.find("h1", id="firstHeading")
|
title = soup.find("h1", id="firstHeading")
|
||||||
content = soup.find("div", id="mw-content-text")
|
content = soup.find("div", id="mw-content-text")
|
||||||
if not content:
|
if not content:
|
||||||
|
@ -49,7 +50,7 @@ def get_philosophy_lower(word, max_steps=20):
|
||||||
|
|
||||||
url = "https://en.wikipedia.org/wiki/%s" % word
|
url = "https://en.wikipedia.org/wiki/%s" % word
|
||||||
while steps < max_steps:
|
while steps < max_steps:
|
||||||
soup = BeautifulSoup(urllib.urlopen(url).read(), "html.parser")
|
soup = BeautifulSoup(urllib.request.urlopen(url).read(), "html.parser")
|
||||||
title = soup.find("h1", id="firstHeading")
|
title = soup.find("h1", id="firstHeading")
|
||||||
content = soup.find("div", id="mw-content-text")
|
content = soup.find("div", id="mw-content-text")
|
||||||
if not content:
|
if not content:
|
||||||
|
|
Loading…
Reference in New Issue