def geoip(event, **kwargs): """GeoIP event handler for Slack webhook events """ text = kwargs.get('text') command = kwargs.get('command') args = kwargs.get('args') if command == 'geoip': if args: ip = args from htk.lib.slack.messages import slack_message_geoip slack_text = slack_message_geoip(ip) else: slack_text = 'Please specify an IP address.' else: slack_text = 'Illegal command.' channel = event['channel_id'] payload = { 'text': slack_text, 'unfurl_links': True, 'unfurl_media': True, } return payload
def geoip(event, **kwargs): """GeoIP event handler for Slack webhook events """ text = kwargs.get('text') command = kwargs.get('command') args = kwargs.get('args') if command == 'geoip': if args: ip = args from htk.lib.slack.messages import slack_message_geoip slack_text = slack_message_geoip(ip) else: slack_text = 'Please specify an IP address.' else: slack_text = 'Illegal command.' channel = event['channel_id'] payload = { 'text' : slack_text, 'unfurl_links' : True, 'unfurl_media' : True, } return payload
def slack_beacon_view(request): """Receiver for Slack homing beacon """ beacon_key = request.GET.get('k') from htk.lib.slack.beacon.cachekeys import SlackBeaconCache c = SlackBeaconCache(prekey=beacon_key) beacon = c.get() ip = extract_request_ip(request) if beacon: from htk.lib.slack.messages import slack_message_geoip slack_text = slack_message_geoip(ip, beacon['user_name']) from htk.lib.slack.utils import webhook_call webhook_call( webhook_url=beacon['slack_webhook_url'], channel=beacon['channel_name'], text=slack_text, ) response = json_response_okay() else: response = json_response_error() return response