def deal_with_msg(msg): text = msg['Content'] if text == u'加群': time.sleep(random.randint(1, 3)) itchat.add_member_into_chatroom(get_group_id("小猪的Python学习交流群"), [{ 'UserName': msg['FromUserName'] }], useInvitation=True) elif text == u'博客': time.sleep(random.randint(1, 3)) return 'coder-pig的个人主页-掘金:https://juejin.im/user/570afb741ea493005de84da3' elif text == u'Github': time.sleep(random.randint(1, 3)) return 'https://github.com/coder-pig' elif text == u'公众号': time.sleep(random.randint(1, 3)) itchat.send_image('gzh.jpg', msg['FromUserName']) elif text == u'打赏': time.sleep(random.randint(1, 3)) itchat.send_image('ds.gif', msg['FromUserName']) time.sleep(random.randint(1, 3)) itchat.send_msg('您的打赏,会让小猪更有动力肝出\n更Interesting的文章,谢谢支持~', msg['FromUserName']) time.sleep(random.randint(1, 3)) itchat.send_image('wxpay.png', msg['FromUserName']) else: time.sleep(random.randint(1, 3)) itchat.send_image('hrwh.png', msg['FromUserName'])
def deal_with_msg(msg): text = msg['Content'] if text == u'加群': time.sleep(random.randint(1, 3)) itchat.add_member_into_chatroom(get_group_id("小猪的Python学习交流群"), [{'UserName': msg['FromUserName']}], useInvitation=True) elif text == u'博客': time.sleep(random.randint(1, 3)) return 'coder-pig的个人主页-掘金:https://juejin.im/user/570afb741ea493005de84da3' elif text == u'Github': time.sleep(random.randint(1, 3)) return 'https://github.com/coder-pig' elif text == u'公众号': time.sleep(random.randint(1, 3)) itchat.send_image('gzh.jpg', msg['FromUserName']) elif text == u'打赏': time.sleep(random.randint(1, 3)) itchat.send_image('ds.gif', msg['FromUserName']) time.sleep(random.randint(1, 3)) itchat.send_msg('您的打赏,会让小猪更有动力肝出\n更Interesting的文章,谢谢支持~', msg['FromUserName']) time.sleep(random.randint(1, 3)) itchat.send_image('wxpay.png', msg['FromUserName']) else: time.sleep(random.randint(1, 3)) itchat.send_image('hrwh.png', msg['FromUserName'])
def add_friend(msg): print(msg) itchat.add_friend(**msg['Text']) # 该操作会自动将新好友的消息录入,不需要重载通讯录 itchat.send_msg('Nice to meet you!', msg['RecommendInfo']['UserName']) friend = itchat.search_friends(userName=msg['RecommendInfo']['UserName']) chatrooms = itchat.search_chatrooms(name='CC微信机器人开发') itchat.add_member_into_chatroom(chatrooms[0]['UserName'], [friend], useInvitation=True)
def change_group(): meblist=itchat.get_friends()[1:] # 创建群聊 chatroom=itchat.create_chatroom(meblist,'群聊名称') # 删除群聊内的用户 itchat.delete_member_from_chatroom(chatroom,meblist[0]) # 增加用户 itchat.add_member_into_chatroom(chatroom,meblist[0])
def on_reply_invite(msg): text = msg['Content'] if text.strip().lower() == u'taro': print('userid: ', msg['FromUserName'], msg) itchat.add_member_into_chatroom(get_group_id(chat_room_name), [{ 'UserName': msg['FromUserName'] }], useInvitation=False) itchat.send_msg('感谢关注Taro,正在火速拉你入群!', msg['FromUserName'])
def add_friend(msg): itchat.add_friend(**msg['Text']) print('userid: ', msg['RecommendInfo']['UserName'], msg['Text']) nick_name = msg['Text']['autoUpdate']['NickName'] log_user(nick_name) itchat.add_member_into_chatroom( get_group_id(chat_room_name), [{ 'UserName': msg['RecommendInfo']['UserName'] }], useInvitation=False) itchat.send_msg('感谢关注Taro,正在火速拉你入群!', msg['FromUserName'])
def deal_with_msg(msg): """ 监听并处理好友消息 """ # print(json.dumps(msg, ensure_ascii=False)) text = msg["Text"] # 获取好友发送的话 userid = msg['FromUserName'] # 获取好友的 uid nickname = msg['User']['NickName'] # 获取好友的昵称 is_add_group = add_group_compile.findall(text) # 检查是否为加群关键词 if is_add_group and IS_OPEN_ADD_GROUP: group_info_list = list(group_infos_dict.values()) for group_info in group_info_list: group_name = group_info['group_name'] if userid not in group_info['member_uid_list']: # 用户不在此群中 if group_info['count'] < 500: # 群聊人数低于 500 time.sleep(random.randint(1, 2)) # 随机休眠 1 到 2 秒 # 发送群邀请 itchat.add_member_into_chatroom(group_info['group_uuid'], [{ 'UserName': userid }], useInvitation=True) note = u'已给『{}』发送加群『{}』邀请通知。'.format(nickname, group_name) set_note(note) break else: print(u'群聊『{}』人数已满。'.format(group_name)) else: # 用户在已在此群聊中 print(u'『{}』已在群聊『{}』中。'.format(nickname, group_name)) if not IS_ENTER_MULT_GROUP: # 如果不让加入多个群, 则退出 time.sleep(random.randint(1, 2)) # 用户已入群,回复消息:请不要重复加群 itchat.send(note_add_repeat_answer, userid) break else: time.sleep(random.randint(1, 2)) # 用户已入群,回复消息:请不要重复加群 itchat.send(note_add_repeat_answer, userid) else: # 自动回复 if IS_OPEN_AUTO_REPLY: # 是否已开启 AI 自动回复 reply_text = get_nlp_textchat(text, userid) reply_text = reply_text if reply_text else '' reply_text = reply_text + MSG_SUFFIX else: reply_text = note_auto_reply_text itchat.send(reply_text, userid) note = u'{}发送来的:{}\n自动回复:{}'.format(nickname, text, reply_text) set_note(note)
def judge(self): # 获取该用户账户名 ownAccount = itchat.get_friends(update=True)[0]['UserName'] # 获取好友列表 friends_list = self.get_friends() # 获取群聊 chatroom = self.get_chatroom() # 获取群聊失败,发送失败信息 if chatroom is None: return FAILED else: for person in friends_list: if ownAccount == person['UserName']: continue r = itchat.add_member_into_chatroom( chatroom['UserName'], [person]) # 如果成功拉入群聊 # 表示对方还是好友 if r['BaseResponse']['ErrMsg'] == u'请求成功': # 获取拉入状态 # 3:为加入黑名单了 # 4:为被删除了 # 其他则仍是好友 status = r['MemberList'][0]['MemberStatus'] time.sleep(3) itchat.delete_member_from_chatroom( chatroom['UserName'], [person]) itchat.send( {3: u'该好友%s已经将你加入黑名单。' % (person['RemarkName'] or person['NickName']), 4: u'该好友%s已经将你删除。' % (person['RemarkName'] or person['NickName'])}.get(status, u'该好友%s仍旧与你是好友关系。' % (person['RemarkName'] or person['NickName'])), 'filehelper') time.sleep(5) return SUCCESS
def get_friend_status(friend): own_account = itchat.get_friends(update=True)[0] if friend['UserName'] == own_account['UserName']: return u'检测到本人账号。' elif itchat.search_friends(userName=friend['UserName']) is None: return u'该用户不在你的好友列表中。' else: chatroom = CHATROOM or get_chatroom() if chatroom is None: return CHATROOM_MSG r = itchat.add_member_into_chatroom(chatroom['UserName'], [friend]) if r['BaseResponse']['ErrMsg'] == '': status = r['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(chatroom['UserName'], [friend]) return {3: u'该好友已经将你加入黑名单。', 4: u'该好友已经将你删除。',}.get(status, u'该好友仍旧与你是好友关系。') @itchat.msg_register(itchat.content.CARD) def get_friend(msg): if msg['ToUserName'] != 'filehelper': return friendStatus = get_friend_status(msg['RecommendInfo']) itchat.send(friendStatus, 'filehelper') itchat.auto_login(True) itchat.send(HELP_MSG, 'filehelper') itchat.run()
def text_reply(msg): nickName = itchat.search_friends(userName=msg['FromUserName']).get('NickName', 'Unknown') logging.info('{}-{} send: {}'.format(nickName, msg['FromUserName'], msg['Content'])) if msg["FromUserName"] == itchat.get_friends()[0]["UserName"]: # dont replay self return # if invite if faq.invite_key in msg['Text'].upper(): # TODO Modify add_member_into_chatroom invite_friend = [{'UserName': msg['FromUserName']}] grouproom = itchat.search_chatrooms(name=faq.group_name) grouproom = grouproom and grouproom[0] or None result = itchat.add_member_into_chatroom(grouproom.get('UserName'), invite_friend, useInvitation=True) # invite success if result['BaseResponse']['Ret'] == 0: logging.info('invite user {}-{} successful'.format(nickName, msg['FromUserName'])) else: logging.error('invite user {}-{} failed'.format(nickName, msg['FromUserName'])) itchat.send(REPLAY_ERROR_TEXT, msg['FromUserName']) else: # else TuLing replay replay_text = tuling.replay_text(msg['Text'], msg['FromUserName']) or REPLAY_ERROR_TEXT logging.info('tuling replay user {}-{}: {}'.format(nickName, msg['FromUserName'], replay_text)) itchat.send(replay_text, msg['FromUserName']) # TODO can not return Bool return
def get_friend_status(friend): ownAccount = itchat.get_friends(update=True)[0] if friend['UserName'] == ownAccount['UserName']: return u'Own account' elif itchat.search_friends(userName=friend['UserName']) is None: return u'Not a friend' else: room = chatroom or get_chatroom() r = itchat.add_member_into_chatroom(room['UserName'], [friend]) # r = itchat.update_chatroom(chatroom) if r['BaseResponse']['ErrMsg'] == u'请求成功': if len(r['MemberList']) == 0: return u'No member in the chatroom' else: status = r['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(room['UserName'], [friend]) return { 3: u'该好友已经将你加入黑名单。', 4: u'该好友已经将你删除。', }.get(status,u'该好友仍旧与你是好友关系。') # if status == 3: # return u'该好友已经将你加入黑名单。' # elif status == 4: # return u'该好友已经将你删除。' # else: # return get(status) + u'该好友仍旧与你是好友关系。' else: return r['BaseResponse']['ErrMsg'] + u'无法获取好友状态,预计已经达到接口调用限制'
def get_friend_status(friend): ownAccount = itchat.get_friends(update=True)[0] if friend['UserName'] == ownAccount['UserName']: return u'Own account' elif itchat.search_friends(userName=friend['UserName']) is None: return u'Not a friend' else: room = chatroom or get_chatroom() r = itchat.add_member_into_chatroom(room['UserName'], [friend]) # r = itchat.update_chatroom(chatroom) if r['BaseResponse']['ErrMsg'] == u'请求成功': if len(r['MemberList']) == 0: return u'No member in the chatroom' else: status = r['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(room['UserName'], [friend]) return { 3: u'该好友已经将你加入黑名单。', 4: u'该好友已经将你删除。', }.get(status, u'该好友仍旧与你是好友关系。') # if status == 3: # return u'该好友已经将你加入黑名单。' # elif status == 4: # return u'该好友已经将你删除。' # else: # return get(status) + u'该好友仍旧与你是好友关系。' else: return r['BaseResponse']['ErrMsg'] + u'无法获取好友状态,预计已经达到接口调用限制'
def check_friends(friends, chatroom, num): deleted_list = [] bad_list = [] left, deleted, bad = num for friend in friends[1:]: print '\n', u"昵称:", friend['NickName'], u' 备注:', friend[ 'RemarkName'], u' 签名:', friend['Signature'] time.sleep(60) r = itchat.add_member_into_chatroom(chatroom['UserName'], [friend]) print r if r['BaseResponse']['Ret'] == 0: status = r['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(chatroom['UserName'], [friend]) if status == 3: bad = bad + 1 bad_list.append(friend['NickName']) elif status == 4: deleted = deleted + 1 deleted_list.append(friend['NickName']) else: left = left + 1 print { 3: u'该好友已经将你加入黑名单。', 4: u'该好友已经将你删除。', }.get(status, u'该好友仍旧与你是好友关系。') print "" print "" print u"您还剩{}个好友".format(left) print u"惨惨惨,有{}个好友将您删除".format(deleted), u", 分别是", deleted_list print u"牛逼啊,有{}个好友将您拉黑".format(bad), u", 分别是", bad_list
def get_friend_status(friend): global ownAccount # 推荐的名片是自己 if friend['UserName'] == ownAccount: return u'检测到本人账号。' # 推荐的名片是你没加的人 elif itchat.search_friends(userName=friend['UserName']) is None: return u'该用户不在你的好友列表中。' else: # 获取群聊 chatroom = get_chatroom() # 获取群聊失败,发送失败消息 if chatroom is None: return CHATROOM_MSG # 将要判断的好友放入群聊中 r = itchat.add_member_into_chatroom(chatroom['UserName'], [friend]) # 如果成功拉入群聊 # 表示对方还是好友 if r['BaseResponse']['ErrMsg'] == u'请求成功': status = r['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(chatroom['UserName'], [friend]) return { 3: u'该好友已经将你加入黑名单。', 4: u'该好友已经将你删除。', }.get(status, u'该好友仍旧与你是好友关系。') else: return u'无法获取好友状态,预计已经达到接口调用限制。'
def after_login(): chatroomUserName = '******' friend = itchat.get_friends()[2] print(friend) print('*****************************************************') r = itchat.add_member_into_chatroom(chatroomUserName, [friend]) print(r) if r['BaseResponse']['ErrMsg'] == '': print(r['MemberList'])
def invite_to_group(room_name, friend): itchat.get_chatrooms(update=True) chat_room = itchat.search_chatrooms(room_name)[0] r = itchat.add_member_into_chatroom(chat_room['UserName'], [friend], useInvitation=True) if r['BaseResponse']['ErrMsg'] == '请求成功': return '自动邀请加入群聊成功!请等待获取加群链接!' else: return '请求发生错误,请重试!'
def add_group(userID, groupChatName): itchat.send_msg('等着 俺给你拉群里',userID) chatrooms = itchat.search_chatrooms(name=groupChatName) friend = itchat.search_friends(userName=userID) res = itchat.add_member_into_chatroom(chatrooms[0]['UserName'], [friend], useInvitation=True) if res["BaseResponse"]["Ret"]: itchat.send_msg('系统更新中QuQ 请稍后重试', userID)
def deal_with_message(msg): text = msg['Content'] if text == u'': time.sleep(random.randint(1, 3)) itchat.add_member_into_chatroom(get_group_id(""), [{ 'UserName': msg['FromUserName'] }], useInvitation=True) elif text == u'': time.sleep(random.randint(1, 3)) return u'' elif text == u'': time.sleep(random.randint(1, 3)) itchat.send_image('', msg['FromUserName']) elif text == u'': time.sleep(random.randint(1, 3)) itchat.send_msg('', msg['FromUserName']) else: time.sleep(random.randint(1, 3))
def pullMembersMore(msg, chatroomName, CurUserName): cur_chatrooms = itchat.search_chatrooms(name=chatroomName) #print(json.dumps(cur_chatrooms)+"\n") chatRoomUserName = cur_chatrooms[0]['UserName'] #print(chatRoomUserName + "\n") #print(CurUserName+ "\n") r = itchat.add_member_into_chatroom(chatRoomUserName, [{ 'UserName': CurUserName }], useInvitation=True)
def auto_add_member(msg,roomName): friend = itchat.search_friends(userName=msg['FromUserName']) print(friend) itchat.get_chatrooms(update=True) chatroom = itchat.search_chatrooms(roomName)[0] print(chatroom['UserName']) r = itchat.add_member_into_chatroom(chatroom['UserName'], [friend], useInvitation=True) print(r) if r['BaseResponse']['ErrMsg'] == '请求成功': return '自动邀请加入群聊成功!请等待获取加群链接!' else: return '请求发生错误,请重试!'
def chk_del_friend(): chartroomUserName = itchat.get_friends()[0]['UserName'] for friend in itchat.get_friends()[1:]: r = itchat.add_member_into_chatroom(chartroomUserName, [friend]) if r['BaseResponse']['ErrMsg'] == '': itchat.delete_member_from_chatroom(chartroomUserName, [friend]) print(r['MemberCount']) if r['MemberCount'] == 0: continue status = r['MemberList'][0]['MemberStatus'] if status == 3: print(friend, '该好友已经将你加入黑名单。') elif status == 4: print(friend, '该好友已经将你删除。')
def get_friend_status(group_name): chatroomName = group_name itchat.get_chatrooms(update=True) chatrooms = itchat.search_chatrooms(name=chatroomName) friend = itchat.get_friends()[1] r = itchat.add_member_into_chatroom(chatrooms[0]['UserName'], [friend]) if r['BaseResponse']['ErrMsg'] == '': status = r['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(chatrooms[0]['UserName'], [friend]) print({ 3: u'该好友已经将你加入黑名单。', 4: u'该好友已经将你删除。', }.get(status, u'该好友仍旧与你是好友关系。')) else: print(u'无法获取好友状态,预计已经达到接口调用限制。')
def auto_add_member(userName, roomName): friend = itchat.search_friends(userName=userName) print(friend) itchat.get_chatrooms(update=True) chatroom = itchat.search_chatrooms(roomName)[0] print(chatroom['UserName']) #如果群聊人数不满100人,可以去掉useInvitation=True,这样好友发送关键字后会被直接加入群 r = itchat.add_member_into_chatroom(chatroom['UserName'], [friend], useInvitation=True) print(r) if r['BaseResponse']['ErrMsg'] == '请求成功': return '自动邀请加入群聊成功!请等待获取加群链接!' else: return '请求发生错误,请重试!'
def TestFriends(friend, chatroomUserName): req = itchat.add_member_into_chatroom(chatroomUserName, [friend], useInvitation=True) if req['BaseResponse']['ErrMsg'] == u'请求成功': status = req['MemberList'][0]['MemberStatus'] print('{}: {}'.format((friend['DisplayName'] or friend['NickName']), { 3: u'该好友已经将你加入黑名单', 4: u'该好友已经将你删除' }.get(status, u'该好友仍旧与你是好友关系'))) else: print('{}: {}'.format((friend['DisplayName'] or friend['NickName']), req)) itchat.delete_member_from_chatroom(chatroomUserName, [friend])
def get_friends_status(friend): ownAccount = itchat.get_friends(update=True)[0] if friend['UserName'] == ownAccount['UserName']: return u'检测到本人账号。' elif itchat.search_friends(userName=friend['UserName']) is None: return u'该用户不在你的好友列表中。' else: chatroom = CHATROOM or get_chatroom() if chatroom is None: return CHATROOM_MSG r = itchat.add_member_into_chatroom(chatroom['UserName'], [friend]) if r['BaseResponse']['ErrMsg'] == '': status = r['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(chatroom['UserName'],[friend]) return { 3: u'该好友已经将你加入黑名单。', 4: u'该好友已经将你删除。', }.get(status, u'该好友仍旧与你是好友关系。') else: return u'无法获取好友状态,预计已经达到接口调用限制。'
def pullMembersMore(msg, chatroomName, CurUserName): cur_chatrooms = itchat.search_chatrooms(name=chatroomName) #print json.dumps(cur_chatrooms) if (len(cur_chatrooms) == 0): return chatRoomUserName = cur_chatrooms[0]['UserName'] r = itchat.add_member_into_chatroom(chatRoomUserName, [{ 'UserName': CurUserName }], useInvitation=True) #print r #if(r['BaseResponse']['ErrMsg'] == u'\u8bf7\u6c42\u6210\u529f'): # print 'yes' #settings.usersDict[CurUserName] = settings.usersDict[CurUserName] - 1 return r
def add_member_into_chatroom(chatroom_user_name, member_list, use_invitation=False): ''' add members into chatroom for adding - you can't add yourself or member already in chatroom - if so, no one will be added - if member will over 40 after adding, invitation must be used - strict-limited frequency for options - chatroom_user_name: 'user_name' key of chatroom info dict - member_list: list of members' info dict - use_invitation: if invitation is not required, set this to use it is defined in components/contact.py ''' return itchat.add_member_into_chatroom(chatroom_user_name, member_list, use_invitation)
def get_friend_status(friend): ownAccount = itchat.get_friends(update=True)[0] if friend['UserName'] == ownAccount['UserName']: return u'检测到本人账号。' elif itchat.search_friends(userName=friend['UserName']) is None: return u'该用户不在你的好友列表中。' else: chatroom = CHATROOM or get_chatroom() if chatroom is None: return CHATROOM_MSG r = itchat.add_member_into_chatroom(chatroom['UserName'], [friend]) if r['BaseResponse']['ErrMsg'] == '': status = r['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(chatroom['UserName'], [friend]) return { 3: u'该好友已经将你加入黑名单。', 4: u'该好友已经将你删除。', }.get(status, u'该好友仍旧与你是好友关系。') else: return u'无法获取好友状态,预计已经达到接口调用限制。'
def text_reply(msg): if faq.invite_key in msg['Text'].upper(): # TODO Modify add_member_into_chatroom invite_friend = [{'UserName': msg['FromUserName']}] grouproom = itchat.search_chatrooms(name=faq.group_name) grouproom = grouproom and grouproom[0] or None result = itchat.add_member_into_chatroom(grouproom.get('UserName'), invite_friend, useInvitation=True) # invite success if result['BaseResponse']['Ret'] == 0: # TODO can not return Bool return else: itchat.send(REPLAY_ERROR_TEXT, msg['FromUserName']) return # else TuLing replay replay_text = tuling.replay_text(msg['Text'], msg['FromUserName']) or REPLAY_ERROR_TEXT itchat.send(replay_text, msg['FromUserName'])
def get_friend_status(friend, ownAccount, chatroom): if friend['UserName'] == ownAccount['UserName']: return u'检测到本人账号。' elif itchat.search_friends(userName=friend['UserName']) is None: return u'该用户不在你的好友列表中。' else: if chatroom is None: return CHATROOM_MSG try: r = itchat.add_member_into_chatroom(chatroom['UserName'], [friend]) if u'成功' in r['BaseResponse']['ErrMsg']: status = r['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(chatroom['UserName'], [friend]) return { 3: u'好友{}已经将你加入黑名单。'.format(friend['NickName']), 4: u'好友{}已经将你删除。'.format(friend['NickName']), }.get(status, None) else: return u'无法获取好友状态,预计已经达到接口调用限制。' except Exception as e: print(e.message, traceback.format_exc())
def get_friend_status(self): """获取好友状态""" own_account = itchat.get_friends(update=True)[0] friends_total_number = len(itchat.get_friends()) for num in range(friends_total_number): friend = itchat.get_friends()[num] if friend['UserName'] == own_account['UserName']: return "This account is not checked for my account." if itchat.search_friends(userName=friend['UserName']) is None: return "The user is not exist." chatroom = self.chatroom or self.get_chatroom() if chatroom is None: return '无法自动创建群聊请手动创建 | 创建后请将群聊保存到通讯录' room = itchat.add_member_into_chatroom(chatroom['UserName'], [friend]) if room['BaseResponse']['ErrMsg'] == '': friend_status = room['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(chatroom['UserName'], [friend]) return self.status_dict.get(friend_status, '该好友仍旧与你是好友关系') return u'无法获取好友状态,预计已经达到接口调用限制。'
def deal_with_msg(msg): """ 监听并处理好友消息 """ # print(json.dumps(msg, ensure_ascii=False)) text = msg["Text"] # 获取好友发送的话 if msg['ToUserName'] == 'filehelper': if text in ('show', u'状态', u'显示', '当前'): notes = [] notes.append(u'当前时间:' + get_local_time()) notes.append(u'在线时长:' + get_online_time()) for group_info in group_infos_dict.values(): notes.append(u'群聊『{}』里一共有 {} 人。'.format(group_info['group_name'], str(group_info['count']))) set_note('\n'.join(notes)) elif text in ('update', u'更新', u'刷新'): update_all_group_info() else: set_note('I am online...') return userid = msg['FromUserName'] # 获取好友的 uid nickname = msg['User']['NickName'] # 获取好友的昵称 # 自己发送给别人的消息不作处理 if userid == wechat_uuid: return # 黑名单用户不能加群 if userid in black_uuid_list: set_note('黑名单用户『{}』消息不作任何处理。'.format(nickname)) return is_add_group = add_group_compile.findall(text) # 检查是否为加群关键词 if is_add_group and IS_OPEN_ADD_GROUP: group_info_list = list(group_infos_dict.values()) for group_info in group_info_list: group_name = group_info['group_name'] if userid not in group_info['member_uid_list']: # 用户不在此群中 if group_info['count'] < 500: # 群聊人数低于 500 time.sleep(random.randint(1, 2)) # 随机休眠 1 到 2 秒 # 发送群邀请 itchat.add_member_into_chatroom(group_info['group_uuid'], [{'UserName': userid}], useInvitation=True) note = '已给『{}』发送加群『{}』邀请通知。'.format(nickname, group_name) set_note(note) break else: print('群聊『{}』人数已满。'.format(group_name)) else: # 用户在已在此群聊中 print('『{}』已在群聊『{}』中。'.format(nickname, group_name)) if not IS_ENTER_MULT_GROUP: # 如果不让加入多个群, 则退出 time.sleep(random.randint(1, 2)) # 用户已入群,回复消息:请不要重复加群 itchat.send(note_add_repeat_answer, userid) break else: time.sleep(random.randint(1, 2)) # 用户已入群,回复消息:请不要重复加群 itchat.send(note_add_repeat_answer, userid) else: # 自动回复 if IS_OPEN_AUTO_REPLY: # 是否已开启 AI 自动回复 reply_text = get_nlp_textchat(text, userid) if not reply_text: return reply_text = reply_text + MSG_SUFFIX else: reply_text = note_auto_reply_text if note_auto_reply_text: itchat.send(reply_text, userid) note = '\n{}发送来的:{}\n自动回复:{}'.format(nickname, text, reply_text) set_note(note)
import itchat # 先登录 itchat.login() chatroomUserName = '******' friend = itchat.get_friends()[1] r = itchat.add_member_into_chatroom(chatroomUserName, [friend]) if r['BaseResponse']['ErrMsg'] == '': status = r['MemberList'][0]['MemberStatus'] itchat.delete_member_from_chatroom(chatroom['UserName'], [friend]) return { 3: u'该好友已经将你加入黑名单。', 4: u'该好友已经将你删除。', }.get(status, u'该好友仍旧与你是好友关系。')