old_flsystem/类库/Chat.Framework/QQSdk/QQBase.cs

161 lines
5.7 KiB
C#
Raw Normal View History

2022-09-20 03:10:29 +00:00
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}" });
}
}
}