Skip to content
This repository was archived by the owner on Jun 19, 2019. It is now read-only.

Commit 6c82fee

Browse files
author
William Montgomery
committed
Added restart connection, test route, proxy info, channel join method.
1 parent 3334efb commit 6c82fee

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed

src/app.py

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
import time
33
from slackclient import SlackClient
44
from utils.log_manager import setup_logging
5-
from archived.creds import TOKEN
5+
from src.creds import TOKEN, PROXY
6+
import traceback
67

78
logger = logging.getLogger(__name__)
89
new_event_logger = logging.getLogger(f'{__name__}.new_member')
@@ -21,7 +22,7 @@
2122
"All active Operation Code Projects are located on our source control repository. "
2223
"Our projects can be viewed on <https://github.com/OperationCode/START_HERE|Github.>")
2324

24-
slack_client = SlackClient(TOKEN)
25+
slack_client = SlackClient(TOKEN, proxies=PROXY)
2526

2627

2728
def build_message(message_template, **kwargs):
@@ -32,12 +33,18 @@ def event_handler(event_dict):
3233
all_event_logger.info(event_dict)
3334
if event_dict['type'] == 'team_join':
3435
new_event_logger.info('New member event recieved')
36+
new_member(event_dict)
3537

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']))
3740

3841
# can be used for development to trigger the event instead of the team_join
3942
if event_dict['type'] == 'message' and 'user' in event_dict.keys():
4043
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+
4148

4249

4350
def new_member(event_dict):
@@ -50,7 +57,7 @@ def new_member(event_dict):
5057
custom_message = build_message(MESSAGE,
5158
real_name=user_name_from_id(user_id))
5259

53-
new_event_logger.info('Built message: {}'.format(event_dict))
60+
new_event_logger.info('Built message: {}'.format(custom_message))
5461
slack_client.api_call('chat.postMessage',
5562
channel=user_id,
5663
text=custom_message,
@@ -81,16 +88,26 @@ def user_name_from_id(user_id):
8188
else:
8289
return 'New Member'
8390

91+
def join_channels():
92+
response = slack_client.api_call('channels.join', name='general')
93+
print(response)
94+
95+
8496

8597
# set the defalt to a 1 second delay
8698
def run_bot(delay=1):
8799
setup_logging()
88-
89100
if slack_client.rtm_connect():
90101
print(f"StarterBot connected and running with a {delay} second delay")
102+
91103
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()
94111
else:
95112
print("Connection failed. Invalid Slack token or bot ID")
96113

0 commit comments

Comments
 (0)