Fixed a bug in external_connections.
This commit is contained in:
parent
6e46158946
commit
90a64a3780
2 changed files with 23 additions and 24 deletions
|
|
@ -70,7 +70,7 @@ class IRC_Bot(irc.IRCClient):
|
||||||
if conn.channel:
|
if conn.channel:
|
||||||
conn.to_channel(msg)
|
conn.to_channel(msg)
|
||||||
|
|
||||||
def msg_irc(self, msg, from_obj=None):
|
def msg_irc(self, msg, senders=None):
|
||||||
"""
|
"""
|
||||||
Called by evennia when sending something to mapped IRC channel.
|
Called by evennia when sending something to mapped IRC channel.
|
||||||
|
|
||||||
|
|
@ -131,7 +131,7 @@ def create_connection(channel, irc_network, irc_port, irc_channel, irc_bot_nick)
|
||||||
# how the channel will be able to contact this protocol
|
# how the channel will be able to contact this protocol
|
||||||
send_code = "from src.comms.irc import IRC_CHANNELS\n"
|
send_code = "from src.comms.irc import IRC_CHANNELS\n"
|
||||||
send_code += "matched_ircs = [irc for irc in IRC_CHANNELS if irc.factory.key == '%s']\n" % key
|
send_code += "matched_ircs = [irc for irc in IRC_CHANNELS if irc.factory.key == '%s']\n" % key
|
||||||
send_code += "[irc.msg_irc(message, from_obj=from_obj) for irc in matched_ircs]\n"
|
send_code += "[irc.msg_irc(message, senders=[self]) for irc in matched_ircs]\n"
|
||||||
conn = ExternalChannelConnection(db_channel=channel, db_external_key=key, db_external_send_code=send_code,
|
conn = ExternalChannelConnection(db_channel=channel, db_external_key=key, db_external_send_code=send_code,
|
||||||
db_external_config=config)
|
db_external_config=config)
|
||||||
conn.save()
|
conn.save()
|
||||||
|
|
|
||||||
|
|
@ -118,9 +118,8 @@ class Msg(SharedMemoryModel):
|
||||||
#@sender.setter
|
#@sender.setter
|
||||||
def __senders_set(self, value):
|
def __senders_set(self, value):
|
||||||
"Setter. Allows for self.sender = value"
|
"Setter. Allows for self.sender = value"
|
||||||
values = make_iter(value)
|
for val in make_iter(value):
|
||||||
for value in values:
|
obj, typ = identify_object(val)
|
||||||
obj, typ = identify_object(value)
|
|
||||||
if typ == 'player':
|
if typ == 'player':
|
||||||
self.db_sender_players.add(obj)
|
self.db_sender_players.add(obj)
|
||||||
elif typ == 'object':
|
elif typ == 'object':
|
||||||
|
|
@ -141,11 +140,10 @@ class Msg(SharedMemoryModel):
|
||||||
self.save()
|
self.save()
|
||||||
senders = property(__senders_get, __senders_set, __senders_del)
|
senders = property(__senders_get, __senders_set, __senders_del)
|
||||||
|
|
||||||
def remove_sender(self, obj):
|
def remove_sender(self, value):
|
||||||
"Remove a single sender or a list of senders"
|
"Remove a single sender or a list of senders"
|
||||||
objs = make_iter(obj)
|
for val in make_iter(value):
|
||||||
for obj in objs:
|
obj, typ = identify_object(val)
|
||||||
obj, typ = identify_object(obj)
|
|
||||||
if typ == 'player':
|
if typ == 'player':
|
||||||
self.db_sender_players.remove(obj)
|
self.db_sender_players.remove(obj)
|
||||||
elif typ == 'object':
|
elif typ == 'object':
|
||||||
|
|
@ -165,16 +163,17 @@ class Msg(SharedMemoryModel):
|
||||||
#@receivers.setter
|
#@receivers.setter
|
||||||
def __receivers_set(self, value):
|
def __receivers_set(self, value):
|
||||||
"Setter. Allows for self.receivers = value. This appends a new receiver to the message."
|
"Setter. Allows for self.receivers = value. This appends a new receiver to the message."
|
||||||
obj, typ = identify_object(value)
|
for val in make_iter(value):
|
||||||
if typ == 'player':
|
obj, typ = identify_object(val)
|
||||||
self.db_receivers_players.add(obj)
|
if typ == 'player':
|
||||||
elif typ == 'object':
|
self.db_receivers_players.add(obj)
|
||||||
self.db_receivers_objects.add(obj)
|
elif typ == 'object':
|
||||||
elif not obj:
|
self.db_receivers_objects.add(obj)
|
||||||
return
|
elif not obj:
|
||||||
else:
|
return
|
||||||
raise ValueError
|
else:
|
||||||
self.save()
|
raise ValueError
|
||||||
|
self.save()
|
||||||
#@receivers.deleter
|
#@receivers.deleter
|
||||||
def __receivers_del(self):
|
def __receivers_del(self):
|
||||||
"Deleter. Clears all receivers"
|
"Deleter. Clears all receivers"
|
||||||
|
|
@ -202,8 +201,8 @@ class Msg(SharedMemoryModel):
|
||||||
#@channels.setter
|
#@channels.setter
|
||||||
def __channels_set(self, value):
|
def __channels_set(self, value):
|
||||||
"Setter. Allows for self.channels = value. Requires a channel to be added."
|
"Setter. Allows for self.channels = value. Requires a channel to be added."
|
||||||
if value:
|
for val in make_iter(value):
|
||||||
self.db_receivers_channels.add(value)
|
self.db_receivers_channels.add(val)
|
||||||
#@channels.deleter
|
#@channels.deleter
|
||||||
def __channels_del(self):
|
def __channels_del(self):
|
||||||
"Deleter. Allows for del self.channels"
|
"Deleter. Allows for del self.channels"
|
||||||
|
|
@ -810,14 +809,14 @@ class ExternalChannelConnection(SharedMemoryModel):
|
||||||
"Send external -> channel"
|
"Send external -> channel"
|
||||||
if not from_obj:
|
if not from_obj:
|
||||||
from_obj = self.external_key
|
from_obj = self.external_key
|
||||||
self.channel.msg(message, from_obj=from_obj)
|
self.channel.msg(message, senders=[self])
|
||||||
|
|
||||||
def to_external(self, message, from_obj=None, from_channel=None):
|
def to_external(self, message, senders=None, from_channel=None):
|
||||||
"Send channel -> external"
|
"Send channel -> external"
|
||||||
|
|
||||||
# make sure we are not echoing back our own message to ourselves
|
# make sure we are not echoing back our own message to ourselves
|
||||||
# (this would result in a nasty infinite loop)
|
# (this would result in a nasty infinite loop)
|
||||||
if from_obj == self.external_key:
|
if self in make_iter(senders):#.external_key:
|
||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue