1
0
Fork 0

Pass the raw class server instead of the name/index

This commit is contained in:
nemunaire 2017-07-16 16:54:59 +02:00
parent db1e4e9266
commit 904a8b075d
2 changed files with 10 additions and 7 deletions

View File

@ -14,6 +14,9 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from nemubot.hooks import Abstract as AbstractHook
from nemubot.server.abstract import AbstractServer
class _ModuleContext:
def __init__(self, module=None):
@ -37,12 +40,10 @@ class _ModuleContext:
return module_state.ModuleState("nemubotstate")
def add_hook(self, hook, *triggers):
from nemubot.hooks import Abstract as AbstractHook
assert isinstance(hook, AbstractHook), hook
self.hooks.append((triggers, hook))
def del_hook(self, hook, *triggers):
from nemubot.hooks import Abstract as AbstractHook
assert isinstance(hook, AbstractHook), hook
self.hooks.remove((triggers, hook))
@ -67,7 +68,9 @@ class _ModuleContext:
self.context.datastore.save(self.module_name, self.data)
def subparse(self, orig, cnt):
if orig.server in self.context.servers:
if isinstance(orig.server, AbstractServer):
return orig.server.subparse(orig, cnt)
elif orig.server in self.context.servers:
return self.context.servers[orig.server].subparse(orig, cnt)
@property
@ -115,13 +118,11 @@ class ModuleContext(_ModuleContext):
return self.context.datastore.load(self.module_name)
def add_hook(self, hook, *triggers):
from nemubot.hooks import Abstract as AbstractHook
assert isinstance(hook, AbstractHook), hook
self.hooks.append((triggers, hook))
return self.context.treater.hm.add_hook(hook, *triggers)
def del_hook(self, hook, *triggers):
from nemubot.hooks import Abstract as AbstractHook
assert isinstance(hook, AbstractHook), hook
self.hooks.remove((triggers, hook))
return self.context.treater.hm.del_hooks(*triggers, hook=hook)
@ -136,7 +137,9 @@ class ModuleContext(_ModuleContext):
return self.context.del_event(evt, module_src=self.module)
def send_response(self, server, res):
if server in self.context.servers:
if isinstance(server, AbstractServer):
server.send_response(res)
elif server in self.context.servers:
if res.server is not None:
return self.context.servers[res.server].send_response(res)
else:

View File

@ -146,7 +146,7 @@ class IRC(Abstract):
receivers = self.decode(self.params[0]).split(',')
common_args = {
"server": srv.name,
"server": srv,
"date": self.tags["time"],
"to": receivers,
"to_response": [r if r != srv.nick else self.nick for r in receivers],