Kevin fixes

This commit is contained in:
Neale Pickett 2009-10-02 16:38:25 -06:00
parent 9157577b54
commit 597748984b
8 changed files with 38 additions and 16 deletions

View File

@ -73,7 +73,3 @@ p {
margin-bottom: 20px;
color: #f4f4f4;
}
.center {
text-align: center;
}

View File

@ -71,7 +71,7 @@
</p>
<p>
There are two kinds of categories: <em>flags</em>,
There are two kinds of categories: <em>flags</em>
and <em>puzzles</em>.
</p>

View File

@ -256,7 +256,7 @@ class User(Recipient):
return 'User(%s, %s, %s)' % (self.name(), self.user, self.host)
def recipient(interface, name):
if name[0] in ["&", "#"]:
if name[0] in ['&', '#', '+']:
return Channel(interface, name)
else:
return User(interface, name, None, None)
@ -384,7 +384,7 @@ class SmartIRCHandler(IRCHandler):
int(op)
except ValueError:
self.dbg("WARNING: unknown server code: %s" % op)
addl = tuple(args[3:]) + (text,)
addl = tuple(args[2:]) + (text,)
try:
self.handle_cooked(op, sender, forum, addl)
@ -395,13 +395,13 @@ class SmartIRCHandler(IRCHandler):
def handle_cooked(self, op, sender, forum, addl):
try:
func = getattr(self, 'cmd_' + op.lower())
func = getattr(self, 'cmd_' + op.upper())
except AttributeError:
self.unhandled(op, sender, forum, addl)
return
func(sender, forum, addl)
def cmd_ping(self, sender, forum, addl):
def cmd_PING(self, sender, forum, addl):
self.write(['PONG'], addl[0])
def unhandled(self, op, sender, forum, addl):
@ -469,9 +469,21 @@ class Bot(SmartIRCHandler):
self.announce('*bzert*')
def cmd_001(self, sender, forum, addl):
# Welcome to IRC
self.nick = addl[0]
for c in self.channels:
self.write(['JOIN'], c)
def cmd_433(self, sender, forum, addl):
# Nickname already in use
self.nicks.append(self.nicks.pop(0))
self.write(['NICK', self.nicks[0]])
def cmd_NICK(self, sender, forum, addl):
if addl[0] == self.nick:
self.nick = sender.name()
print(self.nick)
def writable(self):
if not self.waiting:
return asynchat.async_chat.writable(self)

View File

@ -41,16 +41,29 @@ class Flagger(asynchat.async_chat):
class Kevin(irc.Bot):
def __init__(self, host, flagger, tokens, victims):
irc.Bot.__init__(self, host, ['kevin'], 'Kevin', ['#kevin'])
irc.Bot.__init__(self, host,
['kevin', 'kev', 'kevin_', 'kev_', 'kevinm', 'kevinm_'],
'Kevin',
['+kevin'])
self.flagger = flagger
self.tokens = tokens
self.victims = victims
self.affiliation = {}
def cmd_join(self, sender, forum, addl):
if sender.name() in self.nicks:
def cmd_001(self, sender, forum, addl):
self.write(['OPER', 'bot', 'BottyMcBotpants'])
irc.Bot.cmd_001(self, sender, forum, addl)
def cmd_JOIN(self, sender, forum, addl):
if sender.name == self.nick:
self.tell_flag(forum)
def cmd_381(self, sender, forum, addl):
# You are now an IRC Operator
if self.nick != 'kevin':
self.write(['KILL', 'kevin'], 'You are not kevin. I am kevin.')
self.write(['NICK', 'kevin'])
def err(self, exception):
"""Save the traceback for later inspection"""
irc.Bot.err(self, exception)
@ -71,7 +84,7 @@ class Kevin(irc.Bot):
def tell_flag(self, forum):
forum.msg('%s has the flag.' % (self.flagger.flag or nobody))
def cmd_privmsg(self, sender, forum, addl):
def cmd_PRIVMSG(self, sender, forum, addl):
text = addl[0]
if text.startswith('!'):
parts = text[1:].lower().split(' ', 1)

View File

@ -10,7 +10,7 @@ print '''
<html>
<head>
<title>1</title>
<link rel="stylesheet" type="text/css" href="../ctf.css" media="all" />
<link rel="stylesheet" type="text/css" href="ctf.css" media="all" />
<!-- key = ktFfb8R1Bw -->
</head>
<body>

View File

Before

Width:  |  Height:  |  Size: 626 B

After

Width:  |  Height:  |  Size: 626 B

View File

@ -5,6 +5,7 @@ import os
import config
import teams
import points
import sys
flags_dir = config.get('global', 'flags_dir')
house_team = config.get('global', 'house_team')
@ -38,7 +39,7 @@ def main():
fn = os.path.join(flags_dir, cat)
team = open(fn).read() or house_team
print(' <br/>')
print(' <!-- flag: %s --> flag: <span style="color: #%s">%s</span>'
print(' <!-- flag: %s --> <span style="color: #%s" title="flag holder">%s</span>'
% (cat, teams.color(team), team))
except IOError:
pass
@ -67,7 +68,7 @@ def main():
print('</tr>')
print('''</table>
<p class="center">
<p class="histogram">
<img src="histogram.png" alt="scores over time" />
</p>