2019-06-27 19:51:53 -05:00
from import_db import import_cf_words
2019-06-27 12:59:03 -05:00
from random import randrange as rr
2019-06-27 19:51:53 -05:00
from bot_logging import log_output
from datetime import datetime
import slack
import sys
import os
import re
2019-06-27 10:03:37 -05:00
2019-06-27 19:51:53 -05:00
output = ' {} \t I am running \n ' . format ( datetime . now ( ) )
2019-06-27 10:03:37 -05:00
2019-06-27 19:51:53 -05:00
words = import_cf_words ( )
2019-06-27 12:59:03 -05:00
2019-06-27 10:03:37 -05:00
@slack.RTMClient.run_on ( event = ' message ' )
def say_hello ( * * payload ) :
2019-06-27 19:51:53 -05:00
output = ' {0} \t {1} \n ' . format ( datetime . now ( ) , payload [ ' data ' ] )
2019-06-27 10:03:37 -05:00
data = payload [ ' data ' ]
web_client = payload [ ' web_client ' ]
rtm_client = payload [ ' rtm_client ' ]
try :
2019-06-27 19:51:53 -05:00
if ' text ' in data and ' user ' in data :
match = re . search ( ' ( \\ bc[a-zA-Z]+ \\ bf[a-zA-Z]+|cf) ' , data [ ' text ' ] . lower ( ) )
if match :
match_formatted = ' ' . join ( [ m . capitalize ( ) for m in match . groups ( ) [ 0 ] . split ( ) ] )
web_client . chat_postMessage (
channel = data [ ' channel ' ] ,
text = ' {0} , also known as: {1} {2} ' . format ( match_formatted , ( words [ ' c ' ] [ rr ( len ( words [ ' c ' ] ) ) ] ) . capitalize ( ) , ( words [ ' f ' ] [ rr ( len ( words [ ' f ' ] ) ) ] ) . capitalize ( ) )
)
except Exception as e :
2019-06-27 20:02:08 -05:00
output + = ' {0} \t An error occurred: {1} \n ' . format ( datetime . now ( ) , e )
2019-06-27 19:51:53 -05:00
log_output ( output )
2019-06-27 10:03:37 -05:00
slack_token = os . environ [ " SLACK_API_TOKEN " ]
rtm_client = slack . RTMClient ( token = slack_token )
rtm_client . start ( )