161 lines
5.7 KiB
C#
161 lines
5.7 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace Chat.Framework.QQSdk
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// QQ基类
|
|||
|
/// </summary>
|
|||
|
public abstract class QQBase
|
|||
|
{
|
|||
|
public override string ToString()
|
|||
|
{
|
|||
|
if (!string.IsNullOrWhiteSpace(Password))
|
|||
|
{
|
|||
|
var data = new { QQ = QQ, Password = Password, IsEQQ = IsEQQ };
|
|||
|
return CsharpHttpHelper.HttpExtend.ByteToHex(Encoding.UTF8.GetBytes(CsharpHttpHelper.HttpHelper.ObjectToJson(data)));
|
|||
|
}
|
|||
|
return string.Empty;
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// QQ
|
|||
|
/// </summary>
|
|||
|
public uint QQ { get; protected set; }
|
|||
|
/// <summary>
|
|||
|
/// 昵称
|
|||
|
/// </summary>
|
|||
|
public string Nickname { get; protected set; }
|
|||
|
/// <summary>
|
|||
|
/// 密码
|
|||
|
/// </summary>
|
|||
|
public string Password { get; internal set; }
|
|||
|
/// <summary>
|
|||
|
///
|
|||
|
/// </summary>
|
|||
|
protected bool IsRegisterEvent { get; set; }
|
|||
|
|
|||
|
public DateTime EndTime { get; internal set; }
|
|||
|
/// <summary>
|
|||
|
/// 是否已经登录
|
|||
|
/// </summary>
|
|||
|
public bool IsLogin { get; internal set; }
|
|||
|
/// <summary>
|
|||
|
/// 是否企业QQ
|
|||
|
/// </summary>
|
|||
|
public bool IsEQQ { get; set; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 不支持提示语
|
|||
|
/// </summary>
|
|||
|
const string NoAccess = "对不起,该协议暂时不支持此函数!";
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 退出登录
|
|||
|
/// </summary>
|
|||
|
public virtual void Logout() { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 登录
|
|||
|
/// </summary>
|
|||
|
public virtual void Login() { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
//public virtual void ShowLogin(string Username = null) { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送好友消息
|
|||
|
/// </summary>
|
|||
|
/// <param name="QQ">QQ</param>
|
|||
|
/// <param name="Message">消息的内容</param>
|
|||
|
public virtual void SendFriendMessage(uint QQ, string Message) { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送临时消息
|
|||
|
/// </summary>
|
|||
|
/// <param name="QQ">QQ</param>
|
|||
|
/// <param name="Message">发送的消息</param>
|
|||
|
/// <param name="Token">Token</param>
|
|||
|
public virtual void SendTempMessage(uint QQ, string Message, byte[] Token) { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送临时消息
|
|||
|
/// </summary>
|
|||
|
/// <param name="QQ">QQ</param>
|
|||
|
/// <param name="Message">发送的消息</param>
|
|||
|
public virtual void SendTempMessage(uint QQ, string Message) { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 同意好友添加
|
|||
|
/// </summary>
|
|||
|
/// <param name="QQ"></param>
|
|||
|
/// <param name="Agree">3:同意并添加对方为好友;4:同意;5:拒绝</param>
|
|||
|
/// <param name="Message">理由</param>
|
|||
|
public virtual void AerifyAddMe(uint QQ, byte Agree = 4, string Message = "") { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 同意用户入群
|
|||
|
/// </summary>
|
|||
|
/// <param name="groupId"></param>
|
|||
|
/// <param name="QQ"></param>
|
|||
|
/// <param name="Agree"></param>
|
|||
|
/// <param name="Message"></param>
|
|||
|
public virtual void AerifyAddGroup(uint groupId, uint QQ, bool Agree = true, string Message = "") { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送好友图片消息
|
|||
|
/// </summary>
|
|||
|
/// <param name="QQ">QQ号</param>
|
|||
|
/// <param name="ImageSrc">消息内容</param>
|
|||
|
public virtual void SendFriendImage(uint QQ, string ImageSrc) { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送群消息
|
|||
|
/// </summary>
|
|||
|
/// <param name="GroupId">群号</param>
|
|||
|
/// <param name="Message">图片地址,支持本机或网络图片</param>
|
|||
|
public virtual void SendGroupMessage(uint GroupId, string Message) { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送消息
|
|||
|
/// </summary>
|
|||
|
/// <param name="username">发送至</param>
|
|||
|
/// <param name="message">发送的内容</param>
|
|||
|
/// <param name="isGroup">是否群消息</param>
|
|||
|
/// <param name="isTemp">临时会话?</param>
|
|||
|
public virtual Task<bool> SendMessage(uint username, string message, bool isGroup = false, bool isTemp = false) { return null; }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送群图片消息
|
|||
|
/// </summary>
|
|||
|
/// <param name="GroupId">群号</param>
|
|||
|
/// <param name="ImageSrc">图片地址,支持本机或网络图片</param>
|
|||
|
public virtual void SendGroupImage(uint GroupId, string ImageSrc) { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送视频消息
|
|||
|
/// </summary>
|
|||
|
/// <param name="toUsername">发送给谁</param>
|
|||
|
/// <param name="videoSrc">图片地址,支持本机本地</param>
|
|||
|
//public virtual void SendFriendVideo(uint toUsername, string videoSrc) { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送视频消息
|
|||
|
/// </summary>
|
|||
|
/// <param name="GroupId">群号</param>
|
|||
|
/// <param name="videoSrc">图片地址,支持本机本地</param>
|
|||
|
//public virtual void SendGroupVideo(uint GroupId, string ImageSrc) { throw new Exception(NoAccess); }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 发送日志
|
|||
|
/// </summary>
|
|||
|
/// <param name="Message">日志内容</param>
|
|||
|
protected void OnLog(string Message)
|
|||
|
{
|
|||
|
ChatClient.QQEvents.OnEvent(new Events.QQLogEvents(this) { Message = $"QQ:{QQ}->{Message}" });
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|