#msgs now display origin of the message
This commit is contained in:
parent
18445efa27
commit
48d46a6304
70
botcmd.py
70
botcmd.py
|
@ -16,7 +16,7 @@ trustedlock = threading.Lock()
|
||||||
gods = {}
|
gods = {}
|
||||||
godslock = threading.Lock()
|
godslock = threading.Lock()
|
||||||
|
|
||||||
# receiver: [(sender1, message1), (sender2, message2), ..., (senderN, messageN)]
|
# receiver: [(sender1, origin1, message1), (sender2, origin2, message2), ..., (senderN, origin2, messageN)]
|
||||||
msgs = {}
|
msgs = {}
|
||||||
msgslock = threading.Lock()
|
msgslock = threading.Lock()
|
||||||
|
|
||||||
|
@ -72,34 +72,32 @@ cron.start()
|
||||||
def loadmessages():
|
def loadmessages():
|
||||||
global msgs, msgslock
|
global msgs, msgslock
|
||||||
|
|
||||||
msgslock.acquire()
|
with msgslock:
|
||||||
msgs = {}
|
msgs = {}
|
||||||
f = open('msgs.txt', 'r')
|
f = open('msgs.txt', 'r')
|
||||||
|
|
||||||
for line in f:
|
for line in f:
|
||||||
while len(line) > 0 and line[-1] == '\n':
|
while len(line) > 0 and line[-1] == '\n':
|
||||||
line = line[:-1]
|
line = line[:-1]
|
||||||
if len(line.split('\t')) == 3:
|
if len(line.split('\t')) == 4:
|
||||||
receiver, sender, msg = line.split('\t')
|
receiver, sender, origin, msg = line.split('\t')
|
||||||
if receiver not in msgs:
|
if receiver not in msgs:
|
||||||
msgs[receiver] = []
|
msgs[receiver] = []
|
||||||
msgs[receiver].append((sender, msg))
|
msgs[receiver].append((sender, origin, msg))
|
||||||
|
|
||||||
f.close()
|
f.close()
|
||||||
msgslock.release()
|
|
||||||
|
|
||||||
def savemessages():
|
def savemessages():
|
||||||
global msgs, msgslock
|
global msgs, msgslock
|
||||||
|
|
||||||
msgslock.acquire()
|
with msgslock:
|
||||||
f=open('msgs.txt', 'w')
|
f=open('msgs.txt', 'w')
|
||||||
|
|
||||||
for receiver in msgs:
|
for receiver in msgs:
|
||||||
for sender, msg in msgs[receiver]:
|
for sender, origin, msg in msgs[receiver]:
|
||||||
f.write('%s\t%s\t%s\n' % (receiver, sender, msg))
|
f.write('%s\t%s\t%s\t%s\n' % (receiver, sender, origin, msg))
|
||||||
|
|
||||||
f.close()
|
f.close()
|
||||||
msgslock.release()
|
|
||||||
|
|
||||||
loadmessages()
|
loadmessages()
|
||||||
|
|
||||||
|
@ -478,11 +476,14 @@ def parse((line, irc)):
|
||||||
elif matchcmd(cmdline, '#msg'):
|
elif matchcmd(cmdline, '#msg'):
|
||||||
if matchcmd(cmdline, '#msg', 'nick {message}'):
|
if matchcmd(cmdline, '#msg', 'nick {message}'):
|
||||||
msgnick, message = parsecmd(cmdline, 'nick {message}')
|
msgnick, message = parsecmd(cmdline, 'nick {message}')
|
||||||
msgslock.acquire()
|
if chan == nick: # In a query:
|
||||||
if msgnick not in msgs:
|
origin = "[query]"
|
||||||
msgs[msgnick] = []
|
else: # In a channel
|
||||||
msgs[msgnick].append((nick, message))
|
origin = chan
|
||||||
msgslock.release()
|
with msgslock:
|
||||||
|
if msgnick not in msgs:
|
||||||
|
msgs[msgnick] = []
|
||||||
|
msgs[msgnick].append((nick, origin, message))
|
||||||
else:
|
else:
|
||||||
irc.msg(reply, zwsp + 'Usage: #msg nick message')
|
irc.msg(reply, zwsp + 'Usage: #msg nick message')
|
||||||
elif matchcmd(cmdline, '#trusted?'):
|
elif matchcmd(cmdline, '#trusted?'):
|
||||||
|
@ -625,11 +626,10 @@ def parse((line, irc)):
|
||||||
elif line[1] == '482':
|
elif line[1] == '482':
|
||||||
irc.msg(line[3], zwsp + 'Not op')
|
irc.msg(line[3], zwsp + 'Not op')
|
||||||
|
|
||||||
msgslock.acquire()
|
with msgslock:
|
||||||
if (line[1] == 'PRIVMSG' or line[1] == 'JOIN') and nick in msgs:
|
if (line[1] == 'PRIVMSG' or line[1] == 'JOIN') and nick in msgs:
|
||||||
for sender, msg in msgs.pop(nick):
|
for sender, origin, msg in msgs.pop(nick):
|
||||||
irc.msg(nick, '<%s> %s' % (sender, msg))
|
irc.msg(nick, '%s <%s> %s' % (origin, sender, msg))
|
||||||
msgslock.release()
|
|
||||||
|
|
||||||
def execcmd(cmdline):
|
def execcmd(cmdline):
|
||||||
if cmdline[0] == '/q':
|
if cmdline[0] == '/q':
|
||||||
|
|
Loading…
Reference in New Issue