Created
August 23, 2016 04:21
-
-
Save haruair/0da2bc4b2fbffdb7a48c9bdd140c6524 to your computer and use it in GitHub Desktop.
slack wc client
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from websocket import create_connection | |
| import json | |
| import signal | |
| import sys | |
| import requests | |
| key = "" # me key | |
| channelId = "C03BXUL0Q" # general | |
| r = requests.get('https://slack.com/api/rtm.start?token='+key) | |
| response = r.json() | |
| url = response.get('url') | |
| users = response.get('users') | |
| print("total %d users" % len(users)) | |
| ws = create_connection(url) | |
| def signal_handler(signal, frame): | |
| global ws | |
| ws.close() | |
| print('You pressed Ctrl+C!') | |
| sys.exit(0) | |
| signal.signal(signal.SIGINT, signal_handler) | |
| while True: | |
| result = ws.recv() | |
| ob = json.loads(result) | |
| if ob.get("type") == "hello": | |
| print("Connected") | |
| elif ob.get("type") == "reconnect_url": | |
| url = ob.get("url") | |
| elif ob.get("type") == "team_join": | |
| users.append(ob.get("user")) | |
| elif ob.get("type") == "message" and ob.get("channel") == channelId: | |
| userid = ob.get("user") | |
| filtered = [user for user in users if user.get('id') == userid] | |
| print("%s: %s" % (filtered[0].get('name'), ob.get("text"))) | |
| ws.close() | |
| # {'is_ultra_restricted': False, 'deleted': False, 'name': '00f', 'status': None, 'presence': 'away', 'is_restricted': False, 'tz_offset': 32400, 'tz': 'Asia/Tokyo', 'is_owner': False, 'tz_label': 'Japan Standard Time', 'team_id': 'T024R44D2', 'real_name': '', 'id': 'U0FEE319R', 'profile': {'avatar_hash': 'g6a1d0ad8dab', 'fields': None, 'image_72': 'https://secure.gravatar.com/avatar/6a1d0ad8dabedacaa237de17ba8a0f46.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F66f9%2Fimg%2Favatars%2Fava_0002-72.png', 'image_512': 'https://secure.gravatar.com/avatar/6a1d0ad8dabedacaa237de17ba8a0f46.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F7fa9%2Fimg%2Favatars%2Fava_0002-512.png', 'real_name': '', 'real_name_normalized': '', 'email': 'emjeon93@gmail.com', 'image_192': 'https://secure.gravatar.com/avatar/6a1d0ad8dabedacaa237de17ba8a0f46.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F7fa9%2Fimg%2Favatars%2Fava_0002-192.png', 'image_32': 'https://secure.gravatar.com/avatar/6a1d0ad8dabedacaa237de17ba8a0f46.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F0180%2Fimg%2Favatars%2Fava_0002-32.png', 'image_24': 'https://secure.gravatar.com/avatar/6a1d0ad8dabedacaa237de17ba8a0f46.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F66f9%2Fimg%2Favatars%2Fava_0002-24.png', 'image_48': 'https://secure.gravatar.com/avatar/6a1d0ad8dabedacaa237de17ba8a0f46.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F66f9%2Fimg%2Favatars%2Fava_0002-48.png'}, 'is_admin': False, 'has_2fa': False, 'is_bot': False, 'is_primary_owner': False, 'color': '684b6c'} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment