我有一个带命令的skypebot。我试图实现的命令之一是“promote_to_master”:
# chat is Skype4Py.chat.Chat object, user_string is str
def promote_to_master(self, chat, user_string):
if self.is_creator_or_master(chat):
for member in chat.Members:
if member.Handle == user_string:
logging.info("Member promoted")
member.Role = Skype4Py.chatMemberRoleMaster
return "Member promoted"
僵尸程序是MASTER,目标是USER。不会抛出任何错误,但聊天中的成员角色不会更改。我确实看到了日志条目。 print type(member)
显示<class 'Skype4Py.user.User'>
,似乎无法更改角色,但我不确定。
在群聊中,指挥官使用:!promote user
运行后,使用/whois user
给出:
member: user
role: USER
subscribed: YES
banned: NO
online locations: [scrubbed]
有什么想法吗?
答案 0 :(得分:0)
我需要两个额外的步骤才能到达我想要的地方:
chat.Members
chat.MemberObjects
CREATOR
。它可能与谁添加哪个用户有关。以前,我的机器人是MASTER
,而user1是CREATOR
。我不知道用户的AddedBy属性如何影响用户,但它做了一些事情。现在我的机器人是CREATOR
,我可以影响其他用户的角色。答案 1 :(得分:0)
我也有Skype机器人。
你可以这样做:
elif msg.startswith('!listener '):
debug.action('!listener command executed.')
string = msg.replace('!listener ', '', 1)
send('/setrole '+string+' listener')
然后做
elif msg.startswith('!helper '):
debug.action('!helper command executed.')
string = msg.replace('!helper ', '', 1)
send('/setrole '+string+' helper')
等等,这样你就可以在Skype上的聊天中键入命令,通过机器人降级/推广人员。