#msgs now display origin of the message

This commit is contained in:
Juhani Haverinen 2016-03-25 23:15:50 +02:00
parent 18445efa27
commit 48d46a6304
1 changed files with 35 additions and 35 deletions

View File

@ -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':