This commit is contained in:
2016-06-01 21:03:15 +02:00
parent c42113d712
commit 27d0d313d2
27 changed files with 1657 additions and 1518 deletions

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
# -*- coding: utf-8
# Copyright (C) 2011 Stefan Hacker <dd0t@users.sourceforge.net>
@@ -34,19 +34,20 @@
# This module allows asking the server for the last time it saw a specific player
#
from mumo_module import (commaSeperatedIntegers,
MumoModule)
from datetime import timedelta
from config import commaSeperatedIntegers
from mumo_module import MumoModule
class seen(MumoModule):
default_config = {'seen':(
('servers', commaSeperatedIntegers, []),
('keyword', str, '!seen')
)
}
def __init__(self, name, manager, configuration = None):
default_config = {'seen': (
('servers', commaSeperatedIntegers, []),
('keyword', str, '!seen')
)
}
def __init__(self, name, manager, configuration=None):
MumoModule.__init__(self, name, manager, configuration)
self.murmur = manager.getMurmurModule()
self.keyword = self.cfg().seen.keyword
@@ -55,31 +56,33 @@ class seen(MumoModule):
manager = self.manager()
log = self.log()
log.debug("Register for Server callbacks")
servers = self.cfg().seen.servers
if not servers:
servers = manager.SERVERS_ALL
manager.subscribeServerCallbacks(self, servers)
def disconnected(self): pass
def disconnected(self):
pass
def sendMessage(self, server, user, message, msg):
if message.channels:
server.sendMessageChannel(user.channel, False, msg)
else:
server.sendMessage(user.session, msg)
server.sendMessage(message.sessions[0], msg)
#
#--- Server callback functions
# --- Server callback functions
#
def userTextMessage(self, server, user, message, current=None):
if message.text.startswith(self.keyword) and \
(len(message.sessions) == 1 or
(len(message.channels) == 1 and \
message.channels[0] == user.channel)):
(len(message.sessions) == 1 or
(len(message.channels) == 1 and \
message.channels[0] == user.channel)):
tuname = message.text[len(self.keyword):].strip()
self.log().debug("User %s (%d|%d) on server %d asking for '%s'",
user.name, user.session, user.userid, server.id(), tuname)
@@ -89,35 +92,43 @@ class seen(MumoModule):
msg = "User '%s' knows how to spell his name" % tuname
self.sendMessage(server, user, message, msg)
return
# Check online users
for cuser in server.getUsers().itervalues():
for cuser in server.getUsers().values():
if tuname == cuser.name:
msg = "User '%s' is currently online, has been idle for %s" % (tuname,
timedelta(seconds=cuser.idlesecs))
timedelta(seconds=cuser.idlesecs))
self.sendMessage(server, user, message, msg)
return
# Check registrations
for cuid, cuname in server.getRegisteredUsers(tuname).iteritems():
for cuid, cuname in server.getRegisteredUsers(tuname).items():
if cuname == tuname:
ureg = server.getRegistration(cuid)
if ureg:
msg = "User '%s' was last seen %s UTC" % (tuname,
ureg[self.murmur.UserInfo.UserLastActive])
ureg[self.murmur.UserInfo.UserLastActive])
self.sendMessage(server, user, message, msg)
return
msg = "I don't know who user '%s' is" % tuname
self.sendMessage(server, user, message, msg)
def userConnected(self, server, state, context = None): pass
def userDisconnected(self, server, state, context = None): pass
def userStateChanged(self, server, state, context = None): pass
def channelCreated(self, server, state, context = None): pass
def channelRemoved(self, server, state, context = None): pass
def channelStateChanged(self, server, state, context = None): pass
def userConnected(self, server, state, context=None):
pass
def userDisconnected(self, server, state, context=None):
pass
def userStateChanged(self, server, state, context=None):
pass
def channelCreated(self, server, state, context=None):
pass
def channelRemoved(self, server, state, context=None):
pass
def channelStateChanged(self, server, state, context=None):
pass