380 lines
9.8 KiB
C#
380 lines
9.8 KiB
C#
|
using System;
|
|||
|
using System.Collections.Concurrent;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using PCRobot.Entitys.Enterprise;
|
|||
|
using PCRobot.Utils;
|
|||
|
|
|||
|
namespace PCRobot.PCWechat
|
|||
|
{
|
|||
|
public enum WechatType
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 普通微信
|
|||
|
/// </summary>
|
|||
|
Xiaoxie = 1,
|
|||
|
/// <summary>
|
|||
|
/// 企业微信
|
|||
|
/// </summary>
|
|||
|
Xiaoxie_QY = 2,
|
|||
|
}
|
|||
|
public class WechatUser
|
|||
|
{
|
|||
|
public WechatUser() { }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 是否在检测僵尸粉
|
|||
|
/// </summary>
|
|||
|
internal bool IsZombizRun = false;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 是否在获取信息操作中集合
|
|||
|
/// </summary>
|
|||
|
public Dictionary<RobotIsRunType, bool> IsGetDic { get; set; } = new Dictionary<RobotIsRunType, bool>();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 是否在获取群成员信息/好友信息/搜索信息/企业Cdn下载/通过好友
|
|||
|
/// </summary>
|
|||
|
public Dictionary<string, bool> IsGetContactDic { get; internal set; } = new Dictionary<string, bool>();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 是否在获取朋友圈数据/上传朋友圈图片
|
|||
|
/// </summary>
|
|||
|
internal Dictionary<string, bool> IsOperCirCleInfoDic { get; set; } = new Dictionary<string, bool>();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 类型
|
|||
|
/// </summary>
|
|||
|
public WechatType Type { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 句柄ID
|
|||
|
/// </summary>
|
|||
|
public int Pid { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 客户端ID
|
|||
|
/// </summary>
|
|||
|
public uint DwClientId { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 微信ID
|
|||
|
/// </summary>
|
|||
|
public string Wxid { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 昵称
|
|||
|
/// </summary>
|
|||
|
public string Nickname { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 头像地址
|
|||
|
/// </summary>
|
|||
|
public string HeaderUrl { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 用户数据库地址
|
|||
|
/// </summary>
|
|||
|
public string DBFile { get; set; }
|
|||
|
public string Phone { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 生命周期
|
|||
|
/// </summary>
|
|||
|
public DateTime HeartBreakTime { get; set; } = DateTime.Now;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 微信Uin
|
|||
|
/// </summary>
|
|||
|
public string Uin { get; internal set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 个人微信用户数据
|
|||
|
/// </summary>
|
|||
|
public Dictionary<string, FriendInfo> Friends = new Dictionary<string, FriendInfo>();
|
|||
|
/// <summary>
|
|||
|
/// 个人群组数据
|
|||
|
/// </summary>
|
|||
|
public Dictionary<string, GroupInfo> Groups = new Dictionary<string, GroupInfo>();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 企业微信用户数据
|
|||
|
/// </summary>
|
|||
|
public Dictionary<string, WorkFriendInfo> WorkFriends { get; internal set; } = new Dictionary<string, WorkFriendInfo>();
|
|||
|
/// <summary>
|
|||
|
/// 企业微信群组数据
|
|||
|
/// </summary>
|
|||
|
public Dictionary<string, WorkGroupInfo> WorkGroups { get; internal set; } = new Dictionary<string, WorkGroupInfo>();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 企业搜索用户数据
|
|||
|
/// </summary>
|
|||
|
public Dictionary<string, FriendInfoHandlerEnterprise> FriendHandlerDic { get; internal set; } = new Dictionary<string, FriendInfoHandlerEnterprise>();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 企业Cdn文件数据
|
|||
|
/// </summary>
|
|||
|
public Dictionary<string, FileC2cCdnInfo> FileC2cCdnInfoDic { get; internal set; } = new Dictionary<string, FileC2cCdnInfo>();
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 自动登录授权小程序
|
|||
|
/// </summary>
|
|||
|
public Dictionary<string, string> AutoAuthLoginMiNiApps = new Dictionary<string, string>();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 朋友圈上传图片,返回网络地址
|
|||
|
/// </summary>
|
|||
|
public Dictionary<string, string> UpLoadImages = new Dictionary<string, string>();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送朋友圈后返回的id
|
|||
|
/// </summary>
|
|||
|
public string SendCircleId;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 朋友圈数据保存,key为用户账号(0为非指定用户数据)
|
|||
|
/// </summary>
|
|||
|
internal Dictionary<string, string> CirCleInfoOriDic { get; set; } = new Dictionary<string, string>();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 获取普通微信运行类型
|
|||
|
/// </summary>
|
|||
|
public enum RobotIsRunType
|
|||
|
{
|
|||
|
获取收藏 = 0,
|
|||
|
获取群列表 = 1,
|
|||
|
获取好友列表 = 2,//如果是企业获取的是外部好友列表
|
|||
|
获取公众号列表 = 3,
|
|||
|
上传朋友圈图片 = 4,
|
|||
|
获取未读消息数量 = 5,
|
|||
|
发送朋友圈 = 6,
|
|||
|
创建群 = 7,
|
|||
|
|
|||
|
//企业特有
|
|||
|
获取内部好友列表 = 50,
|
|||
|
获取自己的二维码 = 51,
|
|||
|
创建空外部群 = 52,
|
|||
|
}
|
|||
|
|
|||
|
public class FriendBase
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 昵称
|
|||
|
/// </summary>
|
|||
|
public string nickname { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 备注
|
|||
|
/// </summary>
|
|||
|
public string remark { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 群主ID
|
|||
|
/// </summary>
|
|||
|
public string manager_wxid { get; set; } = string.Empty;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 是否为管理员
|
|||
|
/// </summary>
|
|||
|
public int is_manager { get; set; } = 0;
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 群成员
|
|||
|
/// </summary>
|
|||
|
public string member_list { get; set; } = string.Empty;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 个人微信信息
|
|||
|
/// </summary>
|
|||
|
public class FriendInfo : FriendBase
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// wxid
|
|||
|
/// </summary>
|
|||
|
public string wxid { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 微信号
|
|||
|
/// </summary>
|
|||
|
public string account { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 头像地址
|
|||
|
/// </summary>
|
|||
|
public string avatar { get; set; }
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 性别 0未知,1男,2女
|
|||
|
/// </summary>
|
|||
|
public int sex { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 祖国
|
|||
|
/// </summary>
|
|||
|
public string country { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 省份
|
|||
|
/// </summary>
|
|||
|
public string province { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 城市
|
|||
|
/// </summary>
|
|||
|
public string city { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 是否是僵尸粉
|
|||
|
/// </summary>
|
|||
|
public int is_zombie { get; set; } = -1;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 个人微信群信息
|
|||
|
/// </summary>
|
|||
|
public class GroupInfo : GroupBase
|
|||
|
{
|
|||
|
public string wxid { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 昵称
|
|||
|
/// </summary>
|
|||
|
public string nickname { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 群头像
|
|||
|
/// </summary>
|
|||
|
public string avatar { get; set; }
|
|||
|
|
|||
|
///// <summary>
|
|||
|
///// 群主ID
|
|||
|
///// </summary>
|
|||
|
//public string manager_wxid { get; set; }
|
|||
|
|
|||
|
///// <summary>
|
|||
|
///// 是否为管理员
|
|||
|
///// </summary>
|
|||
|
//public int is_manager { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 群人数
|
|||
|
/// </summary>
|
|||
|
public int total_member { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 群成员
|
|||
|
/// </summary>
|
|||
|
public List<FriendInfo> friends { get; set; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 群基类
|
|||
|
/// </summary>
|
|||
|
public class GroupBase
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 企业用户信息
|
|||
|
/// </summary>
|
|||
|
public class WorkFriendInfo : FriendBase
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 账号
|
|||
|
/// </summary>
|
|||
|
public string acctid { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 手机号
|
|||
|
/// </summary>
|
|||
|
public string mobile { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 头像
|
|||
|
/// </summary>
|
|||
|
public string avatar { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 会话id
|
|||
|
/// </summary>
|
|||
|
public string conversation_id { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 公司ID
|
|||
|
/// </summary>
|
|||
|
public string corp_id { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 用户描述
|
|||
|
/// </summary>
|
|||
|
public string desc { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 对外职位名称
|
|||
|
/// </summary>
|
|||
|
public string external_job { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 公司内部职位
|
|||
|
/// </summary>
|
|||
|
public string position { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 真实姓名
|
|||
|
/// </summary>
|
|||
|
public string realname { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 性别
|
|||
|
/// </summary>
|
|||
|
public int sex { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 用户ID
|
|||
|
/// </summary>
|
|||
|
public string user_id { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 用户名称
|
|||
|
/// </summary>
|
|||
|
public string username { get; set; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 企业群数据
|
|||
|
/// </summary>
|
|||
|
public class WorkGroupInfo : GroupBase
|
|||
|
{
|
|||
|
//{"conversation_id":"R:1970325073072411","create_user_id":"1688853956450720","is_manager":0,"nickname":"网络科技有限公司","total":5}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 会话ID
|
|||
|
/// </summary>
|
|||
|
public string conversation_id { get; set; }
|
|||
|
///// <summary>
|
|||
|
///// 群主
|
|||
|
///// </summary>
|
|||
|
//public string create_user_id { get; set; }
|
|||
|
///// <summary>
|
|||
|
///// 是否是管理员
|
|||
|
///// </summary>
|
|||
|
//public int is_manager { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 群昵称
|
|||
|
/// </summary>
|
|||
|
public string GroupNick { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 群人数
|
|||
|
/// </summary>
|
|||
|
public int total { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 群成员
|
|||
|
/// </summary>
|
|||
|
public List<WorkFriendInfo> friends { get; set; }
|
|||
|
|
|||
|
}
|
|||
|
}
|