def create_slack_beacon(event): beacon_key = None webhook_settings = event.get('webhook_settings', {}) slack_webhook_url = webhook_settings.get('slack_webhook_url') if slack_webhook_url: from uuid import uuid4 from htk.lib.slack.beacon.cachekeys import SlackBeaconCache beacon_key = uuid4().get_hex()[:6] payload = { 'slack_webhook_url': slack_webhook_url, 'channel_name': event.get('channel_name'), 'user_name': event.get('user_name'), } c = SlackBeaconCache(prekey=beacon_key) c.cache_store(payload) return beacon_key
def create_slack_beacon(event): beacon_key = None webhook_settings = event.get('webhook_settings', {}) slack_webhook_url = webhook_settings.get('slack_webhook_url') if slack_webhook_url: from uuid import uuid4 from htk.lib.slack.beacon.cachekeys import SlackBeaconCache beacon_key = uuid4().get_hex()[:6] payload = { 'slack_webhook_url' : slack_webhook_url, 'channel_name' : event.get('channel_name'), 'user_name' : event.get('user_name'), } c = SlackBeaconCache(prekey=beacon_key) c.cache_store(payload) return beacon_key
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