diff --git a/README.md b/README.md
index 98709d6..6adcefd 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
-# UserDesign-SlackBot
+# Statbot
+
+Statbot Demo
diff --git a/StatBot.py b/StatBot.py
new file mode 100644
index 0000000..2434f20
--- /dev/null
+++ b/StatBot.py
@@ -0,0 +1,103 @@
+import time
+import os
+import re
+import json
+import plotly.plotly as py
+import plotly.graph_objs as go
+from pprint import pprint
+from urllib import urlopen
+from slackbot import settings
+from collections import defaultdict
+from slackbot.bot import respond_to
+from slackbot.bot import listen_to
+
+@respond_to('help', re.IGNORECASE)
+def help(message):
+ help_reply = {
+ "text": "You can ask me one of the following questions:\n * channel_stats \n * channel_analytics"
+ }
+ message.reply(help_reply['text'])
+
+@respond_to('channel_stats', re.IGNORECASE)
+def channel_stats(message):
+
+ # Slack user web API token
+ token = os.environ.get('USER_TOKEN')
+
+ # Total message count
+ channel_endpoint = urlopen('https://slack.com/api/channels.history?token='+token+'&channel=C1R5Z1FT3&count=1000&pretty=1').read()
+ channel_endpoint_result = json.loads(channel_endpoint)
+ total_message_count = str(len(channel_endpoint_result['messages']))
+
+ # Individual message count
+ users_endpoint=urlopen('https://slack.com/api/users.list?token='+token+'&pretty=1').read()
+ users_endpoint_result = json.loads(users_endpoint)
+ users_arr = []
+ for i in users_endpoint_result['members']:
+ data = []
+ data.append(i['name'])
+ data.append(i['id'])
+ users_arr.append(data)
+ pprint(users_arr)
+ count_dict = defaultdict(int)
+ len_user_arr = len(users_arr)
+ for i in range(0, len_user_arr):
+ count_dict[users_arr[i][1]] = 0
+ pprint(count_dict)
+ for i in channel_endpoint_result['messages']:
+ for j in range(0,len_user_arr):
+ if i['user'] == users_arr[j][1]:
+ count_dict[users_arr[j][1]] += 1
+ pprint(count_dict)
+ key_arr = []
+ for key in count_dict:
+ key_arr.append(key)
+ pprint(key_arr)
+ for i in range(0,len_user_arr):
+ for j in range(0, len_user_arr):
+ if key_arr[i] == users_arr[j][1]:
+ count_dict[users_arr[j][0]] = count_dict.pop(key_arr[i])
+ str_count_dict = str(count_dict)
+
+ # Answer command
+ channel_stats_reply = {
+ "text": "Channel Stats:\n Total channel messages: "+total_message_count+"\n"+str_count_dict+""
+ }
+ message.reply(channel_stats_reply['text'])
+
+# Hardcoded graph but with real data
+@respond_to('channel_analytics', re.IGNORECASE)
+def channel_analytics(message):
+
+ # Slack user web API token
+ token = os.environ.get('USER_TOKEN')
+
+ users_endpoint=urlopen('https://slack.com/api/users.list?token='+token+'&pretty=1').read()
+ users_endpoint_result = json.loads(users_endpoint)
+ users_arr = []
+ for i in users_endpoint_result['members']:
+ data = []
+ data.append(i['name'])
+ data.append(i['id'])
+ users_arr.append(data)
+
+ count_dict = defaultdict(int)
+ len_user_arr = len(users_arr)
+ channel_endpoint = urlopen('https://slack.com/api/channels.history?token='+token+'&channel=C1R5Z1FT3&count=1000&pretty=1').read()
+ channel_endpoint_result = json.loads(channel_endpoint)
+ for i in channel_endpoint_result['messages']:
+ for j in range(0,len_user_arr):
+ if i['user'] == users_arr[j][1]:
+ count_dict[users_arr[j][1]] += 1
+
+ pprint(count_dict)
+ pprint(count_dict[users_arr[0][1]])
+
+ labels=[users_arr[0][0],users_arr[1][0],users_arr[2][0],users_arr[3][0],users_arr[4][0],users_arr[5][0],users_arr[6][0],users_arr[7][0]]
+
+ values=[count_dict[users_arr[0][1]],count_dict[users_arr[1][1]],count_dict[users_arr[2][1]],count_dict[users_arr[3][1]],count_dict[users_arr[4][1]],count_dict[users_arr[5][1]],count_dict[users_arr[6][1]], count_dict[users_arr[7][1]]]
+
+ trace=go.Pie(labels=labels,values=values)
+ py.iplot([trace])
+
+ message.reply('https://plot.ly/~simmeringc/39/')
diff --git a/run.py b/run.py
index e3ffb13..01e0a51 100644
--- a/run.py
+++ b/run.py
@@ -1,7 +1,11 @@
+import StatBot
from slackbot.bot import Bot
+from slackbot import settings
+
def main():
+
bot = Bot()
bot.run()
if __name__ == "__main__":
- main()
+ main()
\ No newline at end of file
diff --git a/slackbot_settings.py b/slackbot_settings.py
index 00affba..f9804f8 100644
--- a/slackbot_settings.py
+++ b/slackbot_settings.py
@@ -1 +1,6 @@
-API_TOKEN = ""
+import os
+import plotly.plotly as py
+API_TOKEN = os.environ.get('SLACKBOT_API_TOKEN')
+ERROR_TO = "general"
+DEFAULT_REPLY = "Type '@statbot help' for a list of Statbot commands."
+py.sign_in('simmeringc', os.environ.get('PLOTLY_API_KEY'))