Use sender instead of nick in Response to allow sent by PM or over DCC, ...
This commit is contained in:
parent
99e91af2cb
commit
711cefe0c2
@ -207,7 +207,7 @@ class Message:
|
|||||||
# Treat ping
|
# Treat ping
|
||||||
if re.match(".*(m[' ]?entends?[ -]+tu|h?ear me|do you copy|ping)",
|
if re.match(".*(m[' ]?entends?[ -]+tu|h?ear me|do you copy|ping)",
|
||||||
messagel) is not None:
|
messagel) is not None:
|
||||||
return Response(message="pong", channel=self.channel, nick=self.nick)
|
return Response(self.sender, message="pong", channel=self.channel, nick=self.nick)
|
||||||
|
|
||||||
# Ask hooks
|
# Ask hooks
|
||||||
else:
|
else:
|
||||||
@ -261,7 +261,7 @@ class Message:
|
|||||||
elif self.cmd[0] == "more":
|
elif self.cmd[0] == "more":
|
||||||
if self.channel == self.srv.nick:
|
if self.channel == self.srv.nick:
|
||||||
if self.nick in self.srv.moremessages:
|
if self.nick in self.srv.moremessages:
|
||||||
return self.srv.moremessages[self.nick]
|
return self.srv.moremessages[self.sender]
|
||||||
else:
|
else:
|
||||||
if self.channel in self.srv.moremessages:
|
if self.channel in self.srv.moremessages:
|
||||||
return self.srv.moremessages[self.channel]
|
return self.srv.moremessages[self.channel]
|
||||||
@ -271,7 +271,7 @@ class Message:
|
|||||||
self.srv.send_dcc("Test DCC", self.sender)
|
self.srv.send_dcc("Test DCC", self.sender)
|
||||||
elif self.cmd[0] == "pvdcctest":
|
elif self.cmd[0] == "pvdcctest":
|
||||||
print("dcctest")
|
print("dcctest")
|
||||||
return Response(message="Test DCC", nick=self.nick)
|
return Response(self.sender, message="Test DCC")
|
||||||
elif self.cmd[0] == "dccsendtest":
|
elif self.cmd[0] == "dccsendtest":
|
||||||
print("dccsendtest")
|
print("dccsendtest")
|
||||||
conn = DCC(self.srv, self.sender)
|
conn = DCC(self.srv, self.sender)
|
||||||
|
16
response.py
16
response.py
@ -16,8 +16,11 @@
|
|||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import traceback
|
||||||
|
import sys
|
||||||
|
|
||||||
class Response:
|
class Response:
|
||||||
def __init__(self, message=None, channel=None, nick=None, server=None,
|
def __init__(self, sender, message=None, channel=None, nick=None, server=None,
|
||||||
nomore="No more message", title=None, more="(suite) "):
|
nomore="No more message", title=None, more="(suite) "):
|
||||||
self.nomore = nomore
|
self.nomore = nomore
|
||||||
self.more = more
|
self.more = more
|
||||||
@ -29,8 +32,19 @@ class Response:
|
|||||||
|
|
||||||
self.channel = channel
|
self.channel = channel
|
||||||
self.nick = nick
|
self.nick = nick
|
||||||
|
self.set_sender(sender)
|
||||||
self.alone = True
|
self.alone = True
|
||||||
|
|
||||||
|
def set_sender(self, sender):
|
||||||
|
if sender is None or sender.find("!") < 0:
|
||||||
|
if sender is not None:
|
||||||
|
print("\033[1;35mWarning:\033[0m bad sender provided in Response, it will be ignored.")
|
||||||
|
exc_type, exc_value, exc_traceback = sys.exc_info()
|
||||||
|
traceback.print_exception(exc_type, exc_value, exc_traceback)
|
||||||
|
self.sender = None
|
||||||
|
else:
|
||||||
|
self.sender = sender
|
||||||
|
|
||||||
def append_message(self, message):
|
def append_message(self, message):
|
||||||
self.alone = False
|
self.alone = False
|
||||||
self.messages.append(message)
|
self.messages.append(message)
|
||||||
|
@ -111,16 +111,16 @@ class Server(threading.Thread):
|
|||||||
self.s.send(("PONG %s\r\n" % cnt).encode ())
|
self.s.send(("PONG %s\r\n" % cnt).encode ())
|
||||||
|
|
||||||
def send_response(self, res):
|
def send_response(self, res):
|
||||||
if res.channel is not None:
|
if res.channel is not None and res.channel != self.nick:
|
||||||
self.send_msg(res.channel, res.get_message())
|
self.send_msg(res.channel, res.get_message())
|
||||||
|
|
||||||
if not res.alone:
|
if not res.alone:
|
||||||
self.moremessages[res.channel] = res
|
self.moremessages[res.channel] = res
|
||||||
elif res.nick is not None:
|
elif res.sender is not None:
|
||||||
self.send_msg_usr(res.nick, res.get_message())
|
self.send_msg_usr(res.sender, res.get_message())
|
||||||
|
|
||||||
if not res.alone:
|
if not res.alone:
|
||||||
self.moremessages[res.nick] = res
|
self.moremessages[res.sender] = res
|
||||||
|
|
||||||
def send_ctcp(self, to, msg, cmd = "NOTICE", endl = "\r\n"):
|
def send_ctcp(self, to, msg, cmd = "NOTICE", endl = "\r\n"):
|
||||||
"""Send a message as CTCP response"""
|
"""Send a message as CTCP response"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user