示例#1
0
文件: ack.py 项目: ryandub/helpbot
def process_message(data):
    if data.get('text', '').split()[0] == '!ack':
        admin_channel, botname, icon_emoji = utils.setup_bot(config)
        message_attrs = {'icon_emoji': icon_emoji, 'username': botname}
        channel = data.get('channel')

        # Only allow !ack from admin_channel
        admin_channel_id = utils.get_channel_id_by_name(
            admin_channel, slack_client)
        if admin_channel_id not in channel:
            return

        acktext = data['text'].split()
        user = data.get('user')
        username = utils.get_user_name(user, slack_client)
        if len(acktext) > 1:
            ack_channel = acktext[1].strip('#')
        else:
            text = ("%s - to acknowledge help requests, type "
                    "`!ack <channel>`" % username)
            outputs.append([channel, text, message_attrs])
            return
        ack_channel_id = utils.get_channel_id_by_name(ack_channel,
                                                      slack_client)
        invite = utils.invite_user(user, ack_channel_id, slack_client)
        if invite['ok']:
            logging.info("Invited %s to %s channel." % (username, ack_channel))
        else:
            text = (
                "Failed to invite %s to %s"
                " channel - %s" %
                (username, ack_channel, invite.get('error', 'Unknown error!')))
            logging.info(text)
            outputs.append([channel, text, message_attrs])
            return
        halps = helps.Helps(config['redis'])
        count = halps.ack_help(ack_channel, username)
        text = ":angel: %s has acknowledged help for %s!" % (username,
                                                             ack_channel)

        if count is not None and count > 0.0:
            text = text + " %s has acknowledged %d requests for help since tracking began." % (
                username, count)

        outputs.append([channel, text, message_attrs])
示例#2
0
文件: ack.py 项目: Gifflen/helpbot
def process_message(data):
    if data.get('text', '').startswith('!ack'):
        admin_channel, botname, icon_emoji = utils.setup_bot(config)
        message_attrs = {'icon_emoji': icon_emoji, 'username': botname}
        channel = data.get('channel')

        # Only allow !invite from admin_channel
        admin_channel_id = utils.get_channel_id_by_name(admin_channel,
                                                        slack_client)
        if admin_channel_id not in channel:
            return
        
        acktext = data['text'].split(' ')
        user = data.get('user')
        username = utils.get_user_name(user, slack_client)
        if len(acktext) > 1:
            ack_channel = acktext[1].strip('#')
        else:
            text = ("%s - to acknowledge help requests, type "
                    "`!ack <channel>`" % username)
            outputs.append([channel, text, message_attrs])
            return
        ack_channel_id = utils.get_channel_id_by_name(ack_channel,
                                                      slack_client)
        invite = utils.invite_user(user, ack_channel_id, slack_client)
        if invite['ok']:
            logging.info("Invited %s to %s channel." % (username, ack_channel))
        else:
            text = ("Failed to invite %s to %s"
                    " channel - %s" % (username, ack_channel,
                                       invite.get('error', 'Unknown error!')))
            logging.info(text)
            outputs.append([channel, text, message_attrs])
            return
        halps = helps.Helps(config['redis'])
        halps.ack(ack_channel)
        text = ":angel: %s has acknowledged help for %s!" % (username,
                                                             ack_channel)
        outputs.append([channel, text, message_attrs])
示例#3
0
文件: ack.py 项目: martinb3/helpbot
def process_message(data):
    if data.get("text", "").split(" ")[0] == "!ack":
        admin_channel, botname, icon_emoji = utils.setup_bot(config)
        message_attrs = {"icon_emoji": icon_emoji, "username": botname}
        channel = data.get("channel")

        # Only allow !ack from admin_channel
        admin_channel_id = utils.get_channel_id_by_name(admin_channel, slack_client)
        if admin_channel_id not in channel:
            return

        acktext = data["text"].split(" ")
        user = data.get("user")
        username = utils.get_user_name(user, slack_client)
        if len(acktext) > 1:
            ack_channel = acktext[1].strip("#")
        else:
            text = "%s - to acknowledge help requests, type " "`!ack <channel>`" % username
            outputs.append([channel, text, message_attrs])
            return
        ack_channel_id = utils.get_channel_id_by_name(ack_channel, slack_client)
        invite = utils.invite_user(user, ack_channel_id, slack_client)
        if invite["ok"]:
            logging.info("Invited %s to %s channel." % (username, ack_channel))
        else:
            text = "Failed to invite %s to %s" " channel - %s" % (
                username,
                ack_channel,
                invite.get("error", "Unknown error!"),
            )
            logging.info(text)
            outputs.append([channel, text, message_attrs])
            return
        halps = helps.Helps(config["redis"])
        halps.ack(ack_channel)
        text = ":angel: %s has acknowledged help for %s!" % (username, ack_channel)
        outputs.append([channel, text, message_attrs])
示例#4
0
def process_message(data):
    if data.get('text', '').split()[0] == '!invite':
        text = data.get('text').split()
        channel = data.get('channel')

        # Setup plugin
        admin_channel, botname, icon_emoji = utils.setup_bot(config)
        message_attrs = {'icon_emoji': icon_emoji, 'username': botname}

        # Only allow !invite from admin_channel
        admin_channel_id = utils.get_channel_id_by_name(
            admin_channel, slack_client)
        if admin_channel_id not in channel:
            return

        user = data.get('user')
        username = utils.get_user_name(user, slack_client)
        if len(text) > 1:
            invite_channel = text[1].strip('#')
        else:
            text = ("%s - to join a channel or private group type "
                    "`!invite <channel/group>`" % username)
            outputs.append([channel, text, message_attrs])
            return
        invite_channel_id = utils.get_channel_id_by_name(
            invite_channel, slack_client)
        invite = utils.invite_user(user, invite_channel_id, slack_client)
        if invite['ok']:
            text = "Invited %s to %s channel." % (username, invite_channel)
        else:
            text = ("Failed to invite %s to %s"
                    " channel - %s" % (username, invite_channel,
                                       invite.get('error', 'Unknown error!')))
        logging.info(text)
        print(text)
        outputs.append([channel, text, message_attrs])
示例#5
0
def process_message(data):
    if data.get('text', '').split(' ')[0] == '!invite':
        text = data.get('text').split(' ')
        channel = data.get('channel')

        # Setup plugin
        admin_channel, botname, icon_emoji = utils.setup_bot(config)
        message_attrs = {'icon_emoji': icon_emoji, 'username': botname}

        # Only allow !invite from admin_channel
        admin_channel_id = utils.get_channel_id_by_name(admin_channel,
                                                        slack_client)
        if admin_channel_id not in channel:
            return

        user = data.get('user')
        username = utils.get_user_name(user, slack_client)
        if len(text) > 1:
            invite_channel = text[1].strip('#')
        else:
            text = ("%s - to join a channel or private group type "
                    "`!invite <channel/group>`" % username)
            outputs.append([channel, text, message_attrs])
            return
        invite_channel_id = utils.get_channel_id_by_name(invite_channel,
                                                         slack_client)
        invite = utils.invite_user(user, invite_channel_id, slack_client)
        if invite['ok']:
            text = "Invited %s to %s channel." % (username, invite_channel)
        else:
            text = ("Failed to invite %s to %s"
                    " channel - %s" % (username, invite_channel,
                                       invite.get('error', 'Unknown error!')))
        logging.info(text)
        print(text)
        outputs.append([channel, text, message_attrs])