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

161 lines
5.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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}" });
}
}
}