ircbotlib.reply_destination_for_event

common idiom that'll only get used more and more, so might as well make
a library method of it
This commit is contained in:
Brian S. Stephan 2015-05-12 22:33:09 -05:00
parent 8c39b017d3
commit 14e5fb4d6f
2 changed files with 18 additions and 8 deletions

View File

@ -377,10 +377,7 @@ class IRCBot(irc.client.SimpleIRCClient):
dest = None
if feedback:
if irc.client.is_channel(event.target):
dest = event.target
else:
dest = irc.client.NickMask(event.source).nick
dest = ircbotlib.reply_destination_for_event(event)
for path, plugin in self.plugins:
if plugin_path == path:
@ -421,10 +418,7 @@ class IRCBot(irc.client.SimpleIRCClient):
log.debug(u"trying to unload %s", plugin_path)
if irc.client.is_channel(event.target):
dest = event.target
else:
dest = irc.client.NickMask(event.source).nick
dest = ircbotlib.reply_destination_for_event(event)
for path, plugin in self.plugins:
if plugin_path == path:

View File

@ -2,6 +2,8 @@
import logging
import irc.client
from ircbot.models import BotAdmin
@ -40,3 +42,17 @@ def is_admin(source):
return True
log.debug(u"in is_admin; False")
return False
def reply_destination_for_event(event):
"""Get the "natural" reply destination for an event.
If the event appears to be from a person within a channel, the channel
is the reply destination. Otherwise, the source (assumed to be the speaker
in a privmsg)'s nick is the reply destination.
"""
if irc.client.is_channel(event.target):
return event.target
else:
return irc.client.NickMask(event.source).nick