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
|
||||
if re.match(".*(m[' ]?entends?[ -]+tu|h?ear me|do you copy|ping)",
|
||||
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
|
||||
else:
|
||||
@ -261,7 +261,7 @@ class Message:
|
||||
elif self.cmd[0] == "more":
|
||||
if self.channel == self.srv.nick:
|
||||
if self.nick in self.srv.moremessages:
|
||||
return self.srv.moremessages[self.nick]
|
||||
return self.srv.moremessages[self.sender]
|
||||
else:
|
||||
if self.channel in self.srv.moremessages:
|
||||
return self.srv.moremessages[self.channel]
|
||||
@ -271,7 +271,7 @@ class Message:
|
||||
self.srv.send_dcc("Test DCC", self.sender)
|
||||
elif self.cmd[0] == "pvdcctest":
|
||||
print("dcctest")
|
||||
return Response(message="Test DCC", nick=self.nick)
|
||||
return Response(self.sender, message="Test DCC")
|
||||
elif self.cmd[0] == "dccsendtest":
|
||||
print("dccsendtest")
|
||||
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
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import traceback
|
||||
import sys
|
||||
|
||||
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) "):
|
||||
self.nomore = nomore
|
||||
self.more = more
|
||||
@ -29,8 +32,19 @@ class Response:
|
||||
|
||||
self.channel = channel
|
||||
self.nick = nick
|
||||
self.set_sender(sender)
|
||||
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):
|
||||
self.alone = False
|
||||
self.messages.append(message)
|
||||
|
@ -111,16 +111,16 @@ class Server(threading.Thread):
|
||||
self.s.send(("PONG %s\r\n" % cnt).encode ())
|
||||
|
||||
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())
|
||||
|
||||
if not res.alone:
|
||||
self.moremessages[res.channel] = res
|
||||
elif res.nick is not None:
|
||||
self.send_msg_usr(res.nick, res.get_message())
|
||||
elif res.sender is not None:
|
||||
self.send_msg_usr(res.sender, res.get_message())
|
||||
|
||||
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"):
|
||||
"""Send a message as CTCP response"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user