1572 lines
153 KiB
C#
1572 lines
153 KiB
C#
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Diagnostics;
|
||
using System.Drawing;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Runtime.InteropServices;
|
||
using System.Text;
|
||
using System.Text.RegularExpressions;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using System.Web;
|
||
using System.Web.Caching;
|
||
using CsharpHttpHelper;
|
||
using Newtonsoft.Json;
|
||
using Newtonsoft.Json.Linq;
|
||
using PCRobot.Entitys;
|
||
using PCRobot.Pack;
|
||
using PCRobot.Utils;
|
||
using static PCRobot.PCWechat.Routine.Wechat_Xiaoxie_Type;
|
||
|
||
namespace PCRobot.PCWechat.Routine
|
||
{
|
||
public partial class Wechat_Xiaoxie
|
||
{
|
||
// 接收消息回调
|
||
static void WxRecvCallback(uint dwClient, IntPtr intPtr, uint dwSize)
|
||
{
|
||
try
|
||
{
|
||
byte[] body = new byte[dwSize];
|
||
Marshal.Copy(intPtr, body, 0, body.Length);
|
||
var recvData = Encoding.UTF8.GetString(body).Replace("\0", "").Trim();//再转成UTF8
|
||
if (WechatClient.IsDebug) LogHelper.GetSingleObj().Debug("调试收到文本消息", $"{dwClient} -> {recvData}\r\n");
|
||
|
||
//Console.WriteLine($"{dwClient} -> {recvData}\r\n");
|
||
|
||
var dwClientid = dwClient;
|
||
Task.Factory.StartNew(delegate ()
|
||
{
|
||
try
|
||
{
|
||
//Console.WriteLine("收到消息:" + recvData);
|
||
var jObj = JObject.Parse(recvData);
|
||
if (jObj == null) return;
|
||
var type = jObj["type"].ToString();
|
||
|
||
var data = jObj.ContainsKey("data") ? jObj["data"] : null;
|
||
|
||
MsgType msgType;
|
||
if (!Enum.TryParse(type, out msgType)) return;
|
||
|
||
if (PCRobotForm.AnalysisTypes != null && PCRobotForm.AnalysisTypes.Count != 0)
|
||
{
|
||
if (PCRobotForm.AnalysisTypes.FirstOrDefault(f => f == msgType.ToString().ToUpper()) == null)
|
||
return;
|
||
}
|
||
|
||
WechatUser user = WechatClient.GetUser(dwClientid, WechatType.Xiaoxie);
|
||
|
||
switch (msgType)
|
||
{
|
||
case MsgType.MT_SEND_XMLMSG:
|
||
break;
|
||
case MsgType.MT_DECRYPT_IMG_MSG:
|
||
break;
|
||
case MsgType.MT_DEBUG_LOG:
|
||
break;
|
||
case MsgType.MT_RECV_QRCODE_MSG:
|
||
{
|
||
//{"data":{"code":"http://weixin.qq.com/x/A98qrQOk3qB6L_fWPtxF","file":"C:\\Users\\????006\\AppData\\Local\\Temp\\qrcF451.tmp","pid":24088},"type":11087}
|
||
if (data == null || data["file"] == null) return;
|
||
var file = data["file"].ToString();
|
||
|
||
var reg = Regex.Match(file, @"Temp\\(?<文件名>[a-z0-9A-Z]+.tmp)", RegexOptions.IgnoreCase);
|
||
if (reg.Success)
|
||
{
|
||
var codeFile = HttpExtend.MapFile($"{reg.Groups["文件名"].Value}", Path.GetTempPath());
|
||
if (File.Exists(codeFile))
|
||
{
|
||
var pid = int.Parse(data["pid"].ToString());
|
||
var codeFilePng = Path.ChangeExtension(codeFile, "png");
|
||
try
|
||
{
|
||
if (File.Exists(codeFilePng))
|
||
File.Delete(codeFilePng);
|
||
File.Move(codeFile, codeFilePng);
|
||
if (File.Exists(codeFilePng))
|
||
{
|
||
var cfBase64 = Common.ConvertImageToBase64(Image.FromFile(codeFilePng));
|
||
|
||
var codeInfo = new RemoteLoginCode() { pid = pid, cImgB64 = cfBase64, b64Md5 = HttpHelper.ToMD5(cfBase64), rType = RobotType.客户端微信, t = HttpExtend.GetTimeStamp(DateTime.Now) };
|
||
|
||
Cache cache = HttpRuntime.Cache;
|
||
//查找 md5 的缓存,不存在则返回null
|
||
object item = cache[RemoteCache];
|
||
cache.Insert(RemoteCache, codeInfo, null, DateTime.Now.AddSeconds(3), Cache.NoSlidingExpiration);
|
||
|
||
RemoteLoginCodes.Add(codeInfo);
|
||
}
|
||
}
|
||
catch (Exception)
|
||
{ }
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_USER_LOGIN://登陆消息
|
||
{
|
||
WechatLoginHelper.EndBinginLogin();
|
||
|
||
|
||
var wxid = data["wxid"].ToString();
|
||
|
||
user = WechatClient.GetUser(wxid, dwClientid, WechatType.Xiaoxie);
|
||
|
||
var client = WechatClient.GetApi(user);
|
||
|
||
//var friendInfo = (client as Wechat_Xiaoxie).UpdateFriendInfo(wxid).Result;
|
||
//user.Nickname = (friendInfo != null && !string.IsNullOrWhiteSpace(friendInfo.nickname)) ? friendInfo.nickname : data["nickname"].ToString();
|
||
|
||
user.Nickname = data["nickname"].ToString();
|
||
user.HeaderUrl = data["avatar"].ToString();
|
||
user.DBFile = data["wx_user_dir"].ToString();
|
||
user.Pid = int.Parse(data["pid"].ToString());
|
||
user.Phone = data["phone"].ToString();
|
||
user.Uin = GetUin(user.Pid);
|
||
|
||
WechatClient.OnRefUserEvent(user, WaitLoginResult);
|
||
//if (WechatClient.IsDebug)
|
||
// LogHelper.GetSingleObj().Debug("调试登录", $"{wxid} - {user}");
|
||
}
|
||
break;
|
||
case MsgType.MT_USER_LOGOUT:
|
||
{
|
||
var wxid = data["wxid"].ToString();
|
||
user = WechatClient.Users.FirstOrDefault(f => f.Key == wxid).Value;
|
||
if (user != null)
|
||
{
|
||
LogHelper.GetSingleObj().Info("系统", $"LogOut事件退出,Uin:{user.Uin},微信:{user.Nickname}({wxid})");
|
||
WechatClient.RemoveUser(user);
|
||
}
|
||
//if (WechatClient.IsDebug)
|
||
// LogHelper.GetSingleObj().Debug("调试注销", $"{wxid} - {user}");
|
||
}
|
||
break;
|
||
case MsgType.MT_SQL_QUERY:
|
||
break;
|
||
case MsgType.MT_DATA_OWNER_MSG:
|
||
break;
|
||
case MsgType.MT_DATA_WXID_MSG:
|
||
{
|
||
//{"data":{"account":"MOKA_1314_","avatar":"http://wx.qlogo.cn/mmhead/ver_1/UKuQPgzLzEY0UPqTgmqpSibLmx1BMibAlwJxOp4t8QksClGJP8tLHxUiaBDAax1Vf0Eiae6wKBIoT3ibAgOYTuuWiaVDiaiayiaaIZF46LcE5aBvTtSQ/132","city":"Chengdu","country":"CN","nickname":"进销存","province":"Sichuan","remark":"","sex":2,"wxid":"wxid_va4xpj22"},"type":11029}
|
||
|
||
if (data == null || user == null)
|
||
return;
|
||
|
||
//{"data":{"account":"MOKA_1314_","avatar":"http://wx.qlogo.cn/mmhead/ver_1/UKuQPgzLzEY0UPqTgmqpSibLmx1BMibAlwJxOp4t8QksClGJP8tLHxUiaBDAax1Vf0Eiae6wKBIoT3ibAgOYTuuWiaVDiaiayiaaIZF46LcE5aBvTtSQ/132","city":"Chengdu","country":"CN","nickname":"进销存","province":"Sichuan","remark":"","sex":2,"wxid":"wxid_va4xpj22"},"type":11029}
|
||
var username = data["wxid"]?.ToString();
|
||
if (username.IsGzh()) return;
|
||
|
||
if (user.IsGetContactDic.ContainsKey(username) && user.IsGetContactDic[username])
|
||
return;
|
||
|
||
try
|
||
{
|
||
try
|
||
{
|
||
user.IsGetContactDic[username] = true;
|
||
}
|
||
catch (Exception)
|
||
{ }
|
||
|
||
var wxid = data["wxid"]?.ToString();
|
||
if (Common.IsGzh(wxid, WechatClient.IsGzh)) return;
|
||
|
||
var f = new FriendInfo();
|
||
|
||
f.account = data["account"]?.ToString();
|
||
f.wxid = wxid;
|
||
f.nickname = data["nickname"]?.ToString();
|
||
f.remark = data["remark"]?.ToString();
|
||
f.avatar = data["avatar"]?.ToString();
|
||
f.city = data["city"]?.ToString();
|
||
f.country = data["country"]?.ToString();
|
||
f.province = data["province"]?.ToString();
|
||
f.sex = int.Parse(data["sex"]?.ToString());
|
||
|
||
user.Friends[f.wxid] = f;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.GetSingleObj().Error($"个人微信解析群用户信息", ex.Message);
|
||
}
|
||
finally
|
||
{
|
||
Thread.Sleep(100);
|
||
user.IsGetContactDic.Remove(username);
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_DATA_FRIENDS_MSG:
|
||
{
|
||
if (data == null || user == null)
|
||
return;
|
||
|
||
var _type = RobotIsRunType.获取好友列表;
|
||
if (user.IsGetDic.ContainsKey(_type))
|
||
{
|
||
if (user.IsGetDic[_type])
|
||
return;
|
||
}
|
||
|
||
try
|
||
{
|
||
user.IsGetDic[_type] = true;
|
||
|
||
var jArr = (JArray)data;
|
||
for (int i = 0; i < jArr.Count; i++)
|
||
{
|
||
var item = jArr[i];
|
||
|
||
var wxid = item["wxid"]?.ToString();
|
||
|
||
if (wxid.IsGzh(WechatClient.IsGzh)) continue;
|
||
|
||
var f = new FriendInfo();
|
||
f.wxid = wxid;
|
||
f.account = item["account"]?.ToString();
|
||
f.nickname = item["nickname"]?.ToString();
|
||
f.remark = item["remark"]?.ToString();
|
||
f.avatar = item["avatar"]?.ToString();
|
||
f.sex = int.Parse(item["sex"]?.ToString());
|
||
f.city = item["city"]?.ToString();
|
||
|
||
user.Friends[wxid] = f;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.GetSingleObj().Error("获取好友列表消息", ex.Message);
|
||
}
|
||
finally
|
||
{
|
||
Thread.Sleep(100);
|
||
user.IsGetDic.Remove(_type);
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_DATA_CHATROOMS_MSG:
|
||
{
|
||
var _type = RobotIsRunType.获取群列表;
|
||
if (user.IsGetDic.ContainsKey(_type))
|
||
{
|
||
if (user.IsGetDic[_type])
|
||
return;
|
||
}
|
||
|
||
|
||
var hook = WechatClient.GetApi(user);
|
||
|
||
#region 原始数据格式
|
||
//{"data":[{"avatar":"http://wx.qlogo.cn/mmcrhead/iahdQicCC5VBRq5vMm7FxlfPct57WiadZ0NEnMUeicvXyS0fh73Hibw0QkkDMw9RQMETbWENFia9NQlmpibkH0bKsOothztfu8waTFy/0","is_manager":0,"manager_wxid":"wxid_yeh4ssxdjpqv12","member_list":["wxid_yeh4ssxdjpqv12","wujiahua0876","wxid_aiwyq8o6iqja12","wxid_lzssz365bwl222"],"nickname":"成都测试群","total_member":4,"wxid":"24444455370@chatroom"}],"type":11031}
|
||
|
||
//{"data":[{"avatar":"","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22","wxid_89qxkbyaxrok22","wxid_mjzeh4qj9hio22","wxid_z0ucghuw8q4d21","wujiahua0876"],"nickname":"Coco、小鱼、不摇莲","total_member":5,"wxid":"24135168489@chatroom"},{"avatar":"","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22","wxid_89qxkbyaxrok22","wxid_6gkp3tl2brgw22","wxid_vebvd7abpq1m22","wxid_mjzeh4qj9hio22","wxid_jhr9qilcujjn22","wxid_z0ucghuw8q4d21"],"nickname":"Coco、小鱼、省钱助手@a17","total_member":7,"wxid":"23171893028@chatroom"},{"avatar":"","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22"],"nickname":"Coco","total_member":1,"wxid":"24350471577@chatroom"},{"avatar":"","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22"],"nickname":"Coco","total_member":1,"wxid":"22193183022@chatroom"},{"avatar":"","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22"],"nickname":"Coco","total_member":1,"wxid":"21553892843@chatroom"},{"avatar":"","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22"],"nickname":"Coco","total_member":1,"wxid":"23189492814@chatroom"},{"avatar":"","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22"],"nickname":"Coco","total_member":1,"wxid":"21903182670@chatroom"},{"avatar":"","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22"],"nickname":"Coco","total_member":1,"wxid":"24466267291@chatroom"},{"avatar":"","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22"],"nickname":"Coco","total_member":1,"wxid":"24274273959@chatroom"},{"avatar":"","is_manager":0,"manager_wxid":"wujiahua0876","member_list":["wujiahua0876","wxid_tnizkijej5uq22"],"nickname":"先森吳、Coco","total_member":2,"wxid":"19070524816@chatroom"},{"avatar":"http://wx.qlogo.cn/mmcrhead/KdTWPmV0oYSq6awDribVAlPaHWWWGYMbPNt2d2DBbVzHm23kvp215MTjYx4Cttz6oXTF9GzkM0YYrNw4icyEctJKQICG6h7kic7/0","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22","wxid_vv7rev7a4xpj22","wxid_mjzeh4qj9hio22","wxid_z0ucghuw8q4d21","wxid_yeh4ssxdjpqv12","wxid_2ufntuf4purl22","wxid_8s44kddouuaj21","wujiahua0876"],"nickname":"ooooooooooooo","total_member":8,"wxid":"24487071687@chatroom"},{"avatar":"http://wx.qlogo.cn/mmcrhead/8ibIyIuZLEMHfDadJnw1uz97gsV1kVQL6f7RiadodacpWiaAVtDXE7g5Kb3Z1tCk7Q4J6keIndbSNI44dNH7RPGTOqKCftgBtzD/0","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":["wxid_tnizkijej5uq22","shulin6046","wxid_8s44kddouuaj21"],"nickname":"测试测试","total_member":3,"wxid":"18737615107@chatroom"}],"type":11031}
|
||
#endregion
|
||
|
||
try
|
||
{
|
||
user.IsGetDic[_type] = true;
|
||
|
||
var jArr = (JArray)data;
|
||
for (int i = 0; i < jArr.Count; i++)
|
||
{
|
||
var item = jArr[i];
|
||
var f = new FriendInfo();
|
||
|
||
f.avatar = item["avatar"]?.ToString();
|
||
f.wxid = item["wxid"]?.ToString();
|
||
f.nickname = item["nickname"]?.ToString();
|
||
f.remark = item["nickname"]?.ToString();
|
||
|
||
f.manager_wxid = item["manager_wxid"]?.ToString();
|
||
f.is_manager = int.Parse(item["is_manager"]?.ToString());
|
||
f.member_list = string.Join(",", (item["member_list"].ToArray().Select(z => z.ToString())));
|
||
|
||
//var group = user.Groups.FirstOrDefault(z => z.wxid == f.wxid);
|
||
//if (group == null)
|
||
//{
|
||
// //群不存在,去获取群成员信息
|
||
// var _json = HttpHelper.ObjectToJson(new { type = MsgType.MT_DATA_CHATROOM_MEMBERS_MSG, data = new { room_wxid = f.wxid } });
|
||
// _SendWeChatData(dwClientid, Encoding.UTF8.GetBytes(_json));
|
||
|
||
// group = new GroupInfo() { wxid = f.wxid, nickname = f.nickname, avatar = f.avatar, total_member = f.member_list.Length, friends = new List<FriendInfo>() };
|
||
// user.Groups.Add(group);
|
||
//}
|
||
//else
|
||
// group.total_member = f.member_list.Length;
|
||
|
||
GroupInfo group = new GroupInfo();
|
||
|
||
group.wxid = item["wxid"]?.ToString();
|
||
group.avatar = item["avatar"]?.ToString();
|
||
group.nickname = item["nickname"]?.ToString();
|
||
group.total_member = item["total_member"].ToObject<int>();
|
||
|
||
var groupMember = hook.GetGroupMemberInfo(group.wxid).Result;
|
||
if (groupMember != null)
|
||
{
|
||
group.friends = (groupMember as GroupInfo)?.friends;
|
||
}
|
||
else //获取失败就赋值简单的
|
||
{
|
||
var memberJarr = (JArray)item["member_list"];
|
||
for (int o = 0; o < memberJarr.Count; o++)
|
||
{
|
||
var username = memberJarr[o].ToString();
|
||
var ftmp = group.friends.FirstOrDefault(z => z.wxid == username);
|
||
if (ftmp == null)
|
||
group.friends.Add(new FriendInfo() { wxid = username });
|
||
}
|
||
}
|
||
|
||
user.Groups[group.wxid] = group;
|
||
|
||
user.Friends[f.wxid] = f;
|
||
}
|
||
}
|
||
catch (Exception)
|
||
{ }
|
||
finally
|
||
{
|
||
Thread.Sleep(100);
|
||
user.IsGetDic.Remove(_type);
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_DATA_CHATROOM_MEMBERS_MSG:
|
||
{
|
||
//获取群成员列表消息
|
||
var groupId = data["group_wxid"].ToString();
|
||
if (user.IsGetContactDic.ContainsKey(groupId) && user.IsGetContactDic[groupId])
|
||
return;
|
||
try
|
||
{
|
||
try
|
||
{
|
||
user.IsGetContactDic[groupId] = true;
|
||
}
|
||
catch (Exception)
|
||
{
|
||
}
|
||
var total = data["total"].ToString();
|
||
var member_list = (JArray)data["member_list"];
|
||
if (member_list == null)
|
||
{
|
||
return;
|
||
}
|
||
|
||
var group_wxid = data["group_wxid"].ToString();
|
||
if (member_list == null) return;
|
||
|
||
var group = user.Groups.FirstOrDefault(z => z.Key == group_wxid).Value;
|
||
if (group == null)
|
||
{
|
||
group = new GroupInfo() { wxid = group_wxid, total_member = member_list.Count, friends = new List<FriendInfo>() };
|
||
user.Groups[group_wxid] = group;
|
||
}
|
||
else
|
||
group.total_member = member_list.Count;
|
||
|
||
for (int i = 0; i < member_list.Count; i++)
|
||
{
|
||
//{"account":"","avatar":"http://wx.qlogo.cn/mmhead/ver_1/klibauQfLYtmfniaYAzsV9l6V4cSHmdDhniaTmJ6aGo0z035JTkB5QWrOUbAPnJnP4YXTMuKKmwNBMNv2Fbj5ia9icNicYeXGXbbsRiagGFKryASro/132","city":"","country":"","nickname":"陈建","province":"","remark":"","sex":0,"wxid":"wxid_e1j30jf2k5zdk022"}
|
||
|
||
var item = member_list[i];
|
||
|
||
var f = new FriendInfo();
|
||
f.account = item["account"]?.ToString();
|
||
f.avatar = item["avatar"]?.ToString();
|
||
f.city = item["city"]?.ToString();
|
||
f.country = item["country"]?.ToString();
|
||
f.nickname = item["nickname"]?.ToString();
|
||
f.province = item["province"]?.ToString();
|
||
f.remark = item["remark"]?.ToString();
|
||
f.sex = item["sex"].ToObject<int>();
|
||
f.wxid = item["wxid"]?.ToString();
|
||
|
||
var friend = group.friends.FirstOrDefault(z => z.wxid == f.wxid);
|
||
if (friend == null)
|
||
group.friends.Add(f);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.GetSingleObj().Error("个人微信解析群成员列表消息", ex.Message);
|
||
}
|
||
finally
|
||
{
|
||
Thread.Sleep(100);
|
||
user.IsGetContactDic.Remove(groupId);
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_DATA_PUBLICS_MSG:
|
||
{
|
||
|
||
}
|
||
break;
|
||
case MsgType.MT_UPDATE_WXID_MSG:
|
||
{
|
||
if (data == null)
|
||
return;
|
||
|
||
|
||
var username = data["wxid"]?.ToString();
|
||
if (username.IsGzh()) return;
|
||
|
||
if (user.IsGetContactDic.ContainsKey(username) && user.IsGetContactDic[username])
|
||
return;
|
||
|
||
try
|
||
{
|
||
try
|
||
{
|
||
user.IsGetContactDic[username] = true;
|
||
}
|
||
catch (Exception)
|
||
{
|
||
}
|
||
#region 数据结构
|
||
/*
|
||
{
|
||
"data": {
|
||
"account": "", // 微信号
|
||
"avatar": "http://wx.qlogo.cn/xxxxx/0", // 高清头像
|
||
"city": "", // 城市
|
||
"country": "YE", // 国家
|
||
"nickname": "xxxx", // 昵称
|
||
"province": "", // 省
|
||
"remark": "", // 备注
|
||
"sex": 1, // 性别 0未知,1男,2女
|
||
"signature": "", // 朋友圈个性签名
|
||
"small_avatar": "http://wx.qlogo.cn/mmhead/xxxx/132", // 小头像
|
||
"sns_pic": "http://szmmsns.qpic.cn/mmsns/xxxxx/0", // 朋友圈背景图片
|
||
"source_type": 3, // 来源类型,参写添加来源表
|
||
"status": 1, // 是否成功 1成功 ,0失败
|
||
"v1": "v1_xxxe26@stranger", // 用户v1
|
||
"v2": "", // 用户v2
|
||
"wxid": "xxx" // wxid
|
||
},
|
||
"type": MT_UPDATE_WXID_MSG
|
||
}
|
||
*/
|
||
#endregion
|
||
|
||
var account = data["account"]?.ToString();
|
||
var avatar = data["avatar"]?.ToString();
|
||
var city = data["city"]?.ToString();
|
||
var country = data["country"]?.ToString();
|
||
var nickname = data["nickname"]?.ToString();
|
||
var provice = data["provice"]?.ToString();
|
||
var remark = data["remark"]?.ToString();
|
||
var sex = data["sex"].ToObject<int>();
|
||
var signature = data["signature"]?.ToString();
|
||
var small_avatar = data["small_avatar"]?.ToString();
|
||
var sns_pic = data["sns_pic"]?.ToString();
|
||
var source_type = (int)data["source_type"];
|
||
var status = (int)data["status"];
|
||
var v1 = data["v1"]?.ToString();
|
||
var v2 = data["v2"]?.ToString();
|
||
|
||
var f = new FriendInfo()
|
||
{
|
||
account = account,
|
||
avatar = avatar,
|
||
city = city,
|
||
country = country,
|
||
nickname = nickname,
|
||
province = provice,
|
||
wxid = username,
|
||
remark = remark,
|
||
sex = sex
|
||
};
|
||
user.Friends[f.wxid] = f;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.GetSingleObj().Error($"个人微信解析搜索用户信息", ex.Message);
|
||
}
|
||
finally
|
||
{
|
||
Thread.Sleep(100);
|
||
user.IsGetContactDic.Remove(username);
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_UPDATE_ROOM_MEMBER_MSG:
|
||
{
|
||
|
||
|
||
}
|
||
break;
|
||
case MsgType.MT_RECV_LINK_MSG:
|
||
{
|
||
//if (WechatClient.IsDebug)
|
||
// LogHelper.GetSingleObj().Debug("调试收到链接", $"{dwClientid} -> {recvData}");
|
||
|
||
var is_pc = data["is_pc"]?.ToString();
|
||
var from_wxid = data["from_wxid"].ToString();
|
||
|
||
if (from_wxid.IsGzh(WechatClient.IsGzh)) return;
|
||
|
||
var raw_msg = data["raw_msg"].ToString();
|
||
|
||
var room_wxid = data["room_wxid"].ToString();
|
||
var to_wxid = data["to_wxid"].ToString();
|
||
var wx_type = int.Parse(data["wx_type"].ToString());
|
||
var wx_sub_type = int.Parse(data["wx_sub_type"].ToString());
|
||
|
||
if (!WechatClient.IsAuxiliaryInput(from_wxid, to_wxid, raw_msg))
|
||
{
|
||
Console.WriteLine("此消息被过滤,因为是机器人自己发送的:" + raw_msg);
|
||
return;
|
||
}
|
||
|
||
var hook = WechatClient.GetApi(user) as Wechat_Xiaoxie;
|
||
|
||
var ass = WechatClient.IsAssistance(from_wxid, to_wxid, dwClientid);
|
||
if (ass.type == WechatClient.AssistanceType.终止) return;
|
||
|
||
//if (!string.IsNullOrWhiteSpace(raw_msg))
|
||
//{
|
||
// var reg = Regex.Match(raw_msg, "<url>(?<链接>.*)</url>");
|
||
// if (reg.Success)
|
||
// {
|
||
// raw_msg = reg.Groups["链接"].Value;
|
||
// }
|
||
//}
|
||
|
||
var socketClient = EasySoc.GetSocket();
|
||
|
||
WechatReceiveMsg wmsg = new WechatReceiveMsg();
|
||
wmsg.Cmd = PCRobotCMD.rcvTxt;
|
||
wmsg.IsSend = ass.type == WechatClient.AssistanceType.辅助;
|
||
wmsg.RobotUsername = ass.robotName;
|
||
wmsg.RobotUsernick = ass.robotNick;
|
||
wmsg.RobotType = RobotType.客户端微信;
|
||
|
||
if (raw_msg.ToLower().Contains("chatroombyinvite"))
|
||
{
|
||
wmsg.FromMessageType = WechatMsgType.群邀请;
|
||
return;
|
||
}
|
||
else
|
||
wmsg.FromMessageType = WechatMsgType.链接;
|
||
|
||
var usernick = string.Empty;
|
||
|
||
if (room_wxid.IsQun())
|
||
{
|
||
wmsg.FromGroupid = room_wxid;
|
||
wmsg.FromGroupNick = hook.FindNick(room_wxid);
|
||
if (string.IsNullOrWhiteSpace(usernick))
|
||
usernick = hook.FindNick(room_wxid, from_wxid);
|
||
}
|
||
else
|
||
{
|
||
if (string.IsNullOrWhiteSpace(usernick))
|
||
usernick = hook.FindNick(ass.fromName);
|
||
}
|
||
wmsg.FromUsername = ass.fromName;
|
||
wmsg.FromUsernick = usernick;
|
||
wmsg.FromMessage = raw_msg;
|
||
|
||
wmsg.Timestamp = data["timestamp"].ToObject<long>();
|
||
wmsg.Msgid = data["msgid"]?.ToString();
|
||
wmsg.OriMessage = data["raw_msg"]?.ToString();
|
||
|
||
socketClient.Send(wmsg);
|
||
}
|
||
break;
|
||
case MsgType.MT_RECV_TEXT_MSG:
|
||
{
|
||
if (data == null || user == null)
|
||
return;
|
||
|
||
var at_user_list = (JArray)data["at_user_list"];
|
||
var from_wxid = data["from_wxid"]?.ToString();
|
||
|
||
var msg = data["msg"].ToString();
|
||
|
||
var msg_temp = string.Copy(msg);
|
||
#region 替换@里面的用户昵称
|
||
if (at_user_list != null && at_user_list.Count != 0)
|
||
{
|
||
var client_temp = WechatClient.GetApi(user) as Wechat_Xiaoxie;
|
||
foreach (string username in at_user_list)
|
||
{
|
||
var firent = user.Friends.FirstOrDefault(f => f.Key == username).Value;
|
||
if (firent == null)
|
||
{
|
||
var tmp = client_temp.GetFriendInfo(username).Result;
|
||
|
||
firent = user.Friends.FirstOrDefault(f => f.Key == username).Value;
|
||
}
|
||
if (firent != null)
|
||
msg_temp = msg_temp.Replace("@" + firent.nickname + " ", "{$@}");
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
if (Common.IsGzh(from_wxid, WechatClient.IsGzh)) return;
|
||
|
||
|
||
var room_wxid = data["room_wxid"].ToString();
|
||
var to_wxid = data["to_wxid"].ToString();
|
||
var wx_type = int.Parse(data["wx_type"].ToString());
|
||
var socketClient = EasySoc.GetSocket();
|
||
if (!WechatClient.IsAuxiliaryInput(from_wxid, to_wxid, msg_temp))
|
||
{
|
||
Console.WriteLine("此消息被过滤,因为是机器人自己发送的:" + msg_temp);
|
||
return;
|
||
}
|
||
|
||
var ass = WechatClient.IsAssistance(from_wxid, to_wxid, dwClientid);
|
||
if (ass.type == WechatClient.AssistanceType.终止) return;
|
||
|
||
WechatReceiveMsg wmsg = new WechatReceiveMsg();
|
||
wmsg.Cmd = PCRobotCMD.rcvTxt;
|
||
wmsg.IsSend = ass.type == WechatClient.AssistanceType.辅助;
|
||
wmsg.RobotUsername = ass.robotName;
|
||
wmsg.RobotUsernick = ass.robotNick;
|
||
wmsg.RobotType = RobotType.客户端微信;
|
||
wmsg.FromMessageType = WechatMsgType.文本;
|
||
|
||
//if (room_wxid.Contains("@chatroom") || room_wxid.Contains("@im.chatroom"))
|
||
//{
|
||
// wmsg.FromGroupid = room_wxid;
|
||
// wmsg.FromUsername = from_wxid;
|
||
// wmsg.FromUsernick = from_wxid == ass.robotName ? ass.robotNick : string.Empty;
|
||
//}
|
||
//else
|
||
//{
|
||
// wmsg.FromUsername = ass.fromName;
|
||
// wmsg.FromUsernick = ass.fromNick;
|
||
//}
|
||
|
||
var hook = WechatClient.GetApi(user) as Wechat_Xiaoxie;
|
||
var usernick = string.Empty;
|
||
if (room_wxid.IsQun())
|
||
{
|
||
wmsg.FromGroupid = room_wxid;
|
||
wmsg.FromGroupNick = hook.FindNick(room_wxid);
|
||
if (string.IsNullOrWhiteSpace(usernick))
|
||
usernick = hook.FindNick(room_wxid, from_wxid);
|
||
}
|
||
else
|
||
{
|
||
if (string.IsNullOrWhiteSpace(usernick))
|
||
usernick = hook.FindNick(ass.fromName);
|
||
}
|
||
wmsg.FromUsername = ass.fromName;
|
||
wmsg.FromUsernick = usernick;
|
||
|
||
wmsg.FromMessage = msg;
|
||
wmsg.Timestamp = data["timestamp"].ToObject<long>();
|
||
wmsg.Msgid = data["msgid"]?.ToString();
|
||
wmsg.OriMessage = msg;
|
||
|
||
socketClient.Send(wmsg);
|
||
|
||
//从网络上下载群成员(刷新)
|
||
//var _json = CsharpHttpHelper.HttpHelper.ObjectToJson(new { type = MsgType.MT_UPDATE_ROOM_MEMBER_MSG, data = new { room_wxid = "24444455370@chatroom" } });
|
||
//_SendWeChatData(dwClientid, Encoding.UTF8.GetBytes(_json));
|
||
//获取群成员列表
|
||
//var _json = CsharpHttpHelper.HttpHelper.ObjectToJson(new { type = MsgType.MT_DATA_CHATROOM_MEMBERS_MSG, data = new { room_wxid = "24444455370@chatroom" } });
|
||
//_SendWeChatData(dwClientid, Encoding.UTF8.GetBytes(_json));
|
||
}
|
||
break;
|
||
case MsgType.MT_ZOMBIE_CHECK_MSG:
|
||
{
|
||
//if (data == null) return;
|
||
//if (data.ContainsKey("errcode"))
|
||
//{
|
||
// var status = int.Parse(data["status"].ToString());
|
||
// var wxid = data["wxid"].ToString();
|
||
|
||
// var user = WechatClient.GetUser(dwClientid, WechatType.Xiaoxie);
|
||
// var firend = user.Friends.FirstOrDefault(f => f.wxid == wxid);
|
||
// if (firend == null) return;
|
||
// firend.is_zombie = status;
|
||
//}
|
||
}
|
||
break;
|
||
case MsgType.MT_SEND_CARD_XMLMSG:
|
||
{
|
||
|
||
}
|
||
break;
|
||
case MsgType.MT_RECV_PICTURE_MSG:
|
||
case MsgType.MT_RECV_VOICE_MSG:
|
||
case MsgType.MT_RECV_FRIEND_MSG:
|
||
case MsgType.MT_RECV_CARD_MSG:
|
||
case MsgType.MT_RECV_VIDEO_MSG:
|
||
case MsgType.MT_RECV_EMOJI_MSG:
|
||
case MsgType.MT_RECV_LOCATION_MSG:
|
||
case MsgType.MT_RECV_FILE_MSG:
|
||
{
|
||
if (data == null || user == null)
|
||
return;
|
||
|
||
var from_wxid = data["from_wxid"].ToString();
|
||
|
||
if (Common.IsGzh(from_wxid, WechatClient.IsGzh)) return;
|
||
|
||
var raw_msg = data["raw_msg"].ToString();
|
||
var room_wxid = data["room_wxid"].ToString();
|
||
var to_wxid = data["to_wxid"].ToString();
|
||
var wx_type = int.Parse(data["wx_type"].ToString());
|
||
if (!WechatClient.IsAuxiliaryInput(from_wxid, to_wxid, raw_msg))
|
||
{
|
||
Console.WriteLine("此消息被过滤,因为是机器人自己发送的:" + raw_msg);
|
||
return;
|
||
}
|
||
var socketClient = EasySoc.GetSocket();
|
||
|
||
if (wx_type == 3 || wx_type == 34 || wx_type == 43 || wx_type == 49)//图片、语音、视频、文件
|
||
{
|
||
var ass = WechatClient.IsAssistance(from_wxid, to_wxid, dwClientid);
|
||
if (ass.type == WechatClient.AssistanceType.终止) return;
|
||
|
||
var hook = WechatClient.GetApi(user) as Wechat_Xiaoxie;
|
||
|
||
WechatReceiveMsg msg = new WechatReceiveMsg();
|
||
msg.Cmd = PCRobotCMD.rcvFile;
|
||
|
||
msg.IsSend = ass.type == WechatClient.AssistanceType.辅助;
|
||
|
||
var usernick = string.Empty;
|
||
|
||
if (room_wxid.IsQun())
|
||
{
|
||
msg.FromGroupid = room_wxid;
|
||
msg.FromGroupNick = hook.FindNick(room_wxid);
|
||
if (string.IsNullOrWhiteSpace(usernick))
|
||
usernick = hook.FindNick(room_wxid, from_wxid);
|
||
}
|
||
else
|
||
{
|
||
if (string.IsNullOrWhiteSpace(usernick))
|
||
usernick = hook.FindNick(from_wxid);
|
||
}
|
||
|
||
//msg.FromUsername = ass.fromName;
|
||
//msg.FromUsernick = usernick;
|
||
msg.FromUsername = from_wxid;
|
||
msg.FromUsernick = usernick;
|
||
|
||
msg.MsgId = data["msgid"]?.ToString();
|
||
msg.OriMessage = JsonConvert.SerializeObject(data);
|
||
msg.Timestamp = data["timestamp"].ToObject<long>();
|
||
|
||
|
||
if (wx_type == 3)//图片
|
||
{
|
||
//var image_thumb = data["image_thumb"].ToString();
|
||
var image = data["image"].ToString();
|
||
|
||
#region 等待下载
|
||
long size = -1L;
|
||
var reg = Regex.Match(raw_msg, @"hdlength=\""(\d+?)\""");
|
||
if (reg.Success)
|
||
size = long.Parse(reg.Groups[1].Value);
|
||
else
|
||
{
|
||
reg = Regex.Match(raw_msg, @"\slength=\""(\d+?)\""");
|
||
if (reg.Success)
|
||
size = long.Parse(reg.Groups[1].Value);
|
||
else
|
||
{ }
|
||
}
|
||
var waitTime = DateTime.Now.AddSeconds(10);
|
||
do
|
||
{
|
||
Thread.Sleep(200);
|
||
var size_temp = new FileInfo(image).Length;
|
||
if (File.Exists(image) && size == size_temp)
|
||
break;
|
||
} while (waitTime >= DateTime.Now);
|
||
#endregion
|
||
|
||
msg.Cmd = PCRobotCMD.rcvImg;
|
||
|
||
//msg.IsSend = ass.type == WechatClient.AssistanceType.辅助;
|
||
msg.IsSend = true;
|
||
|
||
var path = Common.CacheFilePath(ass.robotName, ass.fromName, "IMAGE", data["msgid"].ToString(), "jpg");
|
||
|
||
#region 等待图片解密
|
||
//int i = 0;
|
||
//do
|
||
//{
|
||
// i++;
|
||
// client.DecryptImage(image, path);
|
||
// var failureTime = DateTime.Now.AddSeconds(2);
|
||
// do
|
||
// {
|
||
// Thread.Sleep(200);
|
||
// if (File.Exists(path)) break;
|
||
// } while (failureTime >= DateTime.Now);
|
||
// if (File.Exists(path))
|
||
// break;
|
||
//} while (4 >= i);
|
||
|
||
DecodeImage(image, byte.Parse(data["xor_key"].ToString()), path);
|
||
if (!string.IsNullOrWhiteSpace(path) && File.Exists(path))
|
||
{ }
|
||
else
|
||
path = image;
|
||
#endregion
|
||
|
||
msg.FromMessage = $"[图片={path}]";
|
||
msg.FromMessageType = WechatMsgType.图片;
|
||
msg.FileCDNXML = raw_msg;
|
||
}
|
||
else if (wx_type == 34)//语音
|
||
{
|
||
//msg.FromMessage = string.Empty;//$"[语音={FilePath}]";//TODO 语音文件
|
||
//msg.FromMessageType = WechatMsgType.语音;
|
||
return;
|
||
}
|
||
else if (wx_type == 43)//视频
|
||
{
|
||
//var video = data["video"].ToString();
|
||
//msg.FromMessage = $"[视频={video}]";
|
||
//msg.FromMessageType = WechatMsgType.视频;
|
||
return;
|
||
}
|
||
else if (wx_type == 49)//文件
|
||
{
|
||
//msg.FromMessage = string.Empty;//$"[文件={FilePath}]";//TODO 文件
|
||
//msg.FromMessageType = WechatMsgType.文件;
|
||
return;
|
||
}
|
||
|
||
msg.IsSend = false;
|
||
msg.RobotUsername = ass.robotName;
|
||
msg.RobotUsernick = ass.robotNick;
|
||
msg.RobotType = RobotType.客户端微信;
|
||
|
||
if (room_wxid.IsQun())
|
||
msg.FromGroupid = room_wxid;
|
||
|
||
socketClient.Send(msg);
|
||
}
|
||
else if (wx_type == 37)//接收到好友申请请求
|
||
{
|
||
WechatApplyFriend wXApply = new WechatApplyFriend();
|
||
wXApply.Cmd = PCRobotCMD.applyFriend;
|
||
wXApply.RobotUsername = to_wxid;
|
||
wXApply.RobotUsernick = WechatClient.GetUser(to_wxid)?.Nickname;
|
||
wXApply.RobotType = RobotType.客户端微信;
|
||
|
||
var reg = Regex.Match(raw_msg, @"content=""(?<申请文本>[^""]*?)""");
|
||
if (reg.Success)
|
||
wXApply.Message = reg.Groups["申请文本"].Value;
|
||
|
||
reg = Regex.Match(raw_msg, @"sourceusername=""(?<账号>[^""]*?)"" sourcenickname=""(?<昵称>[^""]*?)""");
|
||
if (reg.Success)
|
||
{
|
||
wXApply.OldFriendWxid = reg.Groups["账号"].Value;
|
||
wXApply.OldFriendNick = reg.Groups["昵称"].Value;
|
||
}
|
||
reg = Regex.Match(raw_msg, @"fromusername=""(?<账号>[^""]*?)""");
|
||
if (reg.Success)
|
||
{
|
||
if (!string.IsNullOrWhiteSpace(reg.Groups["账号"].Value))
|
||
wXApply.NewFriendWxid = reg.Groups["账号"].Value;
|
||
else
|
||
{
|
||
reg = Regex.Match(raw_msg, @"alias=""(?<账号>[^""]*?)""");
|
||
if (reg.Success)
|
||
wXApply.NewFriendWxid = reg.Groups["账号"].Value;
|
||
}
|
||
}
|
||
reg = Regex.Match(raw_msg, @"fromnickname=""(?<昵称>[^""]*?)""");
|
||
if (reg.Success)
|
||
wXApply.NewFriendNick = reg.Groups["昵称"].Value;
|
||
|
||
wXApply.Token = raw_msg;//TODO 这里好像要获取raw_msg 中 v1的值
|
||
|
||
socketClient.Send(wXApply);
|
||
}
|
||
//名片
|
||
else if (wx_type == 42) { }
|
||
//接收表情
|
||
else if (wx_type == 47) { }
|
||
//接收位置消息
|
||
else if (wx_type == 48) { }
|
||
}
|
||
break;
|
||
case MsgType.MT_RECV_WCPAY_MSG:
|
||
{
|
||
if (data == null || user == null)
|
||
return;
|
||
|
||
var from_wxid = data["from_wxid"].ToString();
|
||
|
||
if (Common.IsGzh(from_wxid, WechatClient.IsGzh)) return;
|
||
|
||
var raw_msg = data["raw_msg"].ToString();
|
||
var to_wxid = data["to_wxid"].ToString();
|
||
var wx_type = data["wx_type"].ToString();
|
||
var wx_sub_type = data["wx_sub_type"].ToString();
|
||
var timestamp = data["timestamp"].ToObject<long>();
|
||
|
||
var socketClient = EasySoc.GetSocket();
|
||
if (raw_msg.IndexOf("微信转账") != -1 && raw_msg.IndexOf("收到转账") != -1)
|
||
{
|
||
string State = Common.StringMid(raw_msg, "<paysubtype>", "</paysubtype>");
|
||
string Transid = Common.StringMid(raw_msg, "transferid><![CDATA[", "]]></transferid>");
|
||
int dwTime = 0;
|
||
int.TryParse(Common.StringMid(raw_msg, "<invalidtime><![CDATA[", "]]></invalidtime>"), out dwTime);
|
||
if (State == "1" && Transid != string.Empty)
|
||
{
|
||
WechatReicevePay reicevePay = new WechatReicevePay();
|
||
reicevePay.RobotUsername = user.Wxid;
|
||
reicevePay.RobotUsernick = user.Nickname;
|
||
reicevePay.RobotType = RobotType.客户端微信;
|
||
reicevePay.FromUsername = from_wxid;
|
||
reicevePay.FromUsernick = string.Empty;//TODO 没有获取昵称
|
||
reicevePay.Cmd = PCRobotCMD.receivePay;
|
||
reicevePay.Invalidtime = dwTime.ToString();
|
||
reicevePay.Transferid = Transid;
|
||
var reg = Regex.Match(raw_msg, "收到转账(?<金额>.+)元");
|
||
if (reg.Success)
|
||
reicevePay.Money = double.Parse(reg.Groups["金额"].Value);
|
||
if (reicevePay.RobotUsernick == null) reicevePay.RobotUsernick = string.Empty;
|
||
socketClient.Send(reicevePay);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_RECV_SYSTEM_MSG:
|
||
{
|
||
//{"data":{"from_wxid":"wxid_lzssz365bwl222","is_pc":0,"msgid":"9071106463111673540","raw_msg":"\"先森吳\"邀请\"查优惠小助手(语馨)\"加入了群聊","room_wxid":"24444455370@chatroom","timestamp":1585398781,"to_wxid":"24444455370@chatroom","wx_type":10000},"type":11058}
|
||
|
||
if (data == null || data["raw_msg"] == null || user == null)
|
||
return;
|
||
|
||
var socketClient = EasySoc.GetSocket();
|
||
var raw_msg = data["raw_msg"].ToString();
|
||
var room_wxid = data["room_wxid"].ToString();
|
||
var from_wxid = data["from_wxid"].ToString();
|
||
|
||
//新人入群
|
||
if (!string.IsNullOrWhiteSpace(room_wxid) && room_wxid.IsQun())
|
||
{
|
||
//var reg1 = Regex.Match(raw_msg, @"""(?<邀请人昵称>.*)""邀请""(?<新人昵称>.*)""加入了群聊");
|
||
//var reg2 = Regex.Match(raw_msg, @"你邀请""(?<新人昵称>.*)""加入了群聊");
|
||
//var reg3 = Regex.Match(raw_msg, @"""(?<新人昵称>.*)""通过扫描""(?<邀请人昵称>.*)""分享的二维码加入群聊");
|
||
//var reg4 = Regex.Match(raw_msg, @"""(?<新人昵称>.*)""通过扫描你分享的二维码加入群聊");
|
||
|
||
//if (reg1.Success || reg2.Success || reg3.Success || reg4.Success)
|
||
//{
|
||
// var user = WechatClient.GetUser(dwClientid, WechatType.Xiaoxie);
|
||
// if (user == null)
|
||
// return;
|
||
// WechatNewMemer newMember = new WechatNewMemer();
|
||
// newMember.Cmd = PCRobotCMD.newMember;
|
||
// newMember.RobotType = RobotType.客户端微信;
|
||
// newMember.RobotUsername = user.Wxid;
|
||
// newMember.RobotUsernick = user.Nickname;
|
||
|
||
// if (reg1.Success)
|
||
// {
|
||
// newMember.SourceNick = reg1.Groups["邀请人昵称"].Value;
|
||
// newMember.MemberNick = reg1.Groups["新人昵称"].Value;
|
||
// }
|
||
// else if (reg2.Success)
|
||
// {
|
||
// newMember.SourceNick = newMember.RobotUsernick;
|
||
// newMember.MemberNick = reg2.Groups["新人昵称"].Value;
|
||
// }
|
||
// else if (reg3.Success)
|
||
// {
|
||
// newMember.SourceNick = reg3.Groups["邀请人昵称"].Value;
|
||
// newMember.MemberNick = reg3.Groups["新人昵称"].Value;
|
||
// }
|
||
// else if (reg4.Success)
|
||
// {
|
||
// newMember.SourceNick = newMember.RobotUsernick;
|
||
// newMember.MemberNick = reg4.Groups["新人昵称"].Value;
|
||
// }
|
||
|
||
// if (room_wxid.Contains("@chatroom"))
|
||
// {
|
||
// newMember.GroupId = room_wxid;
|
||
// newMember.GroupNick = string.Empty;
|
||
// }
|
||
// socketClient.Send(newMember);
|
||
//}
|
||
}
|
||
else//新增好友
|
||
{
|
||
//#region 添加好友成功
|
||
//var reg1 = Regex.Match(raw_msg, "^你已添加了(.*?),现在可以开始聊天了。$");
|
||
//var reg2 = Regex.Match(raw_msg, "^(.*?)刚刚把你添加到通讯录,现在可以开始聊天了。$");
|
||
//if (reg1.Success || reg2.Success)
|
||
//{
|
||
// var user = WechatClient.GetUser(dwClientid, WechatType.Xiaoxie);
|
||
// if (user == null)
|
||
// return;
|
||
// WechatNewFriend msg = new WechatNewFriend();
|
||
// msg.Cmd = PCRobotCMD.newfriend;
|
||
// msg.RobotUsername = user.Wxid;
|
||
// msg.RobotUsernick = user.Nickname;
|
||
// msg.RobotType = RobotType.客户端微信;
|
||
// msg.FromUserName = from_wxid;
|
||
// msg.FromUserNick = reg1.Success ? reg1.Groups[1].Value : reg2.Groups[1].Value;
|
||
// socketClient.Send(msg);
|
||
//}
|
||
//#endregion
|
||
|
||
#region 检测僵尸粉
|
||
//{"data":{"from_wxid":"wujiahua0876","is_pc":0,"msgid":"3624674612069828076","raw_msg":"先森吳开启了朋友验证,你还不是他(她)朋友。请先发送朋友验证请求,对方验证通过后,才能聊天。<a href=\"weixin://findfriend/verifycontact\">发送朋友验证</a>","room_wxid":"","timestamp":1585125257,"to_wxid":"wxid_lzssz365bwl222","wx_type":10000},"type":11058}
|
||
|
||
//{"data":{"from_wxid":"wxid_89qxkbyaxrok22","is_pc":0,"msgid":"7401397021380323657","raw_msg":"消息已发出,但被对方拒收了。","room_wxid":"","timestamp":1603436524,"to_wxid":"wujiahua0876","wx_type":10000},"type":11058}
|
||
if (raw_msg.Contains("开启了朋友验证") || raw_msg.Contains("但被对方拒收了"))//这里说明是僵尸粉
|
||
{
|
||
LogHelper.GetSingleObj().Debug("调试清粉", $"{JsonConvert.SerializeObject(data)}");
|
||
|
||
var wxid = data["from_wxid"].ToString();
|
||
var firend = user.Friends.FirstOrDefault(f => f.Key == wxid).Value;
|
||
if (firend == null) return;
|
||
if (raw_msg.Contains("但被对方拒收了"))
|
||
firend.is_zombie = 2;//拉黑了
|
||
else
|
||
firend.is_zombie = 1;//单向好友
|
||
|
||
//var socketClient = EasySoc.GetSocket();
|
||
WechatContact msg = new WechatContact();
|
||
msg.RobotUsername = user.Wxid;
|
||
msg.RobotUsernick = user.Nickname;
|
||
msg.RobotType = RobotType.客户端微信;
|
||
msg.Cmd = PCRobotCMD.rcvContactList;
|
||
msg.Message = HttpHelper.ObjectToJson(new Dictionary<string, List<FriendInfo>>() { { "data", new List<FriendInfo>() { firend } } });
|
||
|
||
socketClient.Send(msg);
|
||
}
|
||
//{"data":{"from_wxid":"wxid_2ufntuf4purl22","is_pc":0,"msgid":"1580248074267233434","raw_msg":"由于名片类型或场景原因,暂不支持转发该名片。","room_wxid":"","timestamp":1585125880,"to_wxid":"wxid_lzssz365bwl222","wx_type":10000},"type":11058}
|
||
else if (raw_msg.Contains("暂不支持转发该名片"))//这里说明是好友
|
||
{
|
||
LogHelper.GetSingleObj().Debug("调试清粉_", $"{JsonConvert.SerializeObject(data)}");
|
||
|
||
var wxid = data["from_wxid"].ToString();
|
||
|
||
var firend = user.Friends.FirstOrDefault(f => f.Key == wxid).Value;
|
||
if (firend == null) return;
|
||
firend.is_zombie = 0;
|
||
}
|
||
else
|
||
{
|
||
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_RECV_REVOKE_MSG:
|
||
{
|
||
//私聊用户撤回消息
|
||
//{"data":{"from_wxid":"wujiahua0876","is_pc":0,"msgid":"3768878978337666344","raw_msg":"<sysmsg type=\"revokemsg\">\n\t<revokemsg>\n\t\t<session>wujiahua0876</session>\n\t\t<msgid>1097101643</msgid>\n\t\t<newmsgid>5572791720720581005</newmsgid>\n\t\t<replacemsg><![CDATA[\"用户备注的昵称\" 撤回了一条消息]]></replacemsg>\n\t</revokemsg>\n</sysmsg>\n","room_wxid":"","timestamp":1586758499,"to_wxid":"wxid_lzssz365bwl222","wx_type":10002},"type":11059}
|
||
//私聊用户机器人自己撤回消息
|
||
//{"data":{"from_wxid":"wxid_lzssz365bwl222","is_pc":0,"msgid":"1526645333654331593","raw_msg":"<sysmsg type=\"revokemsg\"><revokemsg><session>wujiahua0876</session><msgid>1716323650</msgid><newmsgid>5998900618590839539</newmsgid><replacemsg><![CDATA[你撤回了一条消息]]></replacemsg></revokemsg></sysmsg>","room_wxid":"","timestamp":1586758971,"to_wxid":"wujiahua0876","wx_type":10002},"type":11059}
|
||
|
||
//var from_wxid = data["from_wxid"]?.ToString();
|
||
//var raw_msg = data["raw_msg"]?.ToString();
|
||
|
||
//var to_wxid = data["to_wxid"]?.ToString();
|
||
|
||
}
|
||
break;
|
||
case MsgType.MT_RECV_OTHER_MSG:
|
||
break;
|
||
case MsgType.MT_RECV_OTHER_APP_MSG:
|
||
case MsgType.MT_RECV_MINIAPP_MSG:
|
||
{
|
||
//if (WechatClient.IsDebug)
|
||
// LogHelper.GetSingleObj().Debug("调试收到小程序消息", $"{dwClientid} -> {recvData}");
|
||
if (data == null || user == null)
|
||
return;
|
||
|
||
var wx_type = data["wx_type"]?.ToString();//微信原始类型,值为 49
|
||
if (wx_type == "49")
|
||
{
|
||
var wx_sub_type = data["wx_sub_type"]?.ToString();//微信原始应用子类型,值为 36
|
||
if (wx_sub_type == "1" || wx_sub_type == "36" || wx_sub_type == "33" || wx_sub_type == "3" || wx_sub_type == "19")
|
||
{
|
||
var from_wxid = data["from_wxid"]?.ToString();//发送者的wxid
|
||
|
||
if (Common.IsGzh(from_wxid, WechatClient.IsGzh)) return;
|
||
|
||
var is_pc = data["is_pc"]?.ToString();
|
||
var raw_msg = data["raw_msg"]?.ToString();
|
||
var msgid = data["msgid"]?.ToString();// 接收到的消息id
|
||
var room_wxid = data["room_wxid"]?.ToString();//群聊的wxid
|
||
var to_wxid = data["to_wxid"]?.ToString();//接收者的wxid
|
||
|
||
var socketClient = EasySoc.GetSocket();
|
||
if (!WechatClient.IsAuxiliaryInput(from_wxid, to_wxid, raw_msg))
|
||
{
|
||
Console.WriteLine("此消息被过滤,因为是机器人自己发送的:" + raw_msg);
|
||
return;
|
||
}
|
||
|
||
var ass = WechatClient.IsAssistance(from_wxid, to_wxid, dwClientid);
|
||
if (ass.type == WechatClient.AssistanceType.终止) return;
|
||
|
||
//if (!string.IsNullOrWhiteSpace(raw_msg))
|
||
//{
|
||
// var reg = Regex.Match(raw_msg, @"<publisherId>(?<链接>.*)</publisherId>");
|
||
// if (reg.Success)
|
||
// raw_msg = reg.Groups["链接"].Value;
|
||
//}
|
||
|
||
var hook = WechatClient.GetApi(user) as Wechat_Xiaoxie;
|
||
|
||
WechatReceiveMsg wmsg = new WechatReceiveMsg();
|
||
wmsg.Cmd = PCRobotCMD.rcvTxt;
|
||
wmsg.IsSend = ass.type == WechatClient.AssistanceType.辅助;
|
||
wmsg.RobotUsername = ass.robotName;
|
||
wmsg.RobotUsernick = ass.robotNick;
|
||
wmsg.RobotType = RobotType.客户端微信;
|
||
wmsg.FromMessageType = WechatMsgType.文本;
|
||
|
||
var usernick = string.Empty;
|
||
if (room_wxid.IsQun())
|
||
{
|
||
wmsg.FromGroupid = room_wxid;
|
||
wmsg.FromGroupNick = hook.FindNick(room_wxid);
|
||
if (string.IsNullOrWhiteSpace(usernick))
|
||
usernick = hook.FindNick(room_wxid, from_wxid);
|
||
}
|
||
else
|
||
{
|
||
if (string.IsNullOrWhiteSpace(usernick))
|
||
usernick = hook.FindNick(ass.fromName);
|
||
}
|
||
wmsg.FromUsername = ass.fromName;
|
||
wmsg.FromUsernick = usernick;
|
||
|
||
wmsg.FromMessage = raw_msg;
|
||
|
||
socketClient.Send(wmsg);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_CHECK_URL_STATUS_MSG:
|
||
{
|
||
//if (CheckUrlCache.Count > 500) CheckUrlCache.Clear();
|
||
//{"data":{"status":-2005,"url":"https://ycs9d.kuaizhan.com/?id=07E4060844959"},"type":11123}
|
||
if (data["status"] != null)
|
||
{
|
||
var url = data["url"]?.ToString();
|
||
if (!string.IsNullOrWhiteSpace(url))
|
||
{
|
||
//CheckUrlCache.Add(url.Trim(), int.Parse(data["status"].ToString()));
|
||
Cache cache = HttpRuntime.Cache;
|
||
//查找 md5 的缓存,不存在则返回null
|
||
object item = cache[url.Trim()];
|
||
cache.Insert(url.Trim(), int.Parse(data["status"].ToString()), null, DateTime.Now.AddSeconds(8), Cache.NoSlidingExpiration);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
//case MsgType.MT_CHECK_URL_STATUS2_MSG:
|
||
// {
|
||
|
||
// if (data.ContainsKey("baseResponse"))
|
||
// {
|
||
// var baseResponse = data["baseResponse"] as Dictionary<string, object>;
|
||
// if (baseResponse.ContainsKey("ret"))
|
||
// {
|
||
// var ret = baseResponse["ret"].ToString();
|
||
// Cache cache = HttpRuntime.Cache;
|
||
// //查找 md5 的缓存,不存在则返回null
|
||
// object item = cache[url.Trim()];
|
||
// cache.Insert(url.Trim(), int.Parse(ret), null, DateTime.Now.AddSeconds(8), Cache.NoSlidingExpiration);
|
||
// }
|
||
// }
|
||
// }
|
||
// break;
|
||
case MsgType.MT_ROOM_ADD_MEMBER_NOTIFY_MSG://群成员新增通知
|
||
{
|
||
//{"data":{"avatar":"","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":[{"avatar":"http://wx.qlogo.cn/mmhead/ver_1/MpicosfFj1KMvlSPoxWHjUfT2KGqJvEKrDkDCUiaQp4ryYkv3NMdsYofXUVvgalGx0ylia2swn2MMNWwiaWWEUl4QvQayM2Y28pAaxShUZUH5ms/132","invite_by":"wujiahua0876","nickname":"A083赚钱鸭💯(葫芦娃)","wxid":"wxid_5fn1vpyjpfj022"}],"nickname":"111111","room_wxid":"24466267291@chatroom","total_member":5},"type":11098}
|
||
|
||
if (data == null || user == null)
|
||
return;
|
||
|
||
var hook = WechatClient.GetApi(user) as Wechat_Xiaoxie;
|
||
|
||
var socketClient = EasySoc.GetSocket();
|
||
var avatar = data["avatar"].ToString();//头像
|
||
var is_manager = data["is_manager"].ToString();//
|
||
var manager_wxid = data["manager_wxid"].ToString();//管理账号
|
||
var room_nick = data["nickname"].ToString();//群昵称
|
||
var room_wxid = data["room_wxid"].ToString();//群账号
|
||
var total_member = int.Parse(data["total_member"].ToString());//群人数
|
||
|
||
var member_list = (JArray)data["member_list"];
|
||
if (member_list != null && member_list.Count != 0)
|
||
{
|
||
for (int i = 0; i < member_list.Count; i++)
|
||
{
|
||
var member = member_list[i];
|
||
var avatar_user = member["avatar"].ToString();//头像
|
||
var invite_by = member["invite_by"].ToString();//邀请者wxid
|
||
var nickname = member["nickname"].ToString();//新用户昵称
|
||
var wxid = member["wxid"].ToString();//新用户账号
|
||
|
||
WechatNewMemer newMember = new WechatNewMemer();
|
||
newMember.Cmd = PCRobotCMD.newMember;
|
||
newMember.RobotType = RobotType.客户端微信;
|
||
newMember.RobotUsername = user.Wxid;
|
||
newMember.RobotUsernick = user.Nickname;
|
||
|
||
//if (reg1.Success)
|
||
//{
|
||
// newMember.SourceNick = reg1.Groups["邀请人昵称"].Value;
|
||
// newMember.MemberNick = reg1.Groups["新人昵称"].Value;
|
||
//}
|
||
//else if (reg2.Success)
|
||
//{
|
||
// newMember.SourceNick = newMember.RobotUsernick;
|
||
// newMember.MemberNick = reg2.Groups["新人昵称"].Value;
|
||
//}
|
||
//else if (reg3.Success)
|
||
//{
|
||
// newMember.SourceNick = reg3.Groups["邀请人昵称"].Value;
|
||
// newMember.MemberNick = reg3.Groups["新人昵称"].Value;
|
||
//}
|
||
//else if (reg4.Success)
|
||
//{
|
||
// newMember.SourceNick = newMember.RobotUsernick;
|
||
// newMember.MemberNick = reg4.Groups["新人昵称"].Value;
|
||
//}
|
||
|
||
newMember.SourceNick = string.Empty;
|
||
#region 获取邀请人的信息
|
||
if (!string.IsNullOrWhiteSpace(invite_by) && invite_by != user.Wxid)
|
||
newMember.SourceNick = hook.FindNick(room_wxid, invite_by);
|
||
#endregion
|
||
|
||
newMember.SourceName = (string.IsNullOrWhiteSpace(invite_by) || invite_by == user.Wxid) ? string.Empty : invite_by;
|
||
newMember.MemberNick = nickname;
|
||
newMember.MemberName = wxid;
|
||
newMember.GroupId = room_wxid;
|
||
newMember.GroupNick = room_nick;
|
||
newMember.TotalMember = total_member;
|
||
|
||
socketClient.Send(newMember);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_ROOM_DEL_MEMBER_NOTIFY_MSG://群成员删除/退出通知
|
||
{
|
||
|
||
}
|
||
break;
|
||
case MsgType.MT_ROOM_CREATE_NOTIFY_MSG://通过接口创建群聊的通知
|
||
{
|
||
//{"data":{"avatar":"http://wx.qlogo.cn/mmcrhead/MvMkWKHbPUVricNicF781PXeuPMW2vHEywf6lkuMfLgHN4IlRAyPiaDX8AG9d9XEa1ibiaMXBr83ibDVmgCT70qkHXPN9SFn5iaHC7y/0","is_manager":1,"manager_wxid":"wxid_tnizkijej5uq22","member_list":[{"avatar":"http://wx.qlogo.cn/mmhead/ver_1/CVGILsl6SCMBjjCuyxUOZXNRgeiaPx4EwT1WMqCDz9qp3XcuzuVm3SHuPuial3wOMVUSbbJujBtUqPkB3Uz1ruTVzibqZ74FTnBKibNCq67qBcE/132","invite_by":"wxid_tnizkijej5uq22","nickname":"小张晚安","wxid":"wxid_uwbxwbt4ihjd22"},{"avatar":"http://wx.qlogo.cn/mmhead/ver_1/cstPo5zCEb794wfD44BbnoQicfDOeOzkB3BficFYticVmQy7umm4SArThiaia6f6ZJFriaewskJ3foyuxrEVYic7NicwXQ/132","invite_by":"wxid_tnizkijej5uq22","nickname":"先森吳","wxid":"wujiahua0876"},{"avatar":"http://wx.qlogo.cn/mmhead/ver_1/tbfVwxp5B5WkAx7KxDCTia8kzWgMIj3bqA1QaoHxXvQTwS5aRw6h9WjTQMWBhD6fkt4XjUxURDDGF5aBek8xSnY4kqPIQ9T4oweMyaKLSwnM/132","invite_by":"","nickname":"Coco","wxid":"wxid_tnizkijej5uq22"}],"nickname":"","room_wxid":"24652183014@chatroom","total_member":3},"type":11100}
|
||
|
||
if (data == null) return;
|
||
|
||
var wxids = new List<string>();
|
||
var member_list = (JArray)data["member_list"];
|
||
for (int i = 0; i < member_list.Count; i++)
|
||
{
|
||
//{"avatar":"http://wx.qlogo.cn/mmhead/ver_1/CVGILsl6SCMBjjCuyxUOZXNRgeiaPx4EwT1WMqCDz9qp3XcuzuVm3SHuPuial3wOMVUSbbJujBtUqPkB3Uz1ruTVzibqZ74FTnBKibNCq67qBcE/132","invite_by":"wxid_tnizkijej5uq22","nickname":"小安","wxid":"wxid_uwbxwbt4ihjd22"}
|
||
|
||
var m = member_list[i];
|
||
if (m == null) continue;
|
||
wxids.Add(m["wxid"]?.ToString());
|
||
}
|
||
var client = WechatClient.GetApi(user);
|
||
wxids.Sort(StringComparer.CurrentCulture);
|
||
|
||
var md5Text = Common.GetMD5(string.Join(",", wxids));
|
||
|
||
Cache cache = HttpRuntime.Cache;
|
||
//查找 md5 的缓存,不存在则返回null
|
||
object item = cache[md5Text];
|
||
cache.Insert(md5Text, data["room_wxid"].ToString(), null, DateTime.Now.AddSeconds(8), Cache.NoSlidingExpiration);
|
||
}
|
||
break;
|
||
case MsgType.MT_ROOM_DEL_NOTIFY_MSG://群成员删除通知
|
||
{
|
||
|
||
}
|
||
break;
|
||
case MsgType.MT_CONTACT_ADD_NOITFY_MSG://好友新增通知
|
||
{
|
||
//{"data":{"account":"dx21101","avatar":"http://wx.qlogo.cn/mmhead/ver_1/we0fG4Y8r0NjN7GUSHFXCu0qicqZf2KKHBeRKIByBNAvvJ8KcgeaomwSju0AqUicJztS6oiaEzDVJiblnZmrJQTibDdPyk7fwzwPbS5JxwibS6POI/0","city":"","country":"","nickname":"秒单客-小张","remark":"","sex":1,"wxid":"wxid_g9r17s6hdb6w22"},"type":11102}
|
||
|
||
var socketClient = EasySoc.GetSocket();
|
||
//var account = data["account"].ToString();//新用户账号
|
||
//var avatar = data["avatar"].ToString();//新用户头像
|
||
var nickname = data["nickname"].ToString();//新用户昵称
|
||
//var sex = int.Parse(data["sex"].ToString());//性别
|
||
var wxid = data["wxid"].ToString();//新用户微信id
|
||
|
||
#region 添加好友成功
|
||
var msg = new WechatNewFriend();
|
||
msg.Cmd = PCRobotCMD.newfriend;
|
||
msg.RobotUsername = user.Wxid;
|
||
msg.RobotUsernick = user.Nickname;
|
||
msg.RobotType = RobotType.客户端微信;
|
||
msg.FromUserName = wxid;
|
||
msg.FromUserNick = nickname;
|
||
socketClient.Send(msg);
|
||
|
||
#endregion
|
||
}
|
||
break;
|
||
case MsgType.MT_CONTACT_DEL_NOTIFY_MSG://群成员删除通知
|
||
{
|
||
|
||
}
|
||
break;
|
||
case MsgType.MT_SNS_TIMELINE_MSG://获取朋友圈首页
|
||
{
|
||
#region 数据
|
||
//{"data":{"advertiseCount":1,"advertiseList":[{"adInfo":{"string":"<?xml version='1.0' encoding='utf-8' ?>\n<ADInfo>\n\t<viewid>51Hky7pHhu%2BI0D6z6NGPpR15cypIpKvA%2B/WmCm0cjdoElUITIAFetWDTQN4vCIoS6ghxwuN0AHfz/Dd5uv0MOe0BAnqUde7RfcpcLvnU4pKwzvPOf09bD57/YLjKvDkkbHks%2BFQ8yTrjpqCQtrqKXVDJrR%2B/6t2%2BIcLfsbPDz%2B6jDc8gjbkn6ADHUW7tOArlAowZ3aNCjtfk5fBHzow8vwBuatiNIeQQySyetV69UB2exOBcR42IFoB%2BgD0ygOTBlYMnaiQtzS0upkBl4NSPHN9xen3lITxROz3Bj6ZRkqrlzrEJjj%2B%2BX0NTbO/ZduF8Fnsq47hKzFn3RzMmrMiMmRT%2BiJpTD3Tz/rwtYsS3tGTCmbneafTW0o%2B9uinX5C2QK45tKlFSDlAlYqEtepY51N2mrvp5aK8wd1A1dotcSJdRCv%2Bibez/B8KZud5p9NbSvb9U/x10HSpgNsWnqqfBc6UOyLTOR6sULIq3RYG3hO4ttiHsTqJ19OXmIJ18uKdRAwm0W%2B1UgpgsirdFgbeE7i22IexOonX0eoikpovBL67pm9Ry5rKfmdqujuKJIrqR7yAiM9QkVyqfLisGkW2BGdifn1WRZE2eZtz1TIwtr5RIz4fr%2BzWthJ%2B8b4mUiIvRnrvbxY2kLOMTQyaDsIwWCrVVcQmRZEtem7CV9y12Npy2t0P5SYgr9G%2B5LOMNBx0okUHnjJOesdHfVxBOI3ioGMEqURMdxzGKUPEh9cdQZT13OIB60lApJboBtPiusgt2pGeKIWX2go19ctm1ASL/nffmXkqCH/XmhdQh01bx83nD%2BNuVWBsGt7Z9yUJAhgfU2HILNweMjSHCmbneafTW0pglqgouP3YMJyDHsaOablYrOJ7sA5PLjhGJilyjGpsHWO0hq0fn1/6LGFYxykl1OjPcIHGFfpCHLlbaL5ZjZUhhz/C8BOcXNC6vq3hZ1wVbOWBOpKjp0CGTuQXg3A4f0G8kXEJdvrlDsxGnYDSTXSrxeCw34BZX0wRD99w7JmukOIQEjoOL%2BMDlCU9gndnYr00zc1cEpTNCjhbE8KAYJBZdF2AjSLljq1308TAxRKbRrFcgG%2BJiF686OhCWD1v6PpvXQtcAwKCuVWFqytU8Snl/XGkfveCEdkXHGR%2B5wQVpN8L6zzMEG%2BrGdae643cmQb9QbyClCgocIhr5xdxaJXPYn59VkWRNnrbPaWePalQctVk7VbyIJUOzQwHaGlZwKOw/ReHEmsuRdunnXbmrEQRK31EdpPUtw%2BrkaExxbpeSMYgHQ4BoIWvqWUJyOKxwPFyEo3Cvbyx3zs8YEIDR6RYMyvLMeZ593lX52lJXIuf7ZRO6kWIOBbYENyusw81Q0PWttkAUANcUYTIqQmpJ%2Bl18qm66d0POojRw0yPqMI/iLYxfYPjGjxhb1M2zfU9m6L39x5/vp8yN12xfT20Zd3eyVauOFxOb9E3aTDebYH0%2BxbxNh/vbG4SZj9HCaNr0679ITrLZHYXBMDckEiDLDwR8Kw37v7qSMMW8TYf72xuEmY/Rwmja9Ou/SE6y2R2FwX8i5x5zY5Tl5uNpEpeEFoAqMk%2BZ6vqgE02GIVVhiy4hc5/GHP79qRrm42kSl4QWgCoyT5nq%2BqATdoRifFt8u0d30DLV9rACLenS8pBrppyFKjJPmer6oBPjILouBe1NDxY74ukW5A91YGOCIYWrgLdFGxIyh6vP7RAgb9YYpXW87wJPd786IpFTQpa3wkYMP8KZud5p9NbSAzTjUvENRy8XeTjKE1qKCzYwKm%2BvgnNWRTCLfefMjKvCmbneafTW0gM041LxDUcvxxDLN%2BQh1dSf3TphpbYWRLoHQm6WpwmDgyX2IiPt3jiN3ZxN%2BdG6zHs8QtlMdETD2u/GbqAmsR47GXT6%2Bd9vzfByhJ%2BosnjffLJWXJQXjVhUDTGN5mqOpQk1YhZbSJ7Gl3YPDnKBt%2BrT/HSDJ%2Bl2Rgf0drS1gCA4TsUAXLNhv0/py7JV78weUyrsXfLMLC3iynBrDlriy8KB/M/vFXqo7T6zykyz/ykKHC9fpUczj0/%2BiYQb3B2u4h%2B9QlK5J0kaYbM9DtGs1EUIRKIqCLzwHz3wEe%2BlG/jvSp462KvE8TSFOCswenppPI1a65q11Y%2BlO8ydxJ0yKldx4NgHf19YAWnJZAl%2BTTbsgLcaCUPrWS5lz1ndLvPYPcbyJmoyss54YkoMCaTa42hTuW08DkxX84NfS0ImGwrDzyMDV8pAyc7VLiJ3BxfADIWMj9C3nfYHWkD5oDTvOHbrCS0oVJZ1y61s4g4lI3FyoWh1%2Bszkttr3tqOGmeY5mCk2pNpt19zSXB4%2B2Et6MfY5rX9USLkHs0PPXGYe6wXuyT4Luymi/Txdbmkt1cP7P6F2o6H5ahvnzLtULV02HVfYj7vBsaMStTPgp8Bsmt1Dyphn5nqGAASmhUDfXW24V7WKihAkyAHELyMNe%2BsOg6bsTHBBKNGKPGzR5p2LY9gYFVY5/qmRA5d8MkAWlZENvXpAfbBdhejCJLU4lQBGZ0eDGmGOZuaA%2BQ6RMJncv%2BR%2BTAP9TvkNsP5x7Yko/BM2IAtCWoMdFGbhobUaNtVkkvCOc%2BwkwlIOXrrn2yrxTx37JNMsN7RFYiEZJNViWH7dXQlLiz9MOANT8H5t5HmgKEctOb1WDmztxkdBkLAejjMY20ZfUiVjwKSEkrrfw03HXk/sbeLtUsrb7nfeb7wpBi2sU7b8X6/dzpHX9DXDm2i1pOR5s/Ng0yeD/6qROyXiFZLD66XRp7//JznTqFw2TWYDkazuFWAyB7ElWqOVd/DOs%2BCAoORBxxiRhbApMiOYRyTumUb%2B%2B6Zl4qOepsczZ29vS6uVWWJ0p0rEOI2RhVZ7btZ%2Ba3lZVRIf/hRMwBoyRlWyRWLyfEmArfOGNYSa4BdrmxeeV0tdIpmLBesqH%2BfzlDeIDk7mYMk0FEAe2cpwAcbBhbqspuYIxkrOTmw00bthKfiRChNDe%2BQee7ugp8pqvuhoz7xLRUD1lTtlqG/NViTumUb%2B%2B6Zl2S6T12VBePmOOxGKAf3beJ%2BnBqYMHgKRlN2Tkq4GQ/YgJNrT9CcDRl8GQ1XD0o6U3YyDCdZIJrEUeI/uSzP6ju5XimNM1qfeiTty4z6jWFh99u%2BfIUuDvxOIp4XGKpLpJ07p9SXuh1Zy%2Bo/31T9J1fWVO2Wob81W5KyA3Dyc2bO1jtlhgW9eAI47EYoB/dt4FQiAo2J5oyUX0qTwlZ90N6Lln5bTToih/GwuFeIuyfUpNqTabdfc0rQ0s06SldO6V93k1aTZhOJHm3uL1CBBMvhQgjxSWRtrp3DKjyMPfVpYPVWi5Ngj3Y5aIpCQuZXtqruCuUkaNnhqKrfImYGgGKmrjkQD2h3urPY6VezxI9OHcs%2BXYnYPN4PKT1x7h8SO2qEn264xwBl1V6YUdN1FXoZsAsPrnFzWcz5uqxEiT0sch%2BHvj9RxWk0HOHHe5NbmAMHuVM8G7t4hl1NT6tf4sD/1uHZDwAxdwJtX0l2GsaAX7It4cWddtlJ5lscfXYNcmftrlkis981E5N9H4zW918IEMg6uvzSz4T8Zay2P9sMQsCF%2Ba3w6VCY0ZuwxbJqN1QaGDzVOAqmJCgwXZe3RYp2/gyNcSjjkQtBUKhqP42BdVQgg%2BXSnthkM2BlKHdHbibjVedFgMtLy4jXQ0jD%2BwHpBztRpAg5ko9PX7d2z/pJt8YzG3w6JRH3V0XrfkwE0SMU46R%2BTSPmgMgjWPkNxa/m2uLgcrsVBMP%2BUoqGYb3MkzDDj01vctVPDoYnTPiyDmvPETC4UzEm8QE4WG1lCfhu527VjTlnq5vxoaY1zSczQop6cs4IaeerPjfv89hzROCUFTWY7AHyfUqeJVK%2BiPZ0ftd7A5I84adtGjRGgLam9vDrIGEgOytifn1WRZE2e7RfKdpxHe8YH986M%2BW1VEiSf6o6x3ZW13hrLgQASU4k2M2CmUcOsa56My716C8yACOene86zrRIbOKlmWY/LpTTFFDj2FS/wRUBIA92e/K3PY4bY3rnNirArVpfolQpqUdeELefv5t1ECPZk5I8tozTqrC6wrFRARf3dlHL0WpRZQzOkMnGblx51W2kSUpSu2/Hd91eDSEOBXvE/kanskVWtaO29jtIzaXdOdbo2JtGAJYzJ7QD93xQpz87qAUQXCBXuJQSB/bEiwpxez/q1U6KDkxquq0XUF9zkWsYKUjFogJilTpoYvjDtoQVtApmBOA2f7el/VIHnxuCNmQlqQFxZQwbWI4tu5EfUvvFSANAk4jag8a4HYuF8%2B8esOKs2PSsBnhQzc%2BY22OtuD3yCNeLZ5n1B5za16svARkdgiGtPGEKwhyvAcMPUfhiL7RxZprDKae8MX1PVHECjLItG2MDR7ZczhqZvA9CHH0GAbafIYSkOszxrBPPpNff7dYiB/j%2BMzZCgR4yfQ7CoDU3lRIFM7BEAf4od%2B3kzeNkAy7ZaAGZftgda2Ih%2BPdTIb6Hv5zgI2didIUjziKQ0Glppdv14mXUNSx8Osti8pEcBeFN3//o3aeh8wYx6bDo/zqIDhFnZE/QS%2BoLSkKdNBK1wPJao/BgEj8GEjOIqWUvm8R5dhNriF5xeYZcXmxbjnwREWQWbbbrLMFFLc7NK/Ol0iNdgpgmBjesJ%2BsrXt0d88f9txZDbMh0kQhWdc/B2bqPntbxWBM3n63FNQKwW6Ch81DpIHjAOJ9YxiEO6FohEbrgLoWfT/TU1eJfHWjklbn6GnbsY4E7mMRoJV7VKXV/GuPP7un5EV%2BwrNpNp0v%2BSybnvKAAEqdQL5cZuKVZMfIOOtopdZisTxabiDXUYViRIoVzvUrdfVGeQVdKAmHLZYjaWnzKUIgF8oyIi091o1BkDsWY8sbUptYLfqFIQR4BMl3xYuum%2BKt3/56SzrDXXPYI7Gb%2BAbdrUFEVeL/LdryKoWtq7jM1hSu5MhS5SOEuoFMbt5EuW5vdTKNlfgWJWsvkZsZNg2uPG%2Bt2HCI3m2MTqvavmupGW%2BmkwK7pwPy56I/8unXh6QMpuq9ifhaOLpfBQK/BLOuTqjqKOZ8yeTW/pJR30DlpUK8Pb1t0/oVUCHbFxhM2uqKlaHAGgTp817xa1p9a9sWAD9g==</viewid>\n\t<ad_sns_pos>4</ad_sns_pos>\n\t<noExposureExpireTime>720</noExposureExpireTime>\n\t<exposureNoActionExpireTime>720</exposureNoActionExpireTime>\n\t<uxInfo>3547325421|wx0tld43lkkrodqq|3547325421|1|1626955012|0|2|6041365717172948||AgIylt4GK8nVeUcuI+4pKmMsArrIRywgjntIrbYMoUfG0o+2+yULEOc9S+J+Wk6PLDoh6IKmSjk=|3400866612|21</uxInfo>\n\t<adDupSnsIdDel>1</adDupSnsIdDel>\n\t<adActionLink>https://as.weixin.qq.com/cgi-bin/redirect?tid=3400866612&token=e8d51e642ec1fa8166c546c1f303cf95&wx_aid=3547325421&wx_traceid=wx0tld43lkkrodqq00&wx_uid=19681428</adActionLink>\n\t<adActionType>4</adActionType>\n\t<adActionExt>\n\t\t<adChainStrengthen>\n\t\t\t<WordingType>0</WordingType>\n\t\t\t<Wording>最近有719人购买</Wording>\n\t\t\t<WordingRepIOS>最近有719人购买</WordingRepIOS>\n\t\t\t<WordingRepAndroid>最近有719人购买</WordingRepAndroid>\n\t\t</adChainStrengthen>\n\t\t<adChainType>1</adChainType>\n\t\t<adChainTypeExpireTime>1800</adChainTypeExpireTime>\n\t\t<adActionExtWeApp>\n\t\t\t<appUserName>gh_85ea230f6b61@app</appUserName>\n\t\t\t<relativePagePath>/pages/shop/index.html?storeId=2393731723</relativePagePath>\n\t\t\t<appVersion/>\n\t\t\t<miniProgramType>1</miniProgramType>\n\t\t</adActionExtWeApp>\n\t</adActionExt>\n\t<session_data>\n\t\t<trace_id>wx0tld43lkkrodqq</trace_id>\n\t\t<aid>3547325421</aid>\n\t</session_data>\n</ADInfo>\n\n"},"snsAdObject":{"adXml":{"string":"<adxml><newFeedback>1</newFeedback><nickname>AlphaDog阿尔法机器狗</nickname><adUid>19681428</adUid><headClickType>0</headClickType><videoPlayInStreamingMode>1</videoPlayInStreamingMode><adContentStyle>1</adContentStyle><adCardInfo><title>平价阿尔法机器狗来喽</title><description>时代的风景,AI相伴</description><adCardButton><btnTitle>立即购买</btnTitle><clickActionType>4</clickActionType><weappUserName>gh_85ea230f6b61@app</weappUserName><weappPath>/pages/shop/index.html?storeId=2393731723</weappPath><miniProgramType>1</miniProgramType></adCardButton><adRatingCardInfo><tagList><tag>新品推荐</tag><tag>限量抢购</tag><tag>IP联名活动</tag></tagList></adRatingCardInfo></adCardInfo><adActionLinkHidden>1</adActionLinkHidden><adActionLinkName/><adActionLink>https://as.weixin.qq.com/cgi-bin/redirect?tid=3400866612&token=e8d51e642ec1fa8166c546c1f303cf95</adActionLink><webviewRightBarShow>1</webviewRightBarShow><attachShareLinkIsHidden>0</attachShareLinkIsHidden><expandOutsideTitle><zh>广告</zh><tw>廣告</tw><en>Ad</en></expandOutsideTitle><expandInsideTitle><zh>赞助商提供的广告信息</zh><tw>贊助商提供的廣告信息</tw><en>Sponsored story</en></expandInsideTitle><adArgs><arg><key>classify_zh_CN</key><value>zh_CN</value></arg><arg><key>classify_zh_TW</key><value>zh_TW</value></arg><arg><key>classify_en</key><value>en_US</value></arg><arg><key>nickname_zh_CN</key><value>nickname_zh_CN</value></arg><arg><key>nickname_zh_TW</key><value>nickname_zh_TW</value></arg><arg><key>nickname_en</key><value>nickname_en</value></arg></adArgs><feedbackInfo><feedbackList><item><url>https://mp.weixin.qq.com/promotion/res/htmledition/mobile/html/feedback.html</url><Wording><zh>投诉</zh><tw>投訴</tw><en>Report</en></Wording></item></feedbackList></feedbackInfo><compatible><clientVersion><androidMin>654315520</androidMin><iosMin>385879808</iosMin></clientVersion><jumpUrl>https://wxa.wxs.qq.com/canvas-luodiye/h5/wxupdate.html</jumpUrl></compatible></adxml>"},"snsObject":{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1621049336,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13598347436105209699,"isNotRichText":1,"likeCount":0,"likeFlag":0,"likeUserListCount":0,"nickname":"","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD4xMzU5ODM0NzQzNjEwNTIwOTY5OTwvaWQ+PGNyZWF0ZVRpbWU+MTYyMTA0OTMzNjwvY3JlYXRlVGltZT48dXNlcm5hbWU+Z2hfMWNmYmQ1NjAzNzliPC91c2VybmFtZT48Y29udGVudERlc2M+5pe25Luj55qE6aOO5pmv77yMQUnnm7jkvLQ8L2NvbnRlbnREZXNjPjxjb250ZW50RGVzY1Nob3dUeXBlPjA8L2NvbnRlbnREZXNjU2hvd1R5cGU+PGNvbnRlbnREZXNjU2NlbmU+MzwvY29udGVudERlc2NTY2VuZT48cHJpdmF0ZT4wPC9wcml2YXRlPjxDb250ZW50T2JqZWN0Pjx0aXRsZT48L3RpdGxlPjxkZXNjcmlwdGlvbj48L2Rlc2NyaXB0aW9uPjxjb250ZW50VXJsPjwvY29udGVudFVybD48Y29udGVudFN0eWxlPjE8L2NvbnRlbnRTdHlsZT48bWVkaWFMaXN0PjxtZWRpYT48aWQ+MTM1OTkwODQ4MTQ2ODQ0NjA5NDA8L2lkPjxwcml2YXRlPjA8L3ByaXZhdGU+PHR5cGU+MjwvdHlwZT48c3ViVHlwZT4wPC9zdWJUeXBlPjx0aXRsZT48L3RpdGxlPjxkZXNjcmlwdGlvbj48L2Rlc2NyaXB0aW9uPjx1c2VyRGF0YT48L3VzZXJEYXRhPjxsb3dCYW5kVXJsIHR5cGU9IjEiPjwvbG93QmFuZFVybD48dXJsIHR5cGU9IjEiPmh0dHA6Ly93eHNuc2R5dGh1bWIud3hzLnFxLmNvbS8xNDEvMjAyMDQvc25zY29zZG93bmxvYWQvU0gvcmVzZXJ2ZWQvNjA5ZjNlOTQwMDBjOTk1ZDAwMDAwMDAwOWEyMDlkMDkwMDAwMDA4ZDAwMDA0ZWVjP209NzA3YzBiMmVjNDY1OTNiZDQ3NjJlZjRkYWY0MmE4OGYmYW1wO2NrPTcwN2MwYjJlYzQ2NTkzYmQ0NzYyZWY0ZGFmNDJhODhmPC91cmw+PHRodW1iIHR5cGU9IjEiPmh0dHA6Ly93eHNuc2R5dGh1bWIud3hzLnFxLmNvbS8xNDEvMjAyMDQvc25zY29zZG93bmxvYWQvU0gvcmVzZXJ2ZWQvNjA5ZjNlOTQwMDBjOTk1ZDAwMDAwMDAwOWEyMDlkMDkwMDAwMDA4ZDAwMDA0ZWVjP209NzA3YzBiMmVjNDY1OTNiZDQ3NjJlZjRkYWY0MmE4OGYmYW1wO2NrPTcwN2MwYjJlYzQ2NTkzYmQ0NzYyZWY0ZGFmNDJhODhmPC90aHVtYj48c2l6ZSBoZWlnaHQ9IjQ1MCIgd2lkdGg9IjgwMCIgdG90YWxTaXplPSI2NTEzMCI+PC9zaXplPjwvbWVkaWE+PC9tZWRpYUxpc3Q+PGNvbnRlbnRTdWJTdHlsZT44PC9jb250ZW50U3ViU3R5bGU+PC9Db250ZW50T2JqZWN0PjwvVGltZWxpbmVPYmplY3Q+","iLen":1152},"objectOperations":{"buffer":"CAI=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"gh_1cfbd560379b","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0}}}],"baseResponse":{"ret":0},"controlFlag":2,"delAdvertiseCount":0,"firstPageMd5":"6935ad04c4ed4552","max_id":"13647311131165143274","newRequestTime":1626954952,"objectCount":10,"objectCountForSameMd5":10,"objectList":[{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1626886264,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13647311131165143274,"isNotRichText":1,"likeCount":0,"likeFlag":0,"likeUserListCount":0,"nickname":"为美好的世界献上祝福","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzY0NzMxMTEzMTE2NTE0MzI3NF1dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d4aWRfbWp6ZWg0cWo5aGlvMjJdXT48L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjwhW0NEQVRBWzE2MjY4ODYyNjRdXT48L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4wPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PGFwcEluZm8+PGlkPjwhW0NEQVRBW3d4YWI5YjcxYWQyYjkwZmYzNF1dPjwvaWQ+PHZlcnNpb24+MjY8L3ZlcnNpb24+PGFwcE5hbWU+PCFbQ0RBVEFb5b6u5L+h6K+75LmmXV0+PC9hcHBOYW1lPjxpbnN0YWxsVXJsPjwvaW5zdGFsbFVybD48ZnJvbVVybD48L2Zyb21Vcmw+PGNsaWNrYWJsZT4wPC9jbGlja2FibGU+PC9hcHBJbmZvPjxjb250ZW50RGVzYz48L2NvbnRlbnREZXNjPjxjb250ZW50YXR0cj48IVtDREFUQVswXV0+PC9jb250ZW50YXR0cj48c291cmNlVXNlck5hbWU+PC9zb3VyY2VVc2VyTmFtZT48c291cmNlTmlja05hbWU+PC9zb3VyY2VOaWNrTmFtZT48c3RhdGlzdGljc0RhdGE+PC9zdGF0aXN0aWNzRGF0YT48d2VhcHBJbmZvPjxhcHBVc2VyTmFtZT48L2FwcFVzZXJOYW1lPjxwYWdlUGF0aD48L3BhZ2VQYXRoPjx2ZXJzaW9uPjwhW0NEQVRBWzBdXT48L3ZlcnNpb24+PGRlYnVnTW9kZT48IVtDREFUQVswXV0+PC9kZWJ1Z01vZGU+PHNoYXJlQWN0aW9uSWQ+PC9zaGFyZUFjdGlvbklkPjxpc0dhbWU+PCFbQ0RBVEFbMF1dPjwvaXNHYW1lPjxtZXNzYWdlRXh0cmFEYXRhPjwvbWVzc2FnZUV4dHJhRGF0YT48c3ViVHlwZT48IVtDREFUQVswXV0+PC9zdWJUeXBlPjxwcmVsb2FkUmVzb3VyY2VzPjwvcHJlbG9hZFJlc291cmNlcz48L3dlYXBwSW5mbz48Y2FudmFzSW5mb1htbD48L2NhbnZhc0luZm9YbWw+PENvbnRlbnRPYmplY3Q+PGNvbnRlbnRTdHlsZT48IVtDREFUQVsxXV0+PC9jb250ZW50U3R5bGU+PGNvbnRlbnRTdWJTdHlsZT48IVtDREFUQVswXV0+PC9jb250ZW50U3ViU3R5bGU+PHRpdGxlPjwvdGl0bGU+PGRlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb24+PGNvbnRlbnRVcmw+PC9jb250ZW50VXJsPjxtZWRpYUxpc3Q+PG1lZGlhPjxpZD48IVtDREFUQVsxMzY0NzMxMTEzMTczNDA2MTI3N11dPjwvaWQ+PHR5cGU+PCFbQ0RBVEFbMl1dPjwvdHlwZT48dGl0bGU+PC90aXRsZT48ZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbj48cHJpdmF0ZT48IVtDREFUQVswXV0+PC9wcml2YXRlPjx1cmwgdHlwZT0iMSIgbWQ1PSJmMjhmNTgyNjE4NmU2ZTZmMWY4NTVjYzAxMjU4MDIzYiI+PCFbQ0RBVEFbaHR0cDovL3N6bW1zbnMucXBpYy5jbi9tbXNucy9hRnJXNFBWVjRwS1NuU3ExcURRVWMxWExOTUNpY2pnaWNhbTdwTlVoN1AyanUxZFJheDdIaWJROHV2YlRvdDRYeHk0UVhmR1RMSFZvbFEvMF1dPjwvdXJsPjx0aHVtYiB0eXBlPSIxIj48IVtDREFUQVtodHRwOi8vc3ptbXNucy5xcGljLmNuL21tc25zL2FGclc0UFZWNHBLU25TcTFxRFFVYzFYTE5NQ2ljamdpY2FtN3BOVWg3UDJqdTFkUmF4N0hpYlE4dXZiVG90NFh4eTRRWGZHVExIVm9sUS8xNTBdXT48L3RodW1iPjx2aWRlb0R1cmF0aW9uPjwhW0NEQVRBWzAuMF1dPjwvdmlkZW9EdXJhdGlvbj48c2l6ZSB0b3RhbFNpemU9IjY1Mjg5LjAiIHdpZHRoPSIxMDgwLjAiIGhlaWdodD0iMTY0OC4wIj48L3NpemU+PC9tZWRpYT48L21lZGlhTGlzdD48L0NvbnRlbnRPYmplY3Q+PGFjdGlvbkluZm8+PGFwcE1zZz48bWVkaWFUYWdOYW1lPjwvbWVkaWFUYWdOYW1lPjxtZXNzYWdlRXh0PjwvbWVzc2FnZUV4dD48bWVzc2FnZUFjdGlvbj48L21lc3NhZ2VBY3Rpb24+PGFwcGlkPnd4YWI5YjcxYWQyYjkwZmYzNDwvYXBwaWQ+PC9hcHBNc2c+PHNjZW5lPjA8L3NjZW5lPjx0eXBlPjA8L3R5cGU+PHVybD48L3VybD48bmV3V29yZGluZ0tleT48L25ld1dvcmRpbmdLZXk+PG5ld3R5cGU+MDwvbmV3dHlwZT48aW5zdGFsbGVkV29yZGluZz48L2luc3RhbGxlZFdvcmRpbmc+PHVuaW5zdGFsbGVkV29yZGluZz48L3VuaW5zdGFsbGVkV29yZGluZz48L2FjdGlvbkluZm8+PHN0YXRFeHRTdHI+PCFbQ0RBVEFbR2hRS0VuZDRZV0k1WWpjeFlXUXlZamt3Wm1Zek5BPT1dXT48L3N0YXRFeHRTdHI+PGxvY2F0aW9uIHBvaUNsYXNzaWZ5SWQ9IiIgcG9pTmFtZT0iIiBwb2lBZGRyZXNzPSIiIHBvaUNsYXNzaWZ5VHlwZT0iMCIgY2l0eT0iIj48L2xvY2F0aW9uPjxwdWJsaWNVc2VyTmFtZT48L3B1YmxpY1VzZXJOYW1lPjxzdHJlYW12aWRlbz48c3RyZWFtdmlkZW91cmw+PC9zdHJlYW12aWRlb3VybD48c3RyZWFtdmlkZW90aHVtYnVybD48L3N0cmVhbXZpZGVvdGh1bWJ1cmw+PHN0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW93ZWJ1cmw+PC9zdHJlYW12aWRlbz48L1RpbWVsaW5lT2JqZWN0Pg==","iLen":2449},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_mjzeh4qj9hio22","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0},{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1626788321,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13646489531181052217,"isNotRichText":1,"likeCount":0,"likeFlag":0,"likeUserListCount":0,"nickname":"小张晚安","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzY0NjQ4OTUzMTE4MTA1MjIxN11dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d4aWRfdXdieHdidDRpaGpkMjJdXT48L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjwhW0NEQVRBWzE2MjY3ODgzMjFdXT48L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4wPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PGNvbnRlbnREZXNjPjwhW0NEQVRBW+WPr+S4jeaYr+WYm++8jOWPiOeqgeeEtuS6huS4gOS4i+S4i1vml7rmn7RdW+aXuuaftF1dXT48L2NvbnRlbnREZXNjPjxjb250ZW50YXR0cj48IVtDREFUQVswXV0+PC9jb250ZW50YXR0cj48c291cmNlVXNlck5hbWU+PC9zb3VyY2VVc2VyTmFtZT48c291cmNlTmlja05hbWU+PC9zb3VyY2VOaWNrTmFtZT48c3RhdGlzdGljc0RhdGE+PC9zdGF0aXN0aWNzRGF0YT48d2VhcHBJbmZvPjxhcHBVc2VyTmFtZT48L2FwcFVzZXJOYW1lPjxwYWdlUGF0aD48L3BhZ2VQYXRoPjx2ZXJzaW9uPjwhW0NEQVRBWzBdXT48L3ZlcnNpb24+PGRlYnVnTW9kZT48IVtDREFUQVswXV0+PC9kZWJ1Z01vZGU+PHNoYXJlQWN0aW9uSWQ+PC9zaGFyZUFjdGlvbklkPjxpc0dhbWU+PCFbQ0RBVEFbMF1dPjwvaXNHYW1lPjxtZXNzYWdlRXh0cmFEYXRhPjwvbWVzc2FnZUV4dHJhRGF0YT48c3ViVHlwZT48IVtDREFUQVswXV0+PC9zdWJUeXBlPjxwcmVsb2FkUmVzb3VyY2VzPjwvcHJlbG9hZFJlc291cmNlcz48L3dlYXBwSW5mbz48Y2FudmFzSW5mb1htbD48L2NhbnZhc0luZm9YbWw+PENvbnRlbnRPYmplY3Q+PGNvbnRlbnRTdHlsZT48IVtDREFUQVsxXV0+PC9jb250ZW50U3R5bGU+PGNvbnRlbnRTdWJTdHlsZT48IVtDREFUQVswXV0+PC9jb250ZW50U3ViU3R5bGU+PHRpdGxlPjwvdGl0bGU+PGRlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb24+PGNvbnRlbnRVcmw+PC9jb250ZW50VXJsPjxtZWRpYUxpc3Q+PG1lZGlhPjxpZD48IVtDREFUQVsxMzY0NjQ4OTUzMTgxNjk0ODAyNl1dPjwvaWQ+PHR5cGU+PCFbQ0RBVEFbMl1dPjwvdHlwZT48dGl0bGU+PC90aXRsZT48ZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbj48cHJpdmF0ZT48IVtDREFUQVswXV0+PC9wcml2YXRlPjx1cmwgdHlwZT0iMSIgbWQ1PSJkNTBkOWM5M2Q1NTk5NjkzMjQ2ZTBiZTc1NDZlMmM5OSI+PCFbQ0RBVEFbaHR0cDovL3N6bW1zbnMucXBpYy5jbi9tbXNucy9WRWRvamliZXZqUlBDdjlNM0FuSFM4NGI5d21MZDhSRG5yTjhqWlRqNnVYdHF0aWNyWUl2REFMQXBqZ0g0WWZES0JnampUVkh6WDdPVS8wXV0+PC91cmw+PHRodW1iIHR5cGU9IjEiPjwhW0NEQVRBW2h0dHA6Ly9zem1tc25zLnFwaWMuY24vbW1zbnMvVkVkb2ppYmV2alJQQ3Y5TTNBbkhTODRiOXdtTGQ4UkRuck44alpUajZ1WHRxdGljcllJdkRBTEFwamdINFlmREtCZ2pqVFZIelg3T1UvMTUwXV0+PC90aHVtYj48dmlkZW9EdXJhdGlvbj48IVtDREFUQVswLjBdXT48L3ZpZGVvRHVyYXRpb24+PHNpemUgdG90YWxTaXplPSI0NDUzOC4wIiB3aWR0aD0iMTA4MC4wIiBoZWlnaHQ9IjIzNDAuMCI+PC9zaXplPjwvbWVkaWE+PC9tZWRpYUxpc3Q+PC9Db250ZW50T2JqZWN0PjxhY3Rpb25JbmZvPjxhcHBNc2c+PG1lZGlhVGFnTmFtZT48L21lZGlhVGFnTmFtZT48bWVzc2FnZUV4dD48L21lc3NhZ2VFeHQ+PG1lc3NhZ2VBY3Rpb24+PC9tZXNzYWdlQWN0aW9uPjwvYXBwTXNnPjwvYWN0aW9uSW5mbz48YXBwSW5mbz48aWQ+PC9pZD48L2FwcEluZm8+PGxvY2F0aW9uIHBvaUNsYXNzaWZ5SWQ9IiIgcG9pTmFtZT0iIiBwb2lBZGRyZXNzPSIiIHBvaUNsYXNzaWZ5VHlwZT0iMCIgY2l0eT0iIj48L2xvY2F0aW9uPjxwdWJsaWNVc2VyTmFtZT48L3B1YmxpY1VzZXJOYW1lPjxzdHJlYW12aWRlbz48c3RyZWFtdmlkZW91cmw+PC9zdHJlYW12aWRlb3VybD48c3RyZWFtdmlkZW90aHVtYnVybD48L3N0cmVhbXZpZGVvdGh1bWJ1cmw+PHN0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW93ZWJ1cmw+PC9zdHJlYW12aWRlbz48L1RpbWVsaW5lT2JqZWN0Pg==","iLen":2077},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_uwbxwbt4ihjd22","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0},{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1626542926,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13644431003338420534,"isNotRichText":1,"likeCount":0,"likeFlag":0,"likeUserListCount":0,"nickname":"小张晚安","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzY0NDQzMTAwMzMzODQyMDUzNF1dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d4aWRfdXdieHdidDRpaGpkMjJdXT48L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjwhW0NEQVRBWzE2MjY1NDI5MjZdXT48L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4wPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PGNvbnRlbnREZXNjPjwhW0NEQVRBW+aYr+WTquS4quS6uua4o+WcqOWPkeiqk++8jOaQnuW+l+S7iuaZmuWPiOaYr+aatOmbqO+8jOWPiOaYr+aJk+mbt+eahFvml7rmn7RdW+aXuuaftF1dXT48L2NvbnRlbnREZXNjPjxjb250ZW50YXR0cj48IVtDREFUQVswXV0+PC9jb250ZW50YXR0cj48c291cmNlVXNlck5hbWU+PC9zb3VyY2VVc2VyTmFtZT48c291cmNlTmlja05hbWU+PC9zb3VyY2VOaWNrTmFtZT48c3RhdGlzdGljc0RhdGE+PC9zdGF0aXN0aWNzRGF0YT48d2VhcHBJbmZvPjxhcHBVc2VyTmFtZT48L2FwcFVzZXJOYW1lPjxwYWdlUGF0aD48L3BhZ2VQYXRoPjx2ZXJzaW9uPjwhW0NEQVRBWzBdXT48L3ZlcnNpb24+PGRlYnVnTW9kZT48IVtDREFUQVswXV0+PC9kZWJ1Z01vZGU+PHNoYXJlQWN0aW9uSWQ+PC9zaGFyZUFjdGlvbklkPjxpc0dhbWU+PCFbQ0RBVEFbMF1dPjwvaXNHYW1lPjxtZXNzYWdlRXh0cmFEYXRhPjwvbWVzc2FnZUV4dHJhRGF0YT48c3ViVHlwZT48IVtDREFUQVswXV0+PC9zdWJUeXBlPjxwcmVsb2FkUmVzb3VyY2VzPjwvcHJlbG9hZFJlc291cmNlcz48L3dlYXBwSW5mbz48Y2FudmFzSW5mb1htbD48L2NhbnZhc0luZm9YbWw+PENvbnRlbnRPYmplY3Q+PGNvbnRlbnRTdHlsZT48IVtDREFUQVsyXV0+PC9jb250ZW50U3R5bGU+PGNvbnRlbnRTdWJTdHlsZT48IVtDREFUQVswXV0+PC9jb250ZW50U3ViU3R5bGU+PHRpdGxlPjwvdGl0bGU+PGRlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb24+PGNvbnRlbnRVcmw+PC9jb250ZW50VXJsPjwvQ29udGVudE9iamVjdD48YWN0aW9uSW5mbz48YXBwTXNnPjxtZWRpYVRhZ05hbWU+PC9tZWRpYVRhZ05hbWU+PG1lc3NhZ2VFeHQ+PC9tZXNzYWdlRXh0PjxtZXNzYWdlQWN0aW9uPjwvbWVzc2FnZUFjdGlvbj48L2FwcE1zZz48L2FjdGlvbkluZm8+PGFwcEluZm8+PGlkPjwvaWQ+PC9hcHBJbmZvPjxsb2NhdGlvbiBwb2lDbGFzc2lmeUlkPSIiIHBvaU5hbWU9IiIgcG9pQWRkcmVzcz0iIiBwb2lDbGFzc2lmeVR5cGU9IjAiIGNpdHk9IiI+PC9sb2NhdGlvbj48cHVibGljVXNlck5hbWU+PC9wdWJsaWNVc2VyTmFtZT48c3RyZWFtdmlkZW8+PHN0cmVhbXZpZGVvdXJsPjwvc3RyZWFtdmlkZW91cmw+PHN0cmVhbXZpZGVvdGh1bWJ1cmw+PC9zdHJlYW12aWRlb3RodW1idXJsPjxzdHJlYW12aWRlb3dlYnVybD48L3N0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW8+PC9UaW1lbGluZU9iamVjdD4=","iLen":1496},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_uwbxwbt4ihjd22","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0},{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1626442781,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13643590928611357004,"isNotRichText":1,"likeCount":0,"likeFlag":0,"likeUserListCount":0,"nickname":"小张晚安","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzY0MzU5MDkyODYxMTM1NzAwNF1dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d4aWRfdXdieHdidDRpaGpkMjJdXT48L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjwhW0NEQVRBWzE2MjY0NDI3ODFdXT48L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4wPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PGNvbnRlbnREZXNjPjwhW0NEQVRBW+S7iuaZmuaciOS6rvCfjJkg5b6I5byv77yM5Lq65rKh5byv5bCx5aW9W+aXuuaftF1b5pe65p+0XV1dPjwvY29udGVudERlc2M+PGNvbnRlbnRhdHRyPjwhW0NEQVRBWzBdXT48L2NvbnRlbnRhdHRyPjxzb3VyY2VVc2VyTmFtZT48L3NvdXJjZVVzZXJOYW1lPjxzb3VyY2VOaWNrTmFtZT48L3NvdXJjZU5pY2tOYW1lPjxzdGF0aXN0aWNzRGF0YT48L3N0YXRpc3RpY3NEYXRhPjx3ZWFwcEluZm8+PGFwcFVzZXJOYW1lPjwvYXBwVXNlck5hbWU+PHBhZ2VQYXRoPjwvcGFnZVBhdGg+PHZlcnNpb24+PCFbQ0RBVEFbMF1dPjwvdmVyc2lvbj48ZGVidWdNb2RlPjwhW0NEQVRBWzBdXT48L2RlYnVnTW9kZT48c2hhcmVBY3Rpb25JZD48L3NoYXJlQWN0aW9uSWQ+PGlzR2FtZT48IVtDREFUQVswXV0+PC9pc0dhbWU+PG1lc3NhZ2VFeHRyYURhdGE+PC9tZXNzYWdlRXh0cmFEYXRhPjxzdWJUeXBlPjwhW0NEQVRBWzBdXT48L3N1YlR5cGU+PHByZWxvYWRSZXNvdXJjZXM+PC9wcmVsb2FkUmVzb3VyY2VzPjwvd2VhcHBJbmZvPjxjYW52YXNJbmZvWG1sPjwvY2FudmFzSW5mb1htbD48Q29udGVudE9iamVjdD48Y29udGVudFN0eWxlPjwhW0NEQVRBWzFdXT48L2NvbnRlbnRTdHlsZT48Y29udGVudFN1YlN0eWxlPjwhW0NEQVRBWzBdXT48L2NvbnRlbnRTdWJTdHlsZT48dGl0bGU+PC90aXRsZT48ZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbj48Y29udGVudFVybD48L2NvbnRlbnRVcmw+PG1lZGlhTGlzdD48bWVkaWE+PGlkPjwhW0NEQVRBWzEzNjQzNTkwOTI5MjEzMjM5NjQxXV0+PC9pZD48dHlwZT48IVtDREFUQVsyXV0+PC90eXBlPjx0aXRsZT48L3RpdGxlPjxkZXNjcmlwdGlvbj48L2Rlc2NyaXB0aW9uPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PHVybCB0eXBlPSIxIiBtZDU9ImEwYzA1NTljMTE3MDUwOTIxM2YyNGMwNWMwMmVjODRkIj48IVtDREFUQVtodHRwOi8vc3ptbXNucy5xcGljLmNuL21tc25zL1ZFZG9qaWJldmpSUEN2OU0zQW5IUzh3UFEzaWJKZGRHRXI4SThOYU9WNnJFWHhtNmtLeG9Ob0xjdTVIMVZBN3hpY3BpYTZCZDJORHFNQ2svMF1dPjwvdXJsPjx0aHVtYiB0eXBlPSIxIj48IVtDREFUQVtodHRwOi8vc3ptbXNucy5xcGljLmNuL21tc25zL1ZFZG9qaWJldmpSUEN2OU0zQW5IUzh3UFEzaWJKZGRHRXI4SThOYU9WNnJFWHhtNmtLeG9Ob0xjdTVIMVZBN3hpY3BpYTZCZDJORHFNQ2svMTUwXV0+PC90aHVtYj48dmlkZW9EdXJhdGlvbj48IVtDREFUQVswLjBdXT48L3ZpZGVvRHVyYXRpb24+PHNpemUgdG90YWxTaXplPSI3MTYzNy4wIiB3aWR0aD0iOTc4LjAiIGhlaWdodD0iMTE2NC4wIj48L3NpemU+PC9tZWRpYT48L21lZGlhTGlzdD48L0NvbnRlbnRPYmplY3Q+PGFjdGlvbkluZm8+PGFwcE1zZz48bWVkaWFUYWdOYW1lPjwvbWVkaWFUYWdOYW1lPjxtZXNzYWdlRXh0PjwvbWVzc2FnZUV4dD48bWVzc2FnZUFjdGlvbj48L21lc3NhZ2VBY3Rpb24+PC9hcHBNc2c+PC9hY3Rpb25JbmZvPjxhcHBJbmZvPjxpZD48L2lkPjwvYXBwSW5mbz48bG9jYXRpb24gcG9pQ2xhc3NpZnlJZD0iIiBwb2lOYW1lPSIiIHBvaUFkZHJlc3M9IiIgcG9pQ2xhc3NpZnlUeXBlPSIwIiBjaXR5PSIiPjwvbG9jYXRpb24+PHB1YmxpY1VzZXJOYW1lPjwvcHVibGljVXNlck5hbWU+PHN0cmVhbXZpZGVvPjxzdHJlYW12aWRlb3VybD48L3N0cmVhbXZpZGVvdXJsPjxzdHJlYW12aWRlb3RodW1idXJsPjwvc3RyZWFtdmlkZW90aHVtYnVybD48c3RyZWFtdmlkZW93ZWJ1cmw+PC9zdHJlYW12aWRlb3dlYnVybD48L3N0cmVhbXZpZGVvPjwvVGltZWxpbmVPYmplY3Q+","iLen":2085},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_uwbxwbt4ihjd22","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0},{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1626348290,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13642798280310927692,"isNotRichText":1,"likeCount":1,"likeFlag":0,"likeUserList":[{"commentFlag":0,"commentId":0,"commentId2":0,"content":"","createTime":1626351692,"deleteFlag":0,"isNotRichText":0,"nickname":"Mr.Y","replyCommentId":0,"replyCommentId2":0,"replyUsername":"","source":0,"type":1,"username":"wxid_ocmmotiznvw122"}],"likeUserListCount":1,"nickname":"小张晚安","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzY0Mjc5ODI4MDMxMDkyNzY5Ml1dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d4aWRfdXdieHdidDRpaGpkMjJdXT48L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjwhW0NEQVRBWzE2MjYzNDgyOTBdXT48L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4wPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PGNvbnRlbnREZXNjPjwhW0NEQVRBW+imgeW+l+eRn+W+l+eRn++8jOWHj+S4gOWNiuebruagh+S6hlvml7rmn7RdW+aXuuaftF1dXT48L2NvbnRlbnREZXNjPjxjb250ZW50YXR0cj48IVtDREFUQVswXV0+PC9jb250ZW50YXR0cj48c291cmNlVXNlck5hbWU+PC9zb3VyY2VVc2VyTmFtZT48c291cmNlTmlja05hbWU+PC9zb3VyY2VOaWNrTmFtZT48c3RhdGlzdGljc0RhdGE+PC9zdGF0aXN0aWNzRGF0YT48d2VhcHBJbmZvPjxhcHBVc2VyTmFtZT48L2FwcFVzZXJOYW1lPjxwYWdlUGF0aD48L3BhZ2VQYXRoPjx2ZXJzaW9uPjwhW0NEQVRBWzBdXT48L3ZlcnNpb24+PGRlYnVnTW9kZT48IVtDREFUQVswXV0+PC9kZWJ1Z01vZGU+PHNoYXJlQWN0aW9uSWQ+PC9zaGFyZUFjdGlvbklkPjxpc0dhbWU+PCFbQ0RBVEFbMF1dPjwvaXNHYW1lPjxtZXNzYWdlRXh0cmFEYXRhPjwvbWVzc2FnZUV4dHJhRGF0YT48c3ViVHlwZT48IVtDREFUQVswXV0+PC9zdWJUeXBlPjxwcmVsb2FkUmVzb3VyY2VzPjwvcHJlbG9hZFJlc291cmNlcz48L3dlYXBwSW5mbz48Y2FudmFzSW5mb1htbD48L2NhbnZhc0luZm9YbWw+PENvbnRlbnRPYmplY3Q+PGNvbnRlbnRTdHlsZT48IVtDREFUQVsxXV0+PC9jb250ZW50U3R5bGU+PGNvbnRlbnRTdWJTdHlsZT48IVtDREFUQVswXV0+PC9jb250ZW50U3ViU3R5bGU+PHRpdGxlPjwvdGl0bGU+PGRlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb24+PGNvbnRlbnRVcmw+PC9jb250ZW50VXJsPjxtZWRpYUxpc3Q+PG1lZGlhPjxpZD48IVtDREFUQVsxMzY0Mjc5ODI4MTAzODMxMTc2Ml1dPjwvaWQ+PHR5cGU+PCFbQ0RBVEFbMl1dPjwvdHlwZT48dGl0bGU+PC90aXRsZT48ZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbj48cHJpdmF0ZT48IVtDREFUQVswXV0+PC9wcml2YXRlPjx1cmwgdHlwZT0iMSIgbWQ1PSI0NmE0OGE0YzgzOTNhMDA0NWZjZTUzZGU4ZmEzODg0OSI+PCFbQ0RBVEFbaHR0cDovL3N6bW1zbnMucXBpYy5jbi9tbXNucy9WRWRvamliZXZqUlBDdjlNM0FuSFM4OFRoT0dJczEwSGdDMEtLUDRidUJIQnh1eUhXa3BBT0VudnpvSmtyZElEbkJ3N2JRNjVSZ0VnLzBdXT48L3VybD48dGh1bWIgdHlwZT0iMSI+PCFbQ0RBVEFbaHR0cDovL3N6bW1zbnMucXBpYy5jbi9tbXNucy9WRWRvamliZXZqUlBDdjlNM0FuSFM4OFRoT0dJczEwSGdDMEtLUDRidUJIQnh1eUhXa3BBT0VudnpvSmtyZElEbkJ3N2JRNjVSZ0VnLzE1MF1dPjwvdGh1bWI+PHZpZGVvRHVyYXRpb24+PCFbQ0RBVEFbMC4wXV0+PC92aWRlb0R1cmF0aW9uPjxzaXplIHRvdGFsU2l6ZT0iOTM3MzEuMCIgd2lkdGg9IjE0NDAuMCIgaGVpZ2h0PSIxMDgwLjAiPjwvc2l6ZT48L21lZGlhPjwvbWVkaWFMaXN0PjwvQ29udGVudE9iamVjdD48YWN0aW9uSW5mbz48YXBwTXNnPjxtZWRpYVRhZ05hbWU+PC9tZWRpYVRhZ05hbWU+PG1lc3NhZ2VFeHQ+PC9tZXNzYWdlRXh0PjxtZXNzYWdlQWN0aW9uPjwvbWVzc2FnZUFjdGlvbj48L2FwcE1zZz48L2FjdGlvbkluZm8+PGFwcEluZm8+PGlkPjwvaWQ+PC9hcHBJbmZvPjxsb2NhdGlvbiBwb2lDbGFzc2lmeUlkPSIiIHBvaU5hbWU9IiIgcG9pQWRkcmVzcz0iIiBwb2lDbGFzc2lmeVR5cGU9IjAiIGNpdHk9IiI+PC9sb2NhdGlvbj48cHVibGljVXNlck5hbWU+PC9wdWJsaWNVc2VyTmFtZT48c3RyZWFtdmlkZW8+PHN0cmVhbXZpZGVvdXJsPjwvc3RyZWFtdmlkZW91cmw+PHN0cmVhbXZpZGVvdGh1bWJ1cmw+PC9zdHJlYW12aWRlb3RodW1idXJsPjxzdHJlYW12aWRlb3dlYnVybD48L3N0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW8+PC9UaW1lbGluZU9iamVjdD4=","iLen":2075},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_uwbxwbt4ihjd22","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0},{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1626277124,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13642201292100546882,"isNotRichText":1,"likeCount":1,"likeFlag":0,"likeUserList":[{"commentFlag":0,"commentId":0,"commentId2":0,"content":"","createTime":1626277179,"deleteFlag":0,"isNotRichText":0,"nickname":"为美好的世界献上祝福","replyCommentId":0,"replyCommentId2":0,"replyUsername":"","source":0,"type":1,"username":"wxid_mjzeh4qj9hio22"}],"likeUserListCount":1,"nickname":"小张晚安","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzY0MjIwMTI5MjEwMDU0Njg4Ml1dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d4aWRfdXdieHdidDRpaGpkMjJdXT48L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjwhW0NEQVRBWzE2MjYyNzcxMjRdXT48L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4wPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PGNvbnRlbnREZXNjPjwhW0NEQVRBW+WNp+anve+8jOaUtuWIsOS6humihOitpuitpuWRilvmg4rmgZBdW+aDiuaBkF1dXT48L2NvbnRlbnREZXNjPjxjb250ZW50YXR0cj48IVtDREFUQVswXV0+PC9jb250ZW50YXR0cj48c291cmNlVXNlck5hbWU+PC9zb3VyY2VVc2VyTmFtZT48c291cmNlTmlja05hbWU+PC9zb3VyY2VOaWNrTmFtZT48c3RhdGlzdGljc0RhdGE+PC9zdGF0aXN0aWNzRGF0YT48d2VhcHBJbmZvPjxhcHBVc2VyTmFtZT48L2FwcFVzZXJOYW1lPjxwYWdlUGF0aD48L3BhZ2VQYXRoPjx2ZXJzaW9uPjwhW0NEQVRBWzBdXT48L3ZlcnNpb24+PGRlYnVnTW9kZT48IVtDREFUQVswXV0+PC9kZWJ1Z01vZGU+PHNoYXJlQWN0aW9uSWQ+PC9zaGFyZUFjdGlvbklkPjxpc0dhbWU+PCFbQ0RBVEFbMF1dPjwvaXNHYW1lPjxtZXNzYWdlRXh0cmFEYXRhPjwvbWVzc2FnZUV4dHJhRGF0YT48c3ViVHlwZT48IVtDREFUQVswXV0+PC9zdWJUeXBlPjxwcmVsb2FkUmVzb3VyY2VzPjwvcHJlbG9hZFJlc291cmNlcz48L3dlYXBwSW5mbz48Y2FudmFzSW5mb1htbD48L2NhbnZhc0luZm9YbWw+PENvbnRlbnRPYmplY3Q+PGNvbnRlbnRTdHlsZT48IVtDREFUQVsyXV0+PC9jb250ZW50U3R5bGU+PGNvbnRlbnRTdWJTdHlsZT48IVtDREFUQVswXV0+PC9jb250ZW50U3ViU3R5bGU+PHRpdGxlPjwvdGl0bGU+PGRlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb24+PGNvbnRlbnRVcmw+PC9jb250ZW50VXJsPjwvQ29udGVudE9iamVjdD48YWN0aW9uSW5mbz48YXBwTXNnPjxtZWRpYVRhZ05hbWU+PC9tZWRpYVRhZ05hbWU+PG1lc3NhZ2VFeHQ+PC9tZXNzYWdlRXh0PjxtZXNzYWdlQWN0aW9uPjwvbWVzc2FnZUFjdGlvbj48L2FwcE1zZz48L2FjdGlvbkluZm8+PGFwcEluZm8+PGlkPjwvaWQ+PC9hcHBJbmZvPjxsb2NhdGlvbiBwb2lDbGFzc2lmeUlkPSIiIHBvaU5hbWU9IiIgcG9pQWRkcmVzcz0iIiBwb2lDbGFzc2lmeVR5cGU9IjAiIGNpdHk9IiI+PC9sb2NhdGlvbj48cHVibGljVXNlck5hbWU+PC9wdWJsaWNVc2VyTmFtZT48c3RyZWFtdmlkZW8+PHN0cmVhbXZpZGVvdXJsPjwvc3RyZWFtdmlkZW91cmw+PHN0cmVhbXZpZGVvdGh1bWJ1cmw+PC9zdHJlYW12aWRlb3RodW1idXJsPjxzdHJlYW12aWRlb3dlYnVybD48L3N0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW8+PC9UaW1lbGluZU9iamVjdD4=","iLen":1457},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_uwbxwbt4ihjd22","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0},{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1626099336,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13640709903944790348,"isNotRichText":1,"likeCount":1,"likeFlag":0,"likeUserList":[{"commentFlag":0,"commentId":0,"commentId2":0,"content":"","createTime":1626134130,"deleteFlag":0,"isNotRichText":0,"nickname":"Mr.Y","replyCommentId":0,"replyCommentId2":0,"replyUsername":"","source":0,"type":1,"username":"wxid_ocmmotiznvw122"}],"likeUserListCount":1,"nickname":"小张晚安","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzY0MDcwOTkwMzk0NDc5MDM0OF1dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d4aWRfdXdieHdidDRpaGpkMjJdXT48L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjwhW0NEQVRBWzE2MjYwOTkzMzZdXT48L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4wPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PGNvbnRlbnREZXNjPjwhW0NEQVRBW+S5n+eul+aYr+S4izcw5LqGW+aXuuaftF1b5pe65p+0XV1dPjwvY29udGVudERlc2M+PGNvbnRlbnRhdHRyPjwhW0NEQVRBWzBdXT48L2NvbnRlbnRhdHRyPjxzb3VyY2VVc2VyTmFtZT48L3NvdXJjZVVzZXJOYW1lPjxzb3VyY2VOaWNrTmFtZT48L3NvdXJjZU5pY2tOYW1lPjxzdGF0aXN0aWNzRGF0YT48L3N0YXRpc3RpY3NEYXRhPjx3ZWFwcEluZm8+PGFwcFVzZXJOYW1lPjwvYXBwVXNlck5hbWU+PHBhZ2VQYXRoPjwvcGFnZVBhdGg+PHZlcnNpb24+PCFbQ0RBVEFbMF1dPjwvdmVyc2lvbj48ZGVidWdNb2RlPjwhW0NEQVRBWzBdXT48L2RlYnVnTW9kZT48c2hhcmVBY3Rpb25JZD48L3NoYXJlQWN0aW9uSWQ+PGlzR2FtZT48IVtDREFUQVswXV0+PC9pc0dhbWU+PG1lc3NhZ2VFeHRyYURhdGE+PC9tZXNzYWdlRXh0cmFEYXRhPjxzdWJUeXBlPjwhW0NEQVRBWzBdXT48L3N1YlR5cGU+PHByZWxvYWRSZXNvdXJjZXM+PC9wcmVsb2FkUmVzb3VyY2VzPjwvd2VhcHBJbmZvPjxjYW52YXNJbmZvWG1sPjwvY2FudmFzSW5mb1htbD48Q29udGVudE9iamVjdD48Y29udGVudFN0eWxlPjwhW0NEQVRBWzFdXT48L2NvbnRlbnRTdHlsZT48Y29udGVudFN1YlN0eWxlPjwhW0NEQVRBWzBdXT48L2NvbnRlbnRTdWJTdHlsZT48dGl0bGU+PC90aXRsZT48ZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbj48Y29udGVudFVybD48L2NvbnRlbnRVcmw+PG1lZGlhTGlzdD48bWVkaWE+PGlkPjwhW0NEQVRBWzEzNjQwNzA5OTA0NjgyODU2Nzc0XV0+PC9pZD48dHlwZT48IVtDREFUQVsyXV0+PC90eXBlPjx0aXRsZT48L3RpdGxlPjxkZXNjcmlwdGlvbj48L2Rlc2NyaXB0aW9uPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PHVybCB0eXBlPSIxIiBtZDU9IjQzNjdkOTU4Yzc1MjJkY2E3NWZiNmM4MzY2ODYxZGQzIj48IVtDREFUQVtodHRwOi8vc3ptbXNucy5xcGljLmNuL21tc25zL1ZFZG9qaWJldmpST056ajFQdTJtSTB2QmNPVzkzTnRVUDU4UWtONFM4d2VTa3RIS2lhdzM1YUFPUjNObGV2Z2hBYndTRU43ZTY3ZVljLzBdXT48L3VybD48dGh1bWIgdHlwZT0iMSI+PCFbQ0RBVEFbaHR0cDovL3N6bW1zbnMucXBpYy5jbi9tbXNucy9WRWRvamliZXZqUk9OemoxUHUybUkwdkJjT1c5M050VVA1OFFrTjRTOHdlU2t0SEtpYXczNWFBT1IzTmxldmdoQWJ3U0VON2U2N2VZYy8xNTBdXT48L3RodW1iPjx2aWRlb0R1cmF0aW9uPjwhW0NEQVRBWzAuMF1dPjwvdmlkZW9EdXJhdGlvbj48c2l6ZSB0b3RhbFNpemU9IjE2OTMxLjAiIHdpZHRoPSI3MjYuMCIgaGVpZ2h0PSIyOTkuMCI+PC9zaXplPjwvbWVkaWE+PC9tZWRpYUxpc3Q+PC9Db250ZW50T2JqZWN0PjxhY3Rpb25JbmZvPjxhcHBNc2c+PG1lZGlhVGFnTmFtZT48L21lZGlhVGFnTmFtZT48bWVzc2FnZUV4dD48L21lc3NhZ2VFeHQ+PG1lc3NhZ2VBY3Rpb24+PC9tZXNzYWdlQWN0aW9uPjwvYXBwTXNnPjwvYWN0aW9uSW5mbz48YXBwSW5mbz48aWQ+PC9pZD48L2FwcEluZm8+PGxvY2F0aW9uIHBvaUNsYXNzaWZ5SWQ9IiIgcG9pTmFtZT0iIiBwb2lBZGRyZXNzPSIiIHBvaUNsYXNzaWZ5VHlwZT0iMCIgY2l0eT0iIj48L2xvY2F0aW9uPjxwdWJsaWNVc2VyTmFtZT48L3B1YmxpY1VzZXJOYW1lPjxzdHJlYW12aWRlbz48c3RyZWFtdmlkZW91cmw+PC9zdHJlYW12aWRlb3VybD48c3RyZWFtdmlkZW90aHVtYnVybD48L3N0cmVhbXZpZGVvdGh1bWJ1cmw+PHN0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW93ZWJ1cmw+PC9zdHJlYW12aWRlbz48L1RpbWVsaW5lT2JqZWN0Pg==","iLen":2056},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_uwbxwbt4ihjd22","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0},{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1626020250,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13640046480797544764,"isNotRichText":1,"likeCount":0,"likeFlag":0,"likeUserListCount":0,"nickname":"小张晚安","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzY0MDA0NjQ4MDc5NzU0NDc2NF1dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d4aWRfdXdieHdidDRpaGpkMjJdXT48L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjwhW0NEQVRBWzE2MjYwMjAyNTBdXT48L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4wPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PGNvbnRlbnREZXNjPjwhW0NEQVRBW+S9oOiLpeacquWHuueOsO+8jOa4uOaIj+S4jeWNuOi9ve+8gV1dPjwvY29udGVudERlc2M+PGNvbnRlbnRhdHRyPjwhW0NEQVRBWzBdXT48L2NvbnRlbnRhdHRyPjxzb3VyY2VVc2VyTmFtZT48L3NvdXJjZVVzZXJOYW1lPjxzb3VyY2VOaWNrTmFtZT48L3NvdXJjZU5pY2tOYW1lPjxzdGF0aXN0aWNzRGF0YT48L3N0YXRpc3RpY3NEYXRhPjx3ZWFwcEluZm8+PGFwcFVzZXJOYW1lPjwvYXBwVXNlck5hbWU+PHBhZ2VQYXRoPjwvcGFnZVBhdGg+PHZlcnNpb24+PCFbQ0RBVEFbMF1dPjwvdmVyc2lvbj48ZGVidWdNb2RlPjwhW0NEQVRBWzBdXT48L2RlYnVnTW9kZT48c2hhcmVBY3Rpb25JZD48L3NoYXJlQWN0aW9uSWQ+PGlzR2FtZT48IVtDREFUQVswXV0+PC9pc0dhbWU+PG1lc3NhZ2VFeHRyYURhdGE+PC9tZXNzYWdlRXh0cmFEYXRhPjxzdWJUeXBlPjwhW0NEQVRBWzBdXT48L3N1YlR5cGU+PHByZWxvYWRSZXNvdXJjZXM+PC9wcmVsb2FkUmVzb3VyY2VzPjwvd2VhcHBJbmZvPjxjYW52YXNJbmZvWG1sPjwvY2FudmFzSW5mb1htbD48Q29udGVudE9iamVjdD48Y29udGVudFN0eWxlPjwhW0NEQVRBWzFdXT48L2NvbnRlbnRTdHlsZT48Y29udGVudFN1YlN0eWxlPjwhW0NEQVRBWzBdXT48L2NvbnRlbnRTdWJTdHlsZT48dGl0bGU+PC90aXRsZT48ZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbj48Y29udGVudFVybD48L2NvbnRlbnRVcmw+PG1lZGlhTGlzdD48bWVkaWE+PGlkPjwhW0NEQVRBWzEzNjQwMDQ2NDgxNTA3OTU0OTk1XV0+PC9pZD48dHlwZT48IVtDREFUQVsyXV0+PC90eXBlPjx0aXRsZT48L3RpdGxlPjxkZXNjcmlwdGlvbj48L2Rlc2NyaXB0aW9uPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PHVybCB0eXBlPSIxIiBtZDU9Ijg4NDJkMGU0YjU2ZWZjMzhkZjVhMTlkMjgxMzA2OTYyIj48IVtDREFUQVtodHRwOi8vc3ptbXNucy5xcGljLmNuL21tc25zL1ZFZG9qaWJldmpST056ajFQdTJtSTBqYmliM292bmlieG8xcTJpYm9taWNCbnZhU2dNRjRuRmtpYWZCYWJ0RlEyaEJYbGZCTUxnMmliZjg1VmsvMF1dPjwvdXJsPjx0aHVtYiB0eXBlPSIxIj48IVtDREFUQVtodHRwOi8vc3ptbXNucy5xcGljLmNuL21tc25zL1ZFZG9qaWJldmpST056ajFQdTJtSTBqYmliM292bmlieG8xcTJpYm9taWNCbnZhU2dNRjRuRmtpYWZCYWJ0RlEyaEJYbGZCTUxnMmliZjg1VmsvMTUwXV0+PC90aHVtYj48dmlkZW9EdXJhdGlvbj48IVtDREFUQVswLjBdXT48L3ZpZGVvRHVyYXRpb24+PHNpemUgdG90YWxTaXplPSIxMDk5Ny4wIiB3aWR0aD0iMjM0LjAiIGhlaWdodD0iNDQwLjAiPjwvc2l6ZT48L21lZGlhPjwvbWVkaWFMaXN0PjwvQ29udGVudE9iamVjdD48YWN0aW9uSW5mbz48YXBwTXNnPjxtZWRpYVRhZ05hbWU+PC9tZWRpYVRhZ05hbWU+PG1lc3NhZ2VFeHQ+PC9tZXNzYWdlRXh0PjxtZXNzYWdlQWN0aW9uPjwvbWVzc2FnZUFjdGlvbj48L2FwcE1zZz48L2FjdGlvbkluZm8+PGFwcEluZm8+PGlkPjwvaWQ+PC9hcHBJbmZvPjxsb2NhdGlvbiBwb2lDbGFzc2lmeUlkPSIiIHBvaU5hbWU9IiIgcG9pQWRkcmVzcz0iIiBwb2lDbGFzc2lmeVR5cGU9IjAiIGNpdHk9IiI+PC9sb2NhdGlvbj48cHVibGljVXNlck5hbWU+PC9wdWJsaWNVc2VyTmFtZT48c3RyZWFtdmlkZW8+PHN0cmVhbXZpZGVvdXJsPjwvc3RyZWFtdmlkZW91cmw+PHN0cmVhbXZpZGVvdGh1bWJ1cmw+PC9zdHJlYW12aWRlb3RodW1idXJsPjxzdHJlYW12aWRlb3dlYnVybD48L3N0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW8+PC9UaW1lbGluZU9iamVjdD4=","iLen":2069},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_uwbxwbt4ihjd22","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0},{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1625753812,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13637811438959997245,"isNotRichText":1,"likeCount":0,"likeFlag":0,"likeUserListCount":0,"nickname":"小张晚安","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzYzNzgxMTQzODk1OTk5NzI0NV1dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d4aWRfdXdieHdidDRpaGpkMjJdXT48L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjwhW0NEQVRBWzE2MjU3NTM4MTJdXT48L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4wPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PGNvbnRlbnREZXNjPjwhW0NEQVRBW+ivpeatu++8jOi3keS6huW/q+S4pOWFrOmHjOiuoeatpeWZqOaJjeW8gOWni+iuoeaVsO+8jOaIkeivtOaAjuS5iOi3keS6humCo+S5iOS5he+8jOi/mOayoeS4gOWFrOmHjOWSqVvoi6bmtqldW+iLpua2qV3vvIzmi7/lh7rmiYvmnLrkuIDnnIvvvIzmsqHorqHmraXvvIzmraPluLjmg4XlhrXml6nkupTlhazph4zkuoZb5pOm5rGXXVvmk6bmsZddXV0+PC9jb250ZW50RGVzYz48Y29udGVudGF0dHI+PCFbQ0RBVEFbMF1dPjwvY29udGVudGF0dHI+PHNvdXJjZVVzZXJOYW1lPjwvc291cmNlVXNlck5hbWU+PHNvdXJjZU5pY2tOYW1lPjwvc291cmNlTmlja05hbWU+PHN0YXRpc3RpY3NEYXRhPjwvc3RhdGlzdGljc0RhdGE+PHdlYXBwSW5mbz48YXBwVXNlck5hbWU+PC9hcHBVc2VyTmFtZT48cGFnZVBhdGg+PC9wYWdlUGF0aD48dmVyc2lvbj48IVtDREFUQVswXV0+PC92ZXJzaW9uPjxkZWJ1Z01vZGU+PCFbQ0RBVEFbMF1dPjwvZGVidWdNb2RlPjxzaGFyZUFjdGlvbklkPjwvc2hhcmVBY3Rpb25JZD48aXNHYW1lPjwhW0NEQVRBWzBdXT48L2lzR2FtZT48bWVzc2FnZUV4dHJhRGF0YT48L21lc3NhZ2VFeHRyYURhdGE+PHN1YlR5cGU+PCFbQ0RBVEFbMF1dPjwvc3ViVHlwZT48cHJlbG9hZFJlc291cmNlcz48L3ByZWxvYWRSZXNvdXJjZXM+PC93ZWFwcEluZm8+PGNhbnZhc0luZm9YbWw+PC9jYW52YXNJbmZvWG1sPjxDb250ZW50T2JqZWN0Pjxjb250ZW50U3R5bGU+PCFbQ0RBVEFbMV1dPjwvY29udGVudFN0eWxlPjxjb250ZW50U3ViU3R5bGU+PCFbQ0RBVEFbMF1dPjwvY29udGVudFN1YlN0eWxlPjx0aXRsZT48L3RpdGxlPjxkZXNjcmlwdGlvbj48L2Rlc2NyaXB0aW9uPjxjb250ZW50VXJsPjwvY29udGVudFVybD48bWVkaWFMaXN0PjxtZWRpYT48aWQ+PCFbQ0RBVEFbMTM2Mzc4MTE0Mzk0MzkwNjU0MjhdXT48L2lkPjx0eXBlPjwhW0NEQVRBWzJdXT48L3R5cGU+PHRpdGxlPjwvdGl0bGU+PGRlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb24+PHByaXZhdGU+PCFbQ0RBVEFbMF1dPjwvcHJpdmF0ZT48dXJsIHR5cGU9IjEiIG1kNT0iMGFkNGZmNWNjZDBhOWU1ODYxMjE3ODk1N2MwMmIzZTQiPjwhW0NEQVRBW2h0dHA6Ly9zem1tc25zLnFwaWMuY24vbW1zbnMvVkVkb2ppYmV2alJQQ3Y5TTNBbkhTODhuQTRTVTB4VWROMkhSbllqdGlhOEFVUGROR0EyMEQxS0FDd0JNN0VZNjlrT2g2MUZZQ0l2bWcvMF1dPjwvdXJsPjx0aHVtYiB0eXBlPSIxIj48IVtDREFUQVtodHRwOi8vc3ptbXNucy5xcGljLmNuL21tc25zL1ZFZG9qaWJldmpSUEN2OU0zQW5IUzg4bkE0U1UweFVkTjJIUm5ZanRpYThBVVBkTkdBMjBEMUtBQ3dCTTdFWTY5a09oNjFGWUNJdm1nLzE1MF1dPjwvdGh1bWI+PHZpZGVvRHVyYXRpb24+PCFbQ0RBVEFbMC4wXV0+PC92aWRlb0R1cmF0aW9uPjxzaXplIHRvdGFsU2l6ZT0iNzUxODEuMCIgd2lkdGg9Ijk3OC4wIiBoZWlnaHQ9IjExNjQuMCI+PC9zaXplPjwvbWVkaWE+PC9tZWRpYUxpc3Q+PC9Db250ZW50T2JqZWN0PjxhY3Rpb25JbmZvPjxhcHBNc2c+PG1lZGlhVGFnTmFtZT48L21lZGlhVGFnTmFtZT48bWVzc2FnZUV4dD48L21lc3NhZ2VFeHQ+PG1lc3NhZ2VBY3Rpb24+PC9tZXNzYWdlQWN0aW9uPjwvYXBwTXNnPjwvYWN0aW9uSW5mbz48YXBwSW5mbz48aWQ+PC9pZD48L2FwcEluZm8+PGxvY2F0aW9uIHBvaUNsYXNzaWZ5SWQ9IiIgcG9pTmFtZT0iIiBwb2lBZGRyZXNzPSIiIHBvaUNsYXNzaWZ5VHlwZT0iMCIgY2l0eT0iIj48L2xvY2F0aW9uPjxwdWJsaWNVc2VyTmFtZT48L3B1YmxpY1VzZXJOYW1lPjxzdHJlYW12aWRlbz48c3RyZWFtdmlkZW91cmw+PC9zdHJlYW12aWRlb3VybD48c3RyZWFtdmlkZW90aHVtYnVybD48L3N0cmVhbXZpZGVvdGh1bWJ1cmw+PHN0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW93ZWJ1cmw+PC9zdHJlYW12aWRlbz48L1RpbWVsaW5lT2JqZWN0Pg==","iLen":2221},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_uwbxwbt4ihjd22","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0},{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1625569697,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13636266972566990992,"isNotRichText":1,"likeCount":0,"likeFlag":0,"likeUserListCount":0,"nickname":"#A02选购助手","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzYzNjI2Njk3MjU2Njk5MDk5Ml1dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d4aWRfMHV3YnpnaWxmbWg4MjJdXT48L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjwhW0NEQVRBWzE2MjU1Njk2OTddXT48L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4wPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjwhW0NEQVRBWzBdXT48L3ByaXZhdGU+PGNvbnRlbnREZXNjPjwhW0NEQVRBWzQ3LjXlhYU1MOivnei0uSAgOTXlhYUxMDDor53otLlb5pe65p+0XSAK4pSB4pSB5omr56CB5YWF5YC84pSB4pSBCiAgICDkuInnvZHpg73lj6/ku6XvvIzliLDotKblv6tdXT48L2NvbnRlbnREZXNjPjxjb250ZW50YXR0cj48IVtDREFUQVswXV0+PC9jb250ZW50YXR0cj48c291cmNlVXNlck5hbWU+PC9zb3VyY2VVc2VyTmFtZT48c291cmNlTmlja05hbWU+PC9zb3VyY2VOaWNrTmFtZT48c3RhdGlzdGljc0RhdGE+PC9zdGF0aXN0aWNzRGF0YT48d2VhcHBJbmZvPjxhcHBVc2VyTmFtZT48L2FwcFVzZXJOYW1lPjxwYWdlUGF0aD48L3BhZ2VQYXRoPjx2ZXJzaW9uPjwhW0NEQVRBWzBdXT48L3ZlcnNpb24+PGRlYnVnTW9kZT48IVtDREFUQVswXV0+PC9kZWJ1Z01vZGU+PHNoYXJlQWN0aW9uSWQ+PC9zaGFyZUFjdGlvbklkPjxpc0dhbWU+PCFbQ0RBVEFbMF1dPjwvaXNHYW1lPjxtZXNzYWdlRXh0cmFEYXRhPjwvbWVzc2FnZUV4dHJhRGF0YT48c3ViVHlwZT48IVtDREFUQVswXV0+PC9zdWJUeXBlPjxwcmVsb2FkUmVzb3VyY2VzPjwvcHJlbG9hZFJlc291cmNlcz48L3dlYXBwSW5mbz48Y2FudmFzSW5mb1htbD48L2NhbnZhc0luZm9YbWw+PENvbnRlbnRPYmplY3Q+PGNvbnRlbnRTdHlsZT48IVtDREFUQVsxXV0+PC9jb250ZW50U3R5bGU+PGNvbnRlbnRTdWJTdHlsZT48IVtDREFUQVswXV0+PC9jb250ZW50U3ViU3R5bGU+PHRpdGxlPjwvdGl0bGU+PGRlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb24+PGNvbnRlbnRVcmw+PC9jb250ZW50VXJsPjxtZWRpYUxpc3Q+PG1lZGlhPjxpZD48IVtDREFUQVsxMzYzNjI2Njk3MzA0NjEyNDY3OF1dPjwvaWQ+PHR5cGU+PCFbQ0RBVEFbMl1dPjwvdHlwZT48dGl0bGU+PC90aXRsZT48ZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbj48cHJpdmF0ZT48IVtDREFUQVswXV0+PC9wcml2YXRlPjx1cmwgbWQ1PSJiNzFjZjEyNDAzNzZlYjc4YzQwNjY0NmQ2NmZiYzY5MiIgdHlwZT0iMSI+PCFbQ0RBVEFbaHR0cDovL3NobW1zbnMucXBpYy5jbi9tbXNucy9qaExkS0Jvb1VIOVdNZW5RRGhXeDZlRmpNMHh4SlhVZW91a2VpY01QTWtrMzl2RjNYaE9SNDRZd1JGUWljTkE1NDZpYWdOU3BIaWM2YzNFLzBdXT48L3VybD48dGh1bWIgdHlwZT0iMSI+PCFbQ0RBVEFbaHR0cDovL3NobW1zbnMucXBpYy5jbi9tbXNucy9qaExkS0Jvb1VIOVdNZW5RRGhXeDZlRmpNMHh4SlhVZW91a2VpY01QTWtrMzl2RjNYaE9SNDRZd1JGUWljTkE1NDZpYWdOU3BIaWM2YzNFLzE1MF1dPjwvdGh1bWI+PHZpZGVvRHVyYXRpb24+PCFbQ0RBVEFbMC4wXV0+PC92aWRlb0R1cmF0aW9uPjxzaXplIGhlaWdodD0iMTkyMC4wIiB3aWR0aD0iMTA4MC4wIiB0b3RhbFNpemU9IjUxMzc0LjAiPjwvc2l6ZT48L21lZGlhPjxtZWRpYT48aWQ+PCFbQ0RBVEFbMTM2MzYyNjY5NzMwNDY2NDg5NjNdXT48L2lkPjx0eXBlPjwhW0NEQVRBWzJdXT48L3R5cGU+PHRpdGxlPjwvdGl0bGU+PGRlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb24+PHByaXZhdGU+PCFbQ0RBVEFbMF1dPjwvcHJpdmF0ZT48dXJsIG1kNT0iNzIxZTY5MzdiMzBiOGUxYmY2MjBmNzY0ZWI4ZDgyYWQiIHR5cGU9IjEiPjwhW0NEQVRBW2h0dHA6Ly9zaG1tc25zLnFwaWMuY24vbW1zbnMvamhMZEtCb29VSDlXTWVuUURoV3g2ZUZqTTB4eEpYVWVEUkRHU2R0TWRVVTRpYkZ3NUpVN3QzaE1EYTlDdEFXQ3lFZWljS1JtMlVrbXcvMF1dPjwvdXJsPjx0aHVtYiB0eXBlPSIxIj48IVtDREFUQVtodHRwOi8vc2htbXNucy5xcGljLmNuL21tc25zL2poTGRLQm9vVUg5V01lblFEaFd4NmVGak0weHhKWFVlRFJER1NkdE1kVVU0aWJGdzVKVTd0M2hNRGE5Q3RBV0N5RWVpY0tSbTJVa213LzE1MF1dPjwvdGh1bWI+PHZpZGVvRHVyYXRpb24+PCFbQ0RBVEFbMC4wXV0+PC92aWRlb0R1cmF0aW9uPjxzaXplIGhlaWdodD0iMjM0MC4wIiB3aWR0aD0iMTA4MC4wIiB0b3RhbFNpemU9Ijc2Mzc4LjAiPjwvc2l6ZT48L21lZGlhPjwvbWVkaWFMaXN0PjwvQ29udGVudE9iamVjdD48YWN0aW9uSW5mbz48YXBwTXNnPjxtZWRpYVRhZ05hbWU+PC9tZWRpYVRhZ05hbWU+PG1lc3NhZ2VFeHQ+PC9tZXNzYWdlRXh0PjxtZXNzYWdlQWN0aW9uPjwvbWVzc2FnZUFjdGlvbj48L2FwcE1zZz48L2FjdGlvbkluZm8+PGFwcEluZm8+PGlkPjwvaWQ+PC9hcHBJbmZvPjxsb2NhdGlvbiBwb2lDbGFzc2lmeUlkPSIiIHBvaU5hbWU9IiIgcG9pQWRkcmVzcz0iIiBwb2lDbGFzc2lmeVR5cGU9IjAiIGNpdHk9IiI+PC9sb2NhdGlvbj48cHVibGljVXNlck5hbWU+PC9wdWJsaWNVc2VyTmFtZT48c3RyZWFtdmlkZW8+PHN0cmVhbXZpZGVvdXJsPjwvc3RyZWFtdmlkZW91cmw+PHN0cmVhbXZpZGVvdGh1bWJ1cmw+PC9zdHJlYW12aWRlb3RodW1idXJsPjxzdHJlYW12aWRlb3dlYnVybD48L3N0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW8+PC9UaW1lbGluZU9iamVjdD4=","iLen":2717},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_0uwbzgilfmh822","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0}],"recCount":0,"serverConfig":{"copyAndPasteWordLimit":100,"postMentionLimit":10},"session":{"buffer":"CIS65YcGEAEY6uHUgq2lv7K9ASDq4dSCraW/sr0BMIS65YcGSk8I/rLN8KwvEAoYhLrlhwYiIgjjrpTrop7C27wBEAQYBCDq4dSCraW/sr0BKIS65YcGMAEqGgjq4dSCraW/sr0BEJDh/JGEkvCevQEYCiABUIS65YcGYIS65YcG","iLen":129}},"type":11145}
|
||
#endregion
|
||
|
||
if (data == null || user == null)
|
||
return;
|
||
|
||
var key = "0";
|
||
if (user.IsOperCirCleInfoDic.ContainsKey(key))
|
||
{
|
||
if (user.IsOperCirCleInfoDic[key])
|
||
return;
|
||
}
|
||
|
||
try
|
||
{
|
||
user.IsOperCirCleInfoDic[key] = true;
|
||
|
||
//var _data = json.ContainsKey("data") ? json["data"] as Dictionary<string, object> : null;
|
||
//if (_data == null) return;
|
||
|
||
//foreach (KeyValuePair<string, object> item in _data)
|
||
//{
|
||
// var wxid = item["wxid"]?.ToString();
|
||
|
||
//}
|
||
//for (int i = 0; i < _data.Count; i++)
|
||
//{
|
||
// var item = _data[i] as Dictionary<string, object>;
|
||
|
||
// var wxid = item["wxid"]?.ToString();
|
||
|
||
|
||
//}
|
||
|
||
user.CirCleInfoOriDic[key] = recvData;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.GetSingleObj().Error("获取朋友圈消息", ex.Message);
|
||
}
|
||
finally
|
||
{
|
||
Thread.Sleep(100);
|
||
user.IsOperCirCleInfoDic.Remove(key);
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_SNS_AUTO_AUTH_MINIAPP_LOGIN://小程序自动授权登录
|
||
{
|
||
//{"data":{"appid":"wxde8ac0a21135c07d","code":"051QFNkl2pCwt748wlol2XID1B4QFNk8"},"type":11136}
|
||
|
||
//{"data":{"appIconUrl":"","appName":"","baseResponse":{"errMsg":{"string":""},"ret":0},"code":"043ahM0w3h4kQY252N1w3zkH0z2ahM0C","jsApiBaseResponse":{"errcode":0,"errmsg":"ok"},"liftSpan":0,"openId":"","sessionKey":"","sessionTicket":"","signature":"","state":""},"type":11136}
|
||
|
||
//{"data":{"appIconUrl":"","appName":"","baseResponse":{"errMsg":{"string":""},"ret":0},"code":"033s8p0007xbLO1XLs3002qRRv0s8p05","jsApiBaseResponse":{"errcode":0,"errmsg":"ok"},"liftSpan":0,"openId":"","sessionKey":"","sessionTicket":"","signature":"","state":""},"type":11136}
|
||
|
||
var appid = data["appid"]?.ToString() ?? string.Empty;
|
||
var code = data["code"].ToString();
|
||
|
||
if (user.AutoAuthLoginMiNiApps.ContainsKey(appid))
|
||
user.AutoAuthLoginMiNiApps.Remove(appid);
|
||
user.AutoAuthLoginMiNiApps.Add(appid, code);
|
||
}
|
||
break;
|
||
case MsgType.MT_SNS_POST_MSG://发送朋友圈
|
||
{
|
||
#region 数据结构
|
||
/*
|
||
{"data":{"baseResponse":{"ret":0},"snsObject":{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1627522835,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13652651078544265545,"isNotRichText":0,"likeCount":0,"likeFlag":0,"likeUserListCount":0,"nickname":"、","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD4xMzY1MjY1MTA3ODU0NDI2NTU0NTwvaWQ+PHVzZXJuYW1lPnd4aWRfdnY3cmV2N2E0eHBqMjI8L3VzZXJuYW1lPjxjcmVhdGVUaW1lPjE2Mjc1MjI4MzU8L2NyZWF0ZVRpbWU+PGNvbnRlbnREZXNjU2hvd1R5cGU+MDwvY29udGVudERlc2NTaG93VHlwZT48Y29udGVudERlc2NTY2VuZT4zPC9jb250ZW50RGVzY1NjZW5lPjxwcml2YXRlPjA8L3ByaXZhdGU+PGNvbnRlbnREZXNjPui/meS4quS9oOiCr+WumuS4jeefpemBk+aIkeeOsOWcqOaDs+eahEE8L2NvbnRlbnREZXNjPjxzaWdodEZvbGRlZD4wPC9zaWdodEZvbGRlZD48c2hvd0ZsYWc+MDwvc2hvd0ZsYWc+PGFwcEluZm8+PGlkPjwvaWQ+PHZlcnNpb24+PC92ZXJzaW9uPjxhcHBOYW1lPjwvYXBwTmFtZT48aW5zdGFsbFVybD48L2luc3RhbGxVcmw+PGZyb21Vcmw+PC9mcm9tVXJsPjxpc0ZvcmNlVXBkYXRlPjA8L2lzRm9yY2VVcGRhdGU+PC9hcHBJbmZvPjxzb3VyY2VVc2VyTmFtZT48L3NvdXJjZVVzZXJOYW1lPjxzb3VyY2VOaWNrTmFtZT48L3NvdXJjZU5pY2tOYW1lPjxzdGF0aXN0aWNzRGF0YT48L3N0YXRpc3RpY3NEYXRhPjxzdGF0RXh0U3RyPjwvc3RhdEV4dFN0cj48Q29udGVudE9iamVjdD48Y29udGVudFN0eWxlPjI8L2NvbnRlbnRTdHlsZT48dGl0bGU+PC90aXRsZT48ZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbj48bWVkaWFMaXN0PjwvbWVkaWFMaXN0Pjxjb250ZW50VXJsPjwvY29udGVudFVybD48L0NvbnRlbnRPYmplY3Q+PGFjdGlvbkluZm8+PGFwcE1zZz48bWVzc2FnZUFjdGlvbj48L21lc3NhZ2VBY3Rpb24+PC9hcHBNc2c+PC9hY3Rpb25JbmZvPjxsb2NhdGlvbiBwb2lDbGFzc2lmeUlkPSIiIHBvaU5hbWU9IiIgcG9pQWRkcmVzcz0iIiBwb2lDbGFzc2lmeVR5cGU9IjAiIGNpdHk9IiI+PC9sb2NhdGlvbj48cHVibGljVXNlck5hbWU+PC9wdWJsaWNVc2VyTmFtZT48c3RyZWFtdmlkZW8+PHN0cmVhbXZpZGVvdXJsPjwvc3RyZWFtdmlkZW91cmw+PHN0cmVhbXZpZGVvdGh1bWJ1cmw+PC9zdHJlYW12aWRlb3RodW1idXJsPjxzdHJlYW12aWRlb3dlYnVybD48L3N0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW8+PC9UaW1lbGluZU9iamVjdD4=","iLen":1112},"objectOperations":{"buffer":"","iLen":0},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wxid_vv7rev7a4xpj22","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0},"spamTips":""},"type":11148}
|
||
*/
|
||
#endregion
|
||
|
||
if (data["snsObject"] != null)
|
||
{
|
||
var snsObject = data["snsObject"];
|
||
if (snsObject["id"] != null)
|
||
{
|
||
user.SendCircleId = snsObject["id"].ToString();
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_SNS_COMMENT_MSG://朋友圈评论
|
||
{
|
||
|
||
}
|
||
break;
|
||
case MsgType.MT_SNS_LIKE_MSG://朋友圈点赞
|
||
{
|
||
|
||
}
|
||
break;
|
||
case MsgType.MT_SNS_UPLOAD_IMAGE_MSG://朋友圈上传图片
|
||
{
|
||
//{"data":{"baseResponse":{"ret":0},"bufferUrl":{"type":1,"url":"http://mmsns.qpic.cn/mmsns/PiajxSqBRaELvAyQVFmJhGxEyianCKF1vsqwWh9GicmTGYkibHF8s3Pu0RAQNicdgRVsn/0"},"clientId":"wxid_vv7rev7a4xpj22_1627486860","id":0,"path":"D:\\PCRobot\\bin\\Debug\\Cache\\0728114016639.png","startPos":16627,"thumbUrlCount":1,"thumbUrls":[{"type":1,"url":"http://mmsns.qpic.cn/mmsns/PiajxSqBRaELvAyQVFmJhGxEyianCKF1vsqwWh9GicmTGYkibHF8s3Pu0RAQNicdgRVsn/150"}],"totalLen":16627,"type":2},"type":11149}
|
||
|
||
//{"data":{"baseResponse":{"ret":0},"bufferUrl":{"type":1,"url":"http://mmsns.qpic.cn/mmsns/PiajxSqBRaELvAyQVFmJhGxEyianCKF1vsqwWh9GicmTGa9quIRWhDvpnuvgkSLwxaz/0"},"clientId":"wxid_vv7rev7a4xpj22_1627491212","id":0,"path":"","startPos":59023,"thumbUrlCount":1,"thumbUrls":[{"type":1,"url":"http://mmsns.qpic.cn/mmsns/PiajxSqBRaELvAyQVFmJhGxEyianCKF1vsqwWh9GicmTGa9quIRWhDvpnuvgkSLwxaz/150"}],"totalLen":59023,"type":2},"type":11149}
|
||
|
||
//{"data":{"baseResponse":{"ret":0},"bufferUrl":{"type":1,"url":"http://mmsns.qpic.cn/mmsns/PiajxSqBRaELvAyQVFmJhGytHnYnRDfnZ3JnOPBfd4kopkfT9Kic2vlQibkXia04Zweib/0"},"clientId":"wxid_vv7rev7a4xpj22_1627523859","id":0,"path":"D:\\公司项目\\fl_system\\PCRobot\\bin\\Debug\\Cache\\0729095735481.jpg","startPos":47326,"thumbUrlCount":1,"thumbUrls":[{"type":1,"url":"http://mmsns.qpic.cn/mmsns/PiajxSqBRaELvAyQVFmJhGytHnYnRDfnZ3JnOPBfd4kopkfT9Kic2vlQibkXia04Zweib/150"}],"totalLen":47326,"type":2},"type":11149}
|
||
|
||
LogHelper.GetSingleObj().Info(new StackTrace().GetFrame(0).GetMethod().Name, $"正在上传朋友圈图片:" + recvData);
|
||
|
||
var upLoadImage = JsonConvert.DeserializeObject<UpLoadImage>(recvData);
|
||
if (upLoadImage != null)
|
||
{
|
||
if (upLoadImage.data.startPos == upLoadImage.data.totalLen)
|
||
{
|
||
var path = upLoadImage.data.path;
|
||
var url = upLoadImage.data.bufferUrl.url;
|
||
if (!string.IsNullOrWhiteSpace(path) && !string.IsNullOrWhiteSpace(url))
|
||
{
|
||
if (user.UpLoadImages.ContainsKey(path))
|
||
user.UpLoadImages.Remove(path);
|
||
user.UpLoadImages.Add(path, url);
|
||
}
|
||
else
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case MsgType.MT_SNS_TIMELINE_USER_MSG://获取指定用户的朋友圈
|
||
{
|
||
#region 数据样式
|
||
/*
|
||
{"data":{"baseResponse":{"ret":207},"continueId":0,"firstPageMd5":"b7e1f61580104448","limitedId":0,"newRequestTime":1627613128,"objectCount":1,"objectCountForSameMd5":1,"objectList":[{"blackListCount":0,"commentCount":0,"commentUserListCount":0,"createTime":1627612789,"deleteFlag":0,"extFlag":1,"groupCount":0,"groupUserCount":0,"id":13653405663930290388,"isNotRichText":1,"likeCount":0,"likeFlag":0,"likeUserListCount":0,"nickname":"先森吳","noChange":0,"objectDesc":{"buffer":"PFRpbWVsaW5lT2JqZWN0PjxpZD48IVtDREFUQVsxMzY1MzQwNTY2MzkzMDI5MDM4OF1dPjwvaWQ+PHVzZXJuYW1lPjwhW0NEQVRBW3d1amlhaHVhMDg3Nl1dPjwvdXNlcm5hbWU+PGNyZWF0ZVRpbWU+PCFbQ0RBVEFbMTYyNzYxMjc4OV1dPjwvY3JlYXRlVGltZT48Y29udGVudERlc2NTaG93VHlwZT4wPC9jb250ZW50RGVzY1Nob3dUeXBlPjxjb250ZW50RGVzY1NjZW5lPjA8L2NvbnRlbnREZXNjU2NlbmU+PHByaXZhdGU+PCFbQ0RBVEFbMF1dPjwvcHJpdmF0ZT48Y29udGVudERlc2M+PCFbQ0RBVEFb5L2g6IKv5a6a5LiN55+l6YGT5oiR546w5Zyo5oOz6KGo6L6+5LuA5LmIXV0+PC9jb250ZW50RGVzYz48Y29udGVudGF0dHI+PCFbQ0RBVEFbMF1dPjwvY29udGVudGF0dHI+PHNvdXJjZVVzZXJOYW1lPjwvc291cmNlVXNlck5hbWU+PHNvdXJjZU5pY2tOYW1lPjwvc291cmNlTmlja05hbWU+PHN0YXRpc3RpY3NEYXRhPjwvc3RhdGlzdGljc0RhdGE+PHdlYXBwSW5mbz48YXBwVXNlck5hbWU+PC9hcHBVc2VyTmFtZT48cGFnZVBhdGg+PC9wYWdlUGF0aD48dmVyc2lvbj48IVtDREFUQVswXV0+PC92ZXJzaW9uPjxkZWJ1Z01vZGU+PCFbQ0RBVEFbMF1dPjwvZGVidWdNb2RlPjxzaGFyZUFjdGlvbklkPjwvc2hhcmVBY3Rpb25JZD48aXNHYW1lPjwhW0NEQVRBWzBdXT48L2lzR2FtZT48bWVzc2FnZUV4dHJhRGF0YT48L21lc3NhZ2VFeHRyYURhdGE+PHN1YlR5cGU+PCFbQ0RBVEFbMF1dPjwvc3ViVHlwZT48cHJlbG9hZFJlc291cmNlcz48L3ByZWxvYWRSZXNvdXJjZXM+PC93ZWFwcEluZm8+PGNhbnZhc0luZm9YbWw+PC9jYW52YXNJbmZvWG1sPjxDb250ZW50T2JqZWN0Pjxjb250ZW50U3R5bGU+PCFbQ0RBVEFbMV1dPjwvY29udGVudFN0eWxlPjxjb250ZW50U3ViU3R5bGU+PCFbQ0RBVEFbMF1dPjwvY29udGVudFN1YlN0eWxlPjx0aXRsZT48L3RpdGxlPjxkZXNjcmlwdGlvbj48L2Rlc2NyaXB0aW9uPjxjb250ZW50VXJsPjwvY29udGVudFVybD48bWVkaWFMaXN0PjxtZWRpYT48aWQ+PCFbQ0RBVEFbMTM2NTM0MDU2NjQ1NTkyMzkzODZdXT48L2lkPjx0eXBlPjwhW0NEQVRBWzJdXT48L3R5cGU+PHRpdGxlPjwvdGl0bGU+PGRlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb24+PHByaXZhdGU+PCFbQ0RBVEFbMF1dPjwvcHJpdmF0ZT48dXJsIHR5cGU9IjEiIG1kNT0iNDI1YTRiODEyNjQ2NzQwY2Y3MzlmYWI4Y2E2ZGIyNWUiPjwhW0NEQVRBW2h0dHA6Ly9zaG1tc25zLnFwaWMuY24vbW1zbnMvaWNySERtdkRpYjB4bUhUbkFPODJKSVVjaDFUVmUySWFtbDdYWHdaSlVuUWpZU3dsSjVNa09iQXlYRkpUbVNTbk5DZmNITFgyNE9RUncvMF1dPjwvdXJsPjx0aHVtYiB0eXBlPSIxIj48IVtDREFUQVtodHRwOi8vc2htbXNucy5xcGljLmNuL21tc25zL2ljckhEbXZEaWIweG1IVG5BTzgySklVY2gxVFZlMklhbWw3WFh3WkpVblFqWVN3bEo1TWtPYkF5WEZKVG1TU25OQ2ZjSExYMjRPUVJ3LzE1MF1dPjwvdGh1bWI+PHZpZGVvRHVyYXRpb24+PCFbQ0RBVEFbMC4wXV0+PC92aWRlb0R1cmF0aW9uPjxzaXplIHRvdGFsU2l6ZT0iMTAxOTIuMCIgd2lkdGg9IjEwODAuMCIgaGVpZ2h0PSIyMzQwLjAiPjwvc2l6ZT48L21lZGlhPjwvbWVkaWFMaXN0PjwvQ29udGVudE9iamVjdD48YWN0aW9uSW5mbz48YXBwTXNnPjxtZWRpYVRhZ05hbWU+PC9tZWRpYVRhZ05hbWU+PG1lc3NhZ2VFeHQ+PC9tZXNzYWdlRXh0PjxtZXNzYWdlQWN0aW9uPjwvbWVzc2FnZUFjdGlvbj48L2FwcE1zZz48L2FjdGlvbkluZm8+PGFwcEluZm8+PGlkPjwvaWQ+PC9hcHBJbmZvPjxsb2NhdGlvbiBwb2lDbGFzc2lmeUlkPSIiIHBvaU5hbWU9IiIgcG9pQWRkcmVzcz0iIiBwb2lDbGFzc2lmeVR5cGU9IjAiIGNpdHk9IiI+PC9sb2NhdGlvbj48cHVibGljVXNlck5hbWU+PC9wdWJsaWNVc2VyTmFtZT48c3RyZWFtdmlkZW8+PHN0cmVhbXZpZGVvdXJsPjwvc3RyZWFtdmlkZW91cmw+PHN0cmVhbXZpZGVvdGh1bWJ1cmw+PC9zdHJlYW12aWRlb3RodW1idXJsPjxzdHJlYW12aWRlb3dlYnVybD48L3N0cmVhbXZpZGVvd2VidXJsPjwvc3RyZWFtdmlkZW8+PC9UaW1lbGluZU9iamVjdD4=","iLen":2060},"objectOperations":{"buffer":"CAA=","iLen":2},"preDownloadInfo":{"noPreDownloadRange":"","preDownloadNetType":0,"preDownloadPercent":0},"referId":0,"referUsername":"","snsRedEnvelops":{"reportId":0,"reportKey":0,"resourceId":0,"rewardCount":0},"username":"wujiahua0876","weAppInfo":{"appId":0,"mapPoiId":"","redirectUrl":"","score":0,"showType":0,"userName":""},"withUserCount":0,"withUserListCount":0}],"objectTotalCount":5,"retTips":"朋友仅展示最近一个月的朋友圈","serverConfig":{"copyAndPasteWordLimit":100,"postMentionLimit":10},"snsUserInfo":{"snsBgImgId":"http://szmmsns.qpic.cn/mmsns/icrHDmvDib0xnEAtnSHHGziac6GNMlhWZK61YORztv9pl7x3AeNWibkAcdJstckibqwBFVFcFO9ovscc/0","snsBgObjectId":13404086805597261983,"snsFlag":1,"snsFlagEx":6273}},"type":11150}
|
||
*/
|
||
#endregion
|
||
|
||
if (data == null || user == null)
|
||
return;
|
||
|
||
if (data["objectList"] != null)
|
||
{
|
||
var objectList = (JArray)data["objectList"];
|
||
if (objectList == null || objectList.Count == 0)
|
||
{
|
||
var tmp = user.IsOperCirCleInfoDic.Where(f => f.Key != "0" && !f.Value).ToDictionary(f => f.Key, f => f.Value);
|
||
if (tmp.Count == 1)
|
||
{
|
||
var keyTmp = string.Empty;
|
||
try
|
||
{
|
||
keyTmp = tmp.Keys.ToList()[0];
|
||
user.IsOperCirCleInfoDic[keyTmp] = true;
|
||
|
||
if (!string.IsNullOrWhiteSpace(keyTmp))
|
||
user.CirCleInfoOriDic.Remove(keyTmp);
|
||
}
|
||
catch (Exception)
|
||
{ }
|
||
finally
|
||
{
|
||
Thread.Sleep(100);
|
||
user.IsOperCirCleInfoDic.Remove(keyTmp);
|
||
}
|
||
}
|
||
return;
|
||
}
|
||
|
||
var key = objectList[0]["username"]?.ToString();//获取用户账号
|
||
if (string.IsNullOrWhiteSpace(key))
|
||
return;
|
||
|
||
if (user.IsOperCirCleInfoDic.ContainsKey(key))
|
||
{
|
||
if (user.IsOperCirCleInfoDic[key])
|
||
return;
|
||
}
|
||
|
||
try
|
||
{
|
||
user.IsOperCirCleInfoDic[key] = true;
|
||
|
||
user.CirCleInfoOriDic[key] = recvData;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.GetSingleObj().Error("获取朋友圈消息", ex.Message);
|
||
}
|
||
finally
|
||
{
|
||
Thread.Sleep(100);
|
||
user.IsOperCirCleInfoDic.Remove(key);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
default:
|
||
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.GetSingleObj().Error(new StackTrace().GetFrame(0).GetMethod().Name, ex.Message);
|
||
}
|
||
});
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.GetSingleObj().Error(new StackTrace().GetFrame(0).GetMethod().Name, ex.Message);
|
||
}
|
||
}
|
||
|
||
// 注入成功回调
|
||
static void WxAcceptCallback(uint dwClientId)
|
||
{
|
||
LogHelper.GetSingleObj().Info(new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name, "注入成功:" + dwClientId);
|
||
Console.WriteLine("注入成功:" + dwClientId);
|
||
}
|
||
|
||
// 关闭回调
|
||
static void WxCloseCallback(uint dwClientId)
|
||
{
|
||
try
|
||
{
|
||
var v = WechatClient.Users.FirstOrDefault(f => f.Value.DwClientId == dwClientId && f.Value.Type == WechatType.Xiaoxie).Value;
|
||
if (v != null)
|
||
{
|
||
LogHelper.GetSingleObj().Info("系统", $"WxCloseCallback关闭回调,Uin:{v.Uin},微信:{v.Nickname}({v.Wxid})");
|
||
WechatClient.RemoveUser(v);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.GetSingleObj().Error(new StackTrace().GetFrame(0).GetMethod().Name, ex.Message);
|
||
}
|
||
}
|
||
}
|
||
}
|