2013-07-04 78 views
0

我有一個帶有命令的skypebot。我試圖實現的命令之一是「promote_to_master」:Skype4Py:更改羣組成員的角色

# 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" 

該bot是一個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

花了2個額外的步驟去哪裏我想成爲:

  1. 我用chat.Members,當我需要chat.MemberObjects
  2. 殭屍必須是CREATOR對我的測試帳戶的小三重奏。這可能與誰添加哪個用戶有關。以前,我的機器人是MASTER,user1是CREATOR。我不知道用戶的AddedBy屬性如何影響用戶,但它做了些什麼。現在我的機器人是CREATOR,我可以影響其他用戶的角色。
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的聊天鍵入命令通過降級/推廣人機器人。

祝你好運:)