2
2
import time
3
3
from slackclient import SlackClient
4
4
from utils .log_manager import setup_logging
5
- from archived .creds import TOKEN
5
+ from src .creds import TOKEN , PROXY
6
+ import traceback
6
7
7
8
logger = logging .getLogger (__name__ )
8
9
new_event_logger = logging .getLogger (f'{ __name__ } .new_member' )
21
22
"All active Operation Code Projects are located on our source control repository. "
22
23
"Our projects can be viewed on <https://github.com/OperationCode/START_HERE|Github.>" )
23
24
24
- slack_client = SlackClient (TOKEN )
25
+ slack_client = SlackClient (TOKEN , proxies = PROXY )
25
26
26
27
27
28
def build_message (message_template , ** kwargs ):
@@ -32,12 +33,18 @@ def event_handler(event_dict):
32
33
all_event_logger .info (event_dict )
33
34
if event_dict ['type' ] == 'team_join' :
34
35
new_event_logger .info ('New member event recieved' )
36
+ new_member (event_dict )
35
37
36
- # new_member(event_dict)
38
+ if event_dict ['type' ] == 'presence_change' :
39
+ all_event_logger .info ('User {} changed state to {}' .format (user_name_from_id (event_dict ['user' ]), event_dict ['presence' ]))
37
40
38
41
# can be used for development to trigger the event instead of the team_join
39
42
if event_dict ['type' ] == 'message' and 'user' in event_dict .keys ():
40
43
pass
44
+ if event_dict ['type' ] == 'message' and 'user' in event_dict .keys () and event_dict ['text' ] == 'test4611' :
45
+ event_dict ['user' ] = {'id' : event_dict ['user' ]}
46
+ new_member (event_dict )
47
+
41
48
42
49
43
50
def new_member (event_dict ):
@@ -50,7 +57,7 @@ def new_member(event_dict):
50
57
custom_message = build_message (MESSAGE ,
51
58
real_name = user_name_from_id (user_id ))
52
59
53
- new_event_logger .info ('Built message: {}' .format (event_dict ))
60
+ new_event_logger .info ('Built message: {}' .format (custom_message ))
54
61
slack_client .api_call ('chat.postMessage' ,
55
62
channel = user_id ,
56
63
text = custom_message ,
@@ -81,16 +88,26 @@ def user_name_from_id(user_id):
81
88
else :
82
89
return 'New Member'
83
90
91
+ def join_channels ():
92
+ response = slack_client .api_call ('channels.join' , name = 'general' )
93
+ print (response )
94
+
95
+
84
96
85
97
# set the defalt to a 1 second delay
86
98
def run_bot (delay = 1 ):
87
99
setup_logging ()
88
-
89
100
if slack_client .rtm_connect ():
90
101
print (f"StarterBot connected and running with a { delay } second delay" )
102
+
91
103
while True :
92
- parse_slack_output (slack_client .rtm_read ())
93
- time .sleep (delay )
104
+ try :
105
+ parse_slack_output (slack_client .rtm_read ())
106
+ time .sleep (delay )
107
+ except Exception as e :
108
+ logger .error (f'Some exception occured: { e } ' )
109
+ logger .error (f'traceback: { traceback .format_exc (e )} ' )
110
+ slack_client .rtm_connect ()
94
111
else :
95
112
print ("Connection failed. Invalid Slack token or bot ID" )
96
113
0 commit comments