Ejemplo n.º 1
0
def handle_link_shared():
    """{'type': 'event_callback',
        'event':
            {'type': 'link_shared',
            'user': '******',
            'channel': 'CCXXXXXXXB',
            'message_ts': '1564217720.000000',
            'links':
                [{'url': 'http://computer.example.com/1234', 'domain': 'computer.example.com'}]},
        'token': '', 'team_id': 'TCXXXXXY', 'api_app_id': 'ALXXXXXB', 'event_id': 'EvXXXXXXX7',
        'event_time': 1564217720, 'authed_users': ['UXXXXXXK'], }
    """
    links = request.json['event']['links']
    if events.config['gerrit_domain'] in [link['domain'] for link in links]:
        run_async(send_unfurl,
                  links=links,
                  token=events.config['slack_oauth_access_token'],
                  channel=request.json['event']['channel'],
                  ts=request.json['event']['message_ts'])
    else:
        bg_slack('chat_unfurl',
                 token=events.config['slack_oauth_access_token'],
                 channel=request.json['event']['channel'],
                 ts=request.json['event']['message_ts'],
                 unfurls={
                     link['url']: gen_unfurl(link)
                     for link in request.json['event']['links']
                 })

    return 'ok'
Ejemplo n.º 2
0
def handle_tea_earl_gray_hot():
    bg_slack(
        'chat_postMessage',
        token=events.config.get('slack_bot_token'),
        text='https://i.imgur.com/kGypM2u.jpg',
        channel=request.json['event']['channel'],
    )
Ejemplo n.º 3
0
def handle_tea_earl_gray_not():
    bg_slack(
        'chat_postMessage',
        token=events.config.get('slack_bot_token'),
        text='https://www.youtube.com/watch?v=eVUuaDXBhs4',
        channel=request.json['event']['channel'],
    )
Ejemplo n.º 4
0
def handle_me_message():
    bg_slack('reactions_add',
             token=events.config.get('slack_bot_token'),
             name='blog',
             channel=request.json['event']['channel'],
             timestamp=request.json['event']['ts'])
    return 'ok'
def handle_reaction_added():
    if request.json['event']['reaction'] == 'plus2':
        bg_slack('reactions_add',
                 token=events.config.get('slack_bot_token'),
                 name='shipitparrot',
                 channel=request.json['event']['item']['channel'],
                 timestamp=request.json['event']['item']['ts'])
    return 'ok'
Ejemplo n.º 6
0
def send_unfurl(links, token, channel, ts):
    unfurls = {
        link['url']: get_changedata(link)
        for link in links if link['domain'] == events.config['gerrit_domain']
    }
    unfurls = {
        k: format_changedata(token, v)
        for k, v in unfurls.items() if v is not None
    }
    if unfurls:
        return bg_slack('chat_unfurl',
                        token=token,
                        channel=channel,
                        ts=ts,
                        unfurls=unfurls)
    else:
        print('no unfurls')