Pass the raw class server instead of the name/index
This commit is contained in:
parent
db1e4e9266
commit
904a8b075d
@ -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:
|
||||
|
@ -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],
|
||||
|
Loading…
x
Reference in New Issue
Block a user