oicq
Version:
QQ protocol!
98 lines (97 loc) • 3.97 kB
TypeScript
import { Contactable } from "./internal";
import { Sendable, GroupMessage, ImageElem, MusicPlatform, Anonymous, Quotable } from "./message";
import { Gfs } from "./gfs";
import { MessageRet } from "./events";
import { GroupInfo, MemberInfo } from "./entities";
declare type Client = import("./client").Client;
/** 讨论组 */
export declare class Discuss extends Contactable {
readonly gid: number;
static as(this: Client, gid: number): Discuss;
/** `this.gid`的别名 */
get group_id(): number;
protected constructor(c: Client, gid: number);
/** 发送一条消息 */
sendMsg(content: Sendable): Promise<MessageRet>;
}
/** 群 */
export interface Group {
/** 撤回消息 */
recallMsg(msg: GroupMessage): Promise<boolean>;
recallMsg(msgid: string): Promise<boolean>;
recallMsg(seq: number, rand: number, pktnum?: number): Promise<boolean>;
}
/** 群 */
export declare class Group extends Discuss {
private _info?;
static as(this: Client, gid: number, strict?: boolean): Group;
/** 群资料 */
get info(): GroupInfo | undefined;
get name(): string | undefined;
/** 我是否是群主 */
get is_owner(): boolean;
/** 我是否是管理 */
get is_admin(): boolean;
/** 是否全员禁言 */
get all_muted(): boolean;
/** 我的禁言剩余时间 */
get mute_left(): number;
/** 群文件系统 */
readonly fs: Gfs;
protected constructor(c: Client, gid: number, _info?: GroupInfo | undefined);
/** 获取一枚群员实例 */
pickMember(uid: number, strict?: boolean): import("./member").Member;
/** 获取群头像url (history=1,2,3...) */
getAvatarUrl(size?: 0 | 40 | 100 | 140, history?: number): string;
/** 强制刷新资料 */
renew(): Promise<GroupInfo>;
private _fetchMembers;
/** 获取群员列表 */
getMemberMap(no_cache?: boolean): Promise<Map<number, MemberInfo>>;
/** 发送音乐分享 */
shareMusic(platform: MusicPlatform, id: string): Promise<void>;
/**
* 发送一条消息
* @param source 引用回复的消息
* @param anony 匿名
*/
sendMsg(content: Sendable, source?: Quotable, anony?: Omit<Anonymous, "flag"> | boolean): Promise<MessageRet>;
private _sendMsgByFrag;
/** 设置群名 */
setName(name: string): Promise<boolean>;
/** 全员禁言 */
muteAll(yes?: boolean): Promise<boolean>;
/** 发送简易群公告 */
announce(content: string): Promise<boolean>;
private _setting;
/** 允许/禁止匿名 */
allowAnony(yes?: boolean): Promise<boolean>;
/** 设置备注 */
setRemark(remark?: string): Promise<void>;
/** 禁言匿名玩家,默认1800秒 */
muteAnony(flag: string, duration?: number): Promise<void>;
/** 获取自己的匿名情报 */
getAnonyInfo(): Promise<Omit<Anonymous, "flag">>;
/** 获取 @全体成员 的剩余次数 */
getAtAllRemainder(): Promise<number>;
private _getLastSeq;
/** 标记`seq`之前为已读,默认到最后一条发言 */
markRead(seq?: number): Promise<void>;
/** 获取`seq`之前的`cnt`条聊天记录,默认从最后一条发言往前,`cnt`默认20不能超过20 */
getChatHistory(seq?: number, cnt?: number): Promise<GroupMessage[]>;
/** 获取群文件下载地址 */
getFileUrl(fid: string): Promise<string>;
/** 设置群头像 */
setAvatar(file: ImageElem["file"]): Promise<void>;
/** 邀请好友入群 */
invite(uid: number): Promise<boolean>;
/** 退群/解散 */
quit(): Promise<boolean>;
setAdmin(uid: number, yes?: boolean): Promise<boolean>;
setTitle(uid: number, title?: string, duration?: number): Promise<boolean>;
setCard(uid: number, card?: string): Promise<boolean>;
kickMember(uid: number, block?: boolean): Promise<boolean>;
muteMember(uid: number, duration?: number): Promise<void>;
pokeMember(uid: number): Promise<boolean>;
}
export {};