from flask_restful import Resource, reqparse from flask import jsonify,request,json from common import redis_helper,utils from wechat import gewe_chat class DeleteFriendResource(Resource): def __init__(self): self.parser = reqparse.RequestParser() self.wxchat = gewe_chat.wxchat def post(self): req = request.get_json() wxid = req.get("wxid") friend_wxid = req.get("friendWxid") _,login_info = utils.get_login_info_by_wxid(wxid) # 从Redis获取登录信息 if not login_info or login_info.get('status') =="0": response = jsonify({ 'code': 401, 'message': '用户没有登录' }) response.status_code = 401 return response token_id = login_info.get('tokenId') app_id = login_info.get('appId') # 调用删除好友接口 ret, msg, data = self.wxchat.delete_friend(token_id, app_id, friend_wxid) if ret !=200: response=jsonify({ 'code': ret, 'message': "删除好友失败" }) response.status_code = ret return response ret, msg, data = self.wxchat.fetch_contacts_list(token_id, app_id) if ret !=200: response=jsonify({ 'code': ret, 'message': '获取联系人列表失败' }) response.status_code = ret return response friend_wxids = data['friends'][3:] data=self.wxchat.save_contacts_brief_to_cache(token_id, app_id, wxid, friend_wxids) return jsonify(data) class GetFriendsInfoResource(Resource): def __init__(self): self.parser = reqparse.RequestParser() self.wxchat = gewe_chat.wxchat def post(self): req = request.get_json() wxid = req.get("wxid") cache = req.get("cache",True) _,loginfo=utils.get_login_info_by_wxid(wxid) if not loginfo: response=jsonify({ 'code':404, 'message':'找不到相关信息' }) response.status_code=404 return response token_id=loginfo.get('tokenId') app_id=loginfo.get('appId') if cache: cache=self.wxchat.get_contacts_brief_from_cache(wxid) # cache_str=redis_helper.redis_helper.get_hash_field(f'__AI_OPS_WX__:CONTACTS_BRIEF:{wxid}','data') # cache = json.loads(cache_str) if cache_str else [] return jsonify(cache) else: ret,msg,contacts_list=self.wxchat.fetch_contacts_list(token_id,app_id) if ret!=200: response=jsonify({ 'code':ret, 'message':msg }) response.status_code=ret return response friend_wxids = [c for c in contacts_list['friends'] if c not in ['fmessage', 'medianote','weixin','weixingongzhong']] # 可以调整截取范围 data=self.wxchat.save_contacts_brief_to_cache(token_id, app_id, wxid, friend_wxids) print(f'{wxid}获取实时好友信息') return jsonify(data)