Fix query handling and don't send a fake message

This commit is contained in:
Mark Veidemanis 2022-08-15 17:59:31 +01:00
parent e4c1d80250
commit 0b69893e17
2 changed files with 13 additions and 5 deletions

View File

@ -608,13 +608,21 @@ class API(object):
if name not in main.IRCPool.keys():
return dumps({"success": False, "reason": f"relay {num} not on {net}"})
# We are in a query
in_query = False
if "nick" in data:
nick = data["nick"]
if nick == channel:
in_query = True
else:
nick = None
if channel == main.IRCPool[name].nickname:
if "nick" not in data:
in_query = True
if nick:
return dumps({"success": False, "reason": "no nick specified to query"})
else:
main.IRCPool[name].sendmsg(data["nick"], msg, in_query=True)
main.IRCPool[name].sendmsg(nick, msg, in_query=in_query)
else:
main.IRCPool[name].sendmsg(channel, msg)
main.IRCPool[name].sendmsg(channel, msg, in_query=in_query)
return dumps({"success": True, "message": f"sent message to {channel} on {name}"})
@app.route("/irc/nick/<net>/<num>/", methods=["GET"])

View File

@ -272,7 +272,7 @@ class IRCBot(IRCClient):
hostmask = us[0]
else:
# Close enough...
hostmask = f"{self.nickname}!*@{self.servername}"
hostmask = f"{self.nickname}!{self.nickname}@{self.servername}"
warn(f"Could not get a hostname, using {hostmask}")
nick, ident, host = parsen(hostmask)
# We sent someone a query reply
@ -280,7 +280,7 @@ class IRCBot(IRCClient):
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.event(type="msg", channel=channel, nick=self.nickname, ident=ident, host=host, msg=msg)
self.msg(channel, msg)
def get(self, var):