def random_command(message, subcommand=None):
"""
???????????????????????????
- https://github.com/os/slacker
- https://api.slack.com/methods/channels.info
- https://api.slack.com/methods/users.getPresence
- https://api.slack.com/methods/users.info
"""
if subcommand == 'help':
message.send(HELP)
return
# ???????????????
channel = message.body['channel']
webapi = slacker.Slacker(settings.API_TOKEN)
try:
cinfo = webapi.channels.info(channel)
members = cinfo.body['channel']['members']
except slacker.Error:
try:
cinfo = webapi.groups.info(channel)
members = cinfo.body['group']['members']
except slacker.Error:
# TODO: ???????????????
# ??????????????return
return
# bot ? id ???
bot_id = message._client.login_data['self']['id']
members.remove(bot_id)
member_id = None
if subcommand != 'active':
member_id = random.choice(members)
else:
# active ??????????? presence ?????
random.shuffle(members)
for member in members:
presence = webapi.users.get_presence(member_id)
if presence.body['presence'] == 'active':
member_id = member
break
user_info = webapi.users.info(member_id)
name = user_info.body['user']['name']
message.send('{} ?????????'.format(name))
评论列表
文章目录