diff --git a/admin/dashboard/server.py b/admin/dashboard/server.py index 64850f6..a82b403 100644 --- a/admin/dashboard/server.py +++ b/admin/dashboard/server.py @@ -198,7 +198,8 @@ class DashboardServer: user_data = { "wxid": self.robot.wxid, "nickName": self.robot.nickname, - "mobile": self.robot.phone + "mobile": self.robot.phone, + "smallHeadImgUrl": self.robot.head_image } if not user_data: return {"success": False, "message": "未获取到用户数据"} diff --git a/resource/卡片ID.txt b/resource/卡片ID.txt new file mode 100644 index 0000000..35e408a --- /dev/null +++ b/resource/卡片ID.txt @@ -0,0 +1,308 @@ +wx5e1940228175fdc5 720云 +wx14e6b0215602695c Blued +wxc1ac68bd3d5a7381 CAD看图王 +wxf789c03c017d58d6 CSDN +wx1e7c471af7c85aec DJ多多 +wx2362365843371394 DJ嗨嗨 +wx4a2015b1eba8b32c Hello语音 +wxbada3fc7a6cb8d22 IT之家 +wx0d7f08b94ce109b2 jovi输入法 +wxb282679aa5d87d4a Keep +wxdb691a69fbe2a6a7 Max+ +wx288c5706af4794ee Moon月球 +wxd930ea5d5a258f4f OpenSDK Demo +wx58837a82c2e0ed15 QQ安全中心 +wx360b06d575d20cc3 QQ飞车手游 +wxf0a80d0ac2e82aa7 QQ分享 +wxc71c879291b0f5ec QQ输入法手机版 +wx1d0f5457c7556472 QQ小世界 +wx5aa333606550dfd5 QQ音乐 +wx4b7110bee4d7c9b9 QQ邮箱 +wxa140d866ec0fe092 sky光•遇 +wx5ca58eed072c774e Top Widgets +wx020a535dccd46c11 UC浏览器 +wx71955f58e7747601 VN视频剪辑 +wxfcbcc7b981b4013c WIFI万能钥匙Pro版 +wx804d91d1cee20313 Y2002音乐 +wx9ad0060a6cff3d45 Zepp +wx05a5c3841b61aaf8 ZeppLife +wxae34109a271f7254 阿里云盘 +wx2fab8a9063c8c6d0 爱奇艺 +wx37a067ae9226de4d 傲软抠图 +wx3fcdd8310a136ff8 百度APP +wx27a43222a6bf2931 百度 +wxb42cca62c3f838b9 百度输入法 +wx608a35259a6f2d5f 百度输入法键盘 +wxa278525fb9f661fd 百度输入法小米版 +wx289a8c58bca4c71e 百度贴吧 +wxc4d74fa6f3968535 百度贴吧移动支付 +wx65cffe5f882034d1 百度网盘 +wxf5a0f2eb63b78447 保时捷智慧出行 +wxcb8d4298c6a09bcb 哔哩哔哩 +wxd54bd75ad89d33a0 哔哩哔哩客户端 +wx45116b30f23e0cc4 波点音乐 +wx83b51f04d7ebb03b 彩云天气Pro +wxb81788a085843d31 超级课程表-表表 +wxffc3a16e4a8e535a 车来了 +wx58164a91f1821369 穿越火线-枪战王者 +wx9181ed3f223e6d76 春晚摇一摇 +wx9b1de7cd8f8deb72 大麦 +wxf510c23171aefc1a 大师Pro测试版 +wx18f4395f7d76645a 大师Pro开发版 +wx8e251222d6836a60 大众点评 +wx06a0d7e0013fd686 蛋仔派对hw +wx276cd3ba4592bb9f 蛋仔派对 +wx7e8eef23216bade2 滴滴出行 +wx00868f158610b1f7 第五人格 +wxdf261c3b90ffbc25 电信营业厅客户端 +wx50a3272e1669f0c0 订阅号助手 +wxf6f9993ebaa8d663 钉钉 +wx76fdd06dde311af3 抖音 +wx0d3cc3a6e9f20276 斗破苍穹:异火重燃 +wx6be84d532f192698 斗鱼 +wx0ea7a86743e8aa47 堆糖 +wx5d4b8c07d3999007 多邻国 +wxecf8990f4a9ea69e 番茄免费小说app +wxd638ead9776a3c87 飞凡汽车Rising Auto +wx9b913299215a38f2 高德地图 +wxe2a19dccf56fd564 工行手机银行 +wxf680c5a113e94b3f 工银兴农通 +wxa402496b7ea7f957 广发银行发现精彩APP +wxb0eef1f67b7a2949 国家反诈中心 +wx84008f9992caeaf3 果冻宝盒 +wx0e9bd96707b56471 哈啰APP +wx4db69980ed8f57a4 汉堡睡前故事 +wx015c3d7da5028dee 和包 +wxc4c0253df149f02d 和平精英 +wxbe109926790a6b4a 葫芦侠 +wx1151bdc91cda1ed2 虎牙直播 +wx65d8aeb837088899 华为浏览器 +wx76fc280041c16519 欢乐斗地主(腾讯) +wxd9c063843bafda36 欢太浏览器 +wxdad7cff233bd33f8 黄油相机 +wx82dd7436af5db835 火影忍者 +wxae75e4ceb13c9df5 货拉拉司机端 +wxf4b42938cba94b7e 即刻 +wx6fcf65f28d6a3919 驾考宝典 +wx83cc040b89fc9445 见圳 +wx6ab1a4553dcb411f 建行生活 +wx0ea99e425e26f1d4 交警12123 +wx4ed5a44d6f4fdf10 今日头条(社交版) +wx50d801314d9eb858 今日头条 +wxb23e82d26e8ab140 金铲铲之战 +wxe75a2e68877315fb 京东 +wxa3b3f36fcd9df06e 京东金融 +wx1ebb9c41ccbfb6d4 肯德基 +wxb1753a8e51d9d32d 酷安 +wx72b795aca60ad321 酷狗概念版 +wx79f2c4418704b4f8 酷狗音乐 +wxc305711a2a7ad71c 酷我音乐 +wx85686879e8891882 夸克 +wxaadbab9d13edff20 快手 +wx42d6d3bdc1cb2bdc 快手极速版 +wxf369b525a2913087 乐趣用品 +wx912afad5fd3f8f46 雷速体育 +wx10e2ae0624e95569 黎明觉醒:生机 +wxe939a762f096c3b0 恋爱话术pro +wxee04edfc147e07d4 撩蜜 +wx29d28524d6eaf623 流利说英语 +wxfdab5af74990787a 龙之谷 +wx30d7e1a70c61789d 埋堆堆 +wxace271fb4fda0bc2 麦当劳STG +wx6d8030a2f43b09a2 麦当劳 +wx97ae91ec83768ad4 猫耳 +wx8d1a39cef44841a8 猫之城 +wxa552e31d6839de85 美团 +wx9f6523d23a33a5b3 美团外卖 +wx39f35628c5fd95d3 美团外卖商家 +wxe6bb36187c7fa4b9 梦幻西游互通版 +wx4cbc67ebaa25f436 蜜堂好物 +wx3858261cdede9ca0 喵喵机 +wxc1063474755a5f24 磨题帮 +wx967c25b040d37a06 皮皮虾 +wx77d53b84434b9d9a 拼多多 +wx124f5809f1a1bead 拼多多好货 +wxf77e7a0d4f534650 拼多多商家版 +wx8d063edb6f724dd9 平安好车主 +wx608e400f36844b88 平安口袋E +wx4ab005521f9f1c04 七猫免费小说 +wx4706a9fcbbca10f2 企业微信 +wx904fb3ecf62c7dea 汽水音乐 +wx3c77de7b9a15dc9f 千千音乐 +wxef84982ef5634a6e 悄悄友朋圈 +wxcaefc046890fd638 清风Dj +wx2ed190385c3bafeb 全民K歌 +wx59cc372381201d39 瑞幸咖啡 +wx48a3b2db49e29a1b 三生三世十里桃花 +wx8985aa576c242138 扫电视 +wxfbc915ff7c30e335 扫条码 +wxb08b45996fcdb650 沙拉视频 +wxed08b6c4003b1fd5 什么值得买 +wxc933ffba7d9de4dc 使命召唤手游 +wxf7c4c8000b39008e 手机阿里巴巴 +wx347920cf749b82a7 说得相机 +wxd855cafb5b488002 搜狗输入法 +wxb45673e2d96faa6a 淘宝 +wx36174d3a5f72f64a 腾讯地图 +wxca942bbff22e0e51 腾讯视频 +wxccac4ab14315add3 腾讯手机管家 +wx073f4a4daff0abe8 腾讯新闻 +wx71873ad429f369f9 天天军棋 +wx25a5ad4ed63c2176 贴吧Debug +wx77e0ce8ec8251e8d 贴吧公测App +wxb84362f15c06b3f2 铁路12306 +wxc30efa39c0191186 同花顺 +wxec8f618eaecadf83 歪麦 +wx7819539d83b9dc1e 完美世界 +wx95a3a4d7c627e07d 王者荣耀 +wx263e2055f871aba6 网易新闻专业版 +wx0aa69088a182a76e 网易邮箱大师Pro +wx8dd6ecd81906fd84 网易云音乐 +wx68ca4cf18bbd5838 威锋社区 +wx299208e619de7026 微博 +wxc2d4705bed01319d 微博轻享版 +wx2e5df03e8b9c6525 微店 +wx640ea70eb695d13a 微店买家版 +wx02753775b9060fec 微脉圈 +wxce2a6f4e935b4506 微脉水印相机 +wx6618f1cfc6c132f8 微信电脑版 +wxab9b71ad2b90ff34 微信读书 +wx62d9035fd4fd2059 微信游戏 +wx786ab81fe758bec2 微云 +wxe70cb772111a504c 文字emoji +wx84ef4b0064a3b863 我的看房日记 +wxfebaaacdc317ced7 喜欢和你在一起 +wxb42f1f273716d464 潇湘书院 +wx1ba3408a50f18d5b 小蚕荟 +wxe8989eb8b38b5c4d 小黑盒 +wxd8a2750ce9d46980 小红书 +wx6489dbf9e805d4e9 小黄历 +wx20614bfdb40644b6 秀色秀场 +wx8b5220847f7bb64f 学习通 +wx9ceeba6e63dd491a 讯飞输入法Pro +wx1b4d03357ad23b00 妖精的尾巴:魔导少年 +wx220cd3a2b03aba92 妖精的尾巴力量觉醒 +wx2fe12a395c426fcf 摇一摇 +wx485a97c844086dc9 摇一摇 +wxa9ae1d63973c3798 遥望 +wxbdc5610cc59c1631 一号会员店 +wx123790a68951765e 一起来捉妖 +wxff1f0c8244042666 壹深圳 +wx6392ee2bb4d30891 壹言 +wx5a611599efa17e78 英雄联盟手游 +wxbda00e1f0a7e2784 英语趣配音 +wxd695f382e6955e5a 影猫电影 +wxf56d7d93bc226f2e 友邻优课 +wx5c6bfdfc3d281fa9 有道词典 +wxf10bdff91370663d 有道翻译官 +wxf2d9346601f834ab 元气壁纸 +wx1c37343fc2a86bc4 原神 +wx82582d2ace426da2 云闪付UnionPay +wxd3f6cb54399a8489 知乎 +wx3e388e8f02f38759 智行火车票 +wx2654d9155d70a468 中国建设银行 +wxc55371ea66dc0e89 中国建设银行手机银行 +wxa13d0b8c5270d1ff 中国联通APP +wxb6a144065b813239 中国农业银行 +wxb1214b15f1e07e06 中国银行 +wxba9074d7f4eeae4e 中国移动 +wx51d21349ff5b33a6 中华万年历 +wx324cd70c3e181d8b 中银跨境GO +wx6f1a8464fa672b11 转转客户端 +wx6b5d149cf4477e08 桌面喵 +wxbe198ad3f7f0dc4c 子午万年历 +wx16516ad81c31d872 最右 +wx6d7e881b87cd1114 LV +wxef5e7e401d2565f7 手机KM +wx5fa4ebf320cf69f5 垃圾桶捡到的手机 +wx115bcff956fd0905 仅限渣女可见 +wx281a70a3d390bdf2 来自好友已设置小可爱可见 +wx1bf866d2942d372f 来自穷人专用老年机 +wx196da8c2beb9a80c 神一样的男人 +wxc5008ff8bbb20501 中国医院院长 +wxa0104328eeb70938 警察叔叔 +wx92e3210df60c2e11 四川公安 +wxf2b0142a7808f8e3 安逸花 +wx300c410f4257c6f3 墨迹天气 +wx4fee0da9380b6608 小米汽车 +wxc1cbcfd64b6d7b36 凯迪拉克 +wx1f0ad8eda021c271 林肯 +wx92398516de814096 梅赛德斯一奔驰 +wx5890b7f5fa771b71 政务平台 +wxbbd956c9ed33587c 中国空号 +wx409f9a530a68e3d4 新华社 +wx0a38dab2463cbcd2 央视新闻客户端 +wx0e054ce4ae213018 国务院客户端 +wxce5ad9b066a22cc5 同城聊欢 +wx274f9e94ca7302a1 司法部 +wxa43341eed288d77b 中国纪委 +wxefa60233f28c2955 人民网 +wxcdc5278445b04d39 国防 +wx6321d27140be32de 人民日报 +wxb95dc20dcf9fbd0a 天眼查 +wxda2ce55e23a3e06c 爱疯18k永恒钻石版 +wx511c8b609d0c7710 来自BMWX5社交互联 +wxb09d381947fc1678 像我这样的一个人 +wxf0bcb316d289f6a4 亮丽内蒙古 +wxe0cf858703575ebb FBI专用手机 +wxffee936f89cd0db9 来自紫霞仙子的手机 +wxe6f1e2780ae2a481 仅限长比我丑的人可见 +wxaf048e83e0ab3f08 来自一位陌生的透明人 +wx9ad15554b19159ee 我能对你笑便能对你哭 +wx7395b7ea7ae1cab7 主动久了便会累了 +wx77909ff94ab8b236 一杯敬明天一杯敬过往 +wxbd1caba2e56648a2 来自吃鸡大神专用手机 +wx3e73d1816c6e065a 来自天上人间钻石VIP +wxff725ddb21b2e1f7 先放手的人最心痛 +wxb4adc29695b46e90 翻盖大哥大 +wxcd3130c3a4ae2177 你若安好我便不扰 +wxb42414c035f71567 来自博亿达保险专用机 +wx6d9823e75d12ae61 上瘾的东西不会是甜的 +wx8f7f888f74380733 ByiPhoneX +wxf8451614bded3112 iPhoneXI内测机 +wxcdaef18b70a86147 IPhoneXiMax工程机 +wxa6eb9f1e291d445f 二狗哥哥的iPhone +wxca25444c1e5649c5 iPhoneXiMax工程机 +wx224098d46d4e8bde 13888888888 +wx322bb520817c18e7 懒癌晚期已弃疗 +wx2498965842637a13 肉的理想白菜命 +wxd80e96b5e48d7728 点赞有惊喜Surprise +wx142f30ba774eae62 森米良心小卖家 +wx912d5d0260ab5965 付费看评论 +wx5ce6035a51a71c8d 同时提到了你 +wxe0d515767e6c3e1e 已关闭评论功能 +wxfc6a2aae239774b5 王者内测专用机 +wx20f9c2070f1c3156 需要一个件维持生活 +wx3fb4f32d3930a347 吃鸡内测专用机 +wxc061a68197db1e6a 你拿的住我嘛 +wxb95263bc58ab28da 生日快乐鸭 +wx4ba729b57c4859d5 HUAWEI P30Pro +wxd5a171b821e04a1e 看到请还钱 +wxfcc50503e0ba579a 淼淼的IPhoneX +wx2359940f314a69f7 ıPhoneXE +wx528bc3d4b664d037 仇家多不方便透漏名字 +wx315ce2808c20cb43 一直被模仿从未被超越 +wx367b267970d4cff8 今日还钱打99折 +wx1b17d828fdad34cc 克克克克业业 +wxe299f0e6b1f956e2 祝自己生日快乐 +wx562d2e7716c4e622 别放弃治疗 +wxaff9498e091aa711 点赞后显示咋自定义 +wx7c54fdba0fa911a8 点赞后查看详情 +wxe41414ecc104b2ff HUAWEI Mate40 +wxd6691b857145f7f0 HUAWEI MateX +wxafd95c7c133d01d5 HUAWEI Mate30 +wx8b42cb3499e1c520 HUAWEI P40 +wx934ec697e72a2fe1 叙利亚打工中 +wxa91fccd5ffa9b407 对方正在输入 +wx203a1671e701a3ae 支付宝 +wx3f4266934f0e29fb 仅限渣男可见 +wx81474f8de1253450 诺基亚N72 +wxb537a7de758633d2 摩托罗拉328C +wxea2a989cebb8d5d2 佳能EOS1D X相机 +wxe0c0578e15b5df13 买菜必涨价超级加倍 +wx01a907ff432e7576 DJI御mavic2专业版 +wx0a0f2bf2d182f54e 我是颜值主播不露脸 +wx6fa77ecafa6449ac MY BMW +wxec4ff208989270e3 一汽奥迪 +wx6618f1cfc6c132f8 微信电脑版 +wxe3ad19e142df87b3 麻豆约拍 \ No newline at end of file diff --git a/robot.py b/robot.py index 41956cc..4a2cd7d 100644 --- a/robot.py +++ b/robot.py @@ -163,7 +163,6 @@ class Robot: else: # 已登录 self.ipad_bot.wxid = wxid profile = await self.ipad_bot.get_profile() - self.ipad_bot.nickname = profile.get("NickName").get("string") self.ipad_bot.alias = profile.get("Alias") self.ipad_bot.phone = profile.get("BindMobile").get("string") @@ -189,6 +188,11 @@ class Robot: self.message_storage = MessageStorage(self.ipad_bot) + # 获取扩展信息,显示相关内容 + ext_profile = await self.ipad_bot.get_profile_info_ext() + self.ipad_bot.profile_ext = ext_profile + self.ipad_bot.head_image = ext_profile.get("SmallHeadImgUrl").get("string") + # 先接受堆积消息 self.LOG.info("处理堆积消息中") @@ -222,7 +226,8 @@ class Robot: self.LOG.error(f"获取新消息失败 {e}") if "用户可能退出" in str(e): self.LOG.error(f"用户可能退出: {e}") - self.email_sender.send_wechat_alert(self.config.email.get("alert_recipient"), f"用户可能退出: {e}", self.wxid, + self.email_sender.send_wechat_alert(self.config.email.get("alert_recipient"), + f"用户可能退出: {e}", self.wxid, self.nickname) await self.login_twice_auto_auth() await asyncio.sleep(5) @@ -324,7 +329,8 @@ class Robot: self.LOG.error(f"wechat_ipad heartbeat: {e}") if "用户可能退出" in str(e): self.LOG.error(f"用户可能退出: {e}") - self.email_sender.send_wechat_alert(self.config.email.get("alert_recipient"), f"用户可能退出: {e}", self.wxid, + self.email_sender.send_wechat_alert(self.config.email.get("alert_recipient"), f"用户可能退出: {e}", + self.wxid, self.nickname) await self.login_twice_auto_auth() await asyncio.sleep(60) @@ -343,7 +349,8 @@ class Robot: self.LOG.error(f"wechat_ipad heartbeat long: {e}") if "用户可能退出" in str(e): self.LOG.error(f"用户可能退出: {e}") - self.email_sender.send_wechat_alert(self.config.email.get("alert_recipient"), f"用户可能退出: {e}", self.wxid, + self.email_sender.send_wechat_alert(self.config.email.get("alert_recipient"), f"用户可能退出: {e}", + self.wxid, self.nickname) await self.login_twice_auto_auth() await asyncio.sleep(120) @@ -351,7 +358,7 @@ class Robot: async def _process_ipad_message(self, message: WxMessage): """处理wechat_ipad消息""" try: - self.LOG.debug(f"message: {message}") + # self.LOG.debug(f"message: {message}") # 消息已经是WxMessage对象,直接使用其属性和方法 from_user = message.sender to_user = message.to_user diff --git a/wechat_ipad/client/user.py b/wechat_ipad/client/user.py index 7dbc43d..74873a6 100644 --- a/wechat_ipad/client/user.py +++ b/wechat_ipad/client/user.py @@ -35,6 +35,34 @@ class UserMixin(WechatAPIClientBase): else: self.error_handler(json_resp) + async def get_profile_info_ext(self, wxid: str = None) -> dict: + """获取用户扩展信息。 + + Args: + wxid (str, optional): 用户wxid. Defaults to None. + + Returns: + dict: 用户信息字典 + + Raises: + UserLoggedOut: 未登录时调用 + 根据error_handler处理错误 + """ + if not self.wxid and not wxid: + raise UserLoggedOut("请先登录") + + if not wxid: + wxid = self.wxid + + async with aiohttp.ClientSession() as session: + response = await session.post(f'http://{self.ip}:{self.port}/api/User/GetContractProfile?wxid={wxid}') + json_resp = await response.json() + + if json_resp.get("Success"): + return json_resp.get("Data").get("userInfoExt") + else: + self.error_handler(json_resp) + async def get_my_qrcode(self, style: int = 0) -> str: """获取个人二维码。