1- type Message = string [ ] | string ;
21interface IDict {
32 [ key : string ] : any ;
43}
4+
55export interface IYunzai {
66 uin : number [ ] ;
77 pickFriend : ( user_id : number ) => User ;
88 pickGroup : ( group_id : number ) => Group ;
99 pickMember : ( group_id : number , user_id : number ) => GroupUser ;
1010}
11+
1112export interface IBot {
1213 uin : number ;
1314 nickname : string ;
@@ -21,21 +22,65 @@ export interface IBot {
2122 getGroupList : ( ) => Group [ ] ;
2223 getGroupMap : ( ) => Map < number , Group > ;
2324}
25+
26+ export interface ISegment {
27+ image : ( file : string , type ?: string , subType ?: string ) => string ;
28+ at : ( user_id : number , name : string ) => string ;
29+ record : ( file : string ) => string ;
30+ video : ( file : string ) => string ;
31+ reply : ( id , text , qq , time , seq ) => string ;
32+ face : ( id ) => string ;
33+ share : ( url , title , content , image ) => string ;
34+ music : ( type , id , url , audio , title ) => string ;
35+ poke : ( qq ) => string ;
36+ gift : ( qq , id ) => string ;
37+ xml : ( data , resid ) => string ;
38+ json : ( data , resid ) => string ;
39+ cardimage : ( file , minwidth , minheight , maxwidth , maxheight , source , icon ) => string ;
40+ tts : ( text ) => string ;
41+ custom : ( type , data ) => string ;
42+ }
43+
44+ export interface MessageSegment {
45+ type : "text" | "image" | "record" | "video" | "reply" | "face" | "share" | "music" | "poke" | "gift" | "xml" | "json" | "cardimage" | "tts" | "raw" | "markdown" | "node" | "custom" ;
46+ data ?: IDict ;
47+ qq ?: number ;
48+ file ?: string ;
49+ name ?: string ;
50+ id ?: string ; // Reply message_id
51+ text ?: string ; // Reply text or message text
52+ }
53+ export type Message = MessageSegment | string | ( MessageSegment | string ) [ ] ;
54+
55+ export interface ForwardMessage {
56+ message : Message ;
57+ nickname ?: string ;
58+ user_id ?: number ;
59+ time ?: number ; // Date.now() / 1000
60+ }
61+ export interface SendMessageResult {
62+ message_id : string | string [ ] ; // Message ID
63+ data ?: any [ ] ;
64+ }
65+
2466export interface User {
2567 user_id : number ;
26- card ?: string ; // Only for GroupMember
27- sendMsg : ( msg : Message ) => void ;
28- recallMsg : ( message_id : number ) => void ;
29- makeForwardMsg : ( msg : Message ) => Message ;
68+
69+ sendMsg : ( msg : Message ) => Promise < SendMessageResult > ;
70+ recallMsg : ( message_id : string | string [ ] ) => Promise < MessageSegment [ ] > ;
71+ makeForwardMsg : ( msgs : ForwardMessage [ ] ) => Promise < MessageSegment [ ] > ;
3072 getInfo : ( ) => IDict ; // User info
3173 getAvatarUrl : ( ) => string ;
3274}
75+
3376export interface Group {
3477 group_id : number ;
35- sendMsg : ( msg : Message ) => void ;
36- recallMsg : ( message_id : number ) => void ;
37- makeForwardMsg : ( msg : Message ) => Message ;
78+
79+ sendMsg : ( msg : Message ) => Promise < SendMessageResult > ;
80+ recallMsg : ( message_id : string | string [ ] ) => Promise < MessageSegment [ ] > ;
81+ makeForwardMsg : ( msgs : ForwardMessage [ ] ) => Promise < MessageSegment [ ] > ;
3882 getInfo : ( ) => IDict ; // Group info
83+
3984 getAvatarUrl : ( ) => string ;
4085 getMemberList : ( ) => GroupUser [ ] ;
4186 getMemberMap : ( ) => Map < number , GroupUser > ;
@@ -45,24 +90,10 @@ export interface Group {
4590 setAvatar : ( file : string ) => void ;
4691 setAdmin : ( user_id : number , enable : boolean ) => void ;
4792}
93+
4894export interface GroupUser extends User {
95+ card : string ; // Group member card (nickname in group)
96+
4997 pickFriend : ( ) => User ;
5098 poke : ( ) => void ;
5199}
52- export interface Segment {
53- image : ( file : string , type ?: string , subType ?: string ) => string ;
54- at : ( user_id : number , name : string ) => string ;
55- record : ( file : string ) => string ;
56- video : ( file : string ) => string ;
57- reply : ( id , text , qq , time , seq ) => string ;
58- face : ( id ) => string ;
59- share : ( url , title , content , image ) => string ;
60- music : ( type , id , url , audio , title ) => string ;
61- poke : ( qq ) => string ;
62- gift : ( qq , id ) => string ;
63- xml : ( data , resid ) => string ;
64- json : ( data , resid ) => string ;
65- cardimage : ( file , minwidth , minheight , maxwidth , maxheight , source , icon ) => string ;
66- tts : ( text ) => string ;
67- custom : ( type , data ) => string ;
68- }
0 commit comments