Properly implement querying with API
This commit is contained in:
parent
ec943203d0
commit
a2b6ebd912
|
@ -499,5 +499,12 @@ class API(object):
|
|||
name = f"{net}{num}"
|
||||
if name not in main.IRCPool.keys():
|
||||
return dumps({"success": False, "reason": f"relay {num} not on {net}"})
|
||||
main.IRCPool[name].sendmsg(channel, msg)
|
||||
# We are in a query
|
||||
if channel == main.IRCPool[name].nickname:
|
||||
if "nick" not in data:
|
||||
return dumps({"success": False, "reason": "no nick specified to query"})
|
||||
else:
|
||||
main.IRCPool[name].sendmsg(data["nick"], msg, in_query=True)
|
||||
else:
|
||||
main.IRCPool[name].sendmsg(channel, msg)
|
||||
return dumps({"success": True, "message": f"sent message to {channel} on {name}"})
|
||||
|
|
12
core/bot.py
12
core/bot.py
|
@ -16,7 +16,7 @@ from twisted.words.protocols.irc import (
|
|||
|
||||
import main
|
||||
from core.relay import sendRelayNotification
|
||||
from modules import chankeep, counters, helpers, monitor, regproc, userinfo, userinfo
|
||||
from modules import chankeep, counters, helpers, monitor, regproc, userinfo
|
||||
from utils.dedup import dedup
|
||||
from utils.logging.debug import debug
|
||||
from utils.logging.log import error, log, warn
|
||||
|
@ -252,7 +252,7 @@ class IRCBot(IRCClient):
|
|||
def action(self, user, channel, msg):
|
||||
self.event(type="action", muser=user, channel=channel, msg=msg)
|
||||
|
||||
def sendmsg(self, channel, msg):
|
||||
def sendmsg(self, channel, msg, in_query=False):
|
||||
query = f"{self.nickname}!*@*"
|
||||
us = list(userinfo.getWhoSingle(self.net, query))
|
||||
if len(us) > 0:
|
||||
|
@ -262,8 +262,12 @@ class IRCBot(IRCClient):
|
|||
hostmask = f"{self.nickname}!*@{self.servername}"
|
||||
warn(f"Could not get a hostname, using {hostmask}")
|
||||
nick, ident, host = parsen(hostmask)
|
||||
self.event(type="self", mtype="msg", channel=channel, nick=self.nickname, ident=ident, host=host, msg=msg)
|
||||
self.event(type="msg", channel=channel, nick=self.nickname, ident=ident, host=host, msg=msg)
|
||||
# We sent someone a query reply
|
||||
if in_query:
|
||||
self.event(type="self", mtype="msg", channel=self.nickname, nick=channel, ident=ident, host=host, msg=msg)
|
||||
else:
|
||||
self.event(type="self", mtype="msg", channel=channel, nick=self.nickname, ident=ident, host=host, msg=msg)
|
||||
self.event(type="msg", channel=channel, nick=self.nickname, ident=ident, host=host, msg=msg)
|
||||
self.msg(channel, msg)
|
||||
|
||||
def get(self, var):
|
||||
|
|
Loading…
Reference in New Issue