159 lines
3.8 KiB
Protocol Buffer
159 lines
3.8 KiB
Protocol Buffer
syntax = "proto3";
|
||
|
||
package wcf;
|
||
option java_package = "com.iamteer";
|
||
|
||
/*
|
||
service Wcf {
|
||
rpc RpcIsLogin(Empty) returns (Response) {}
|
||
rpc RpcGetSelfWxid(Empty) returns (String) {}
|
||
rpc RpcEnableRecvMsg(Empty) returns (stream WxMsg) {}
|
||
rpc RpcDisableRecvMsg(Empty) returns (Response) {}
|
||
rpc RpcSendTextMsg(TextMsg) returns (Response) {}
|
||
rpc RpcSendPathMsg(PathMsg) returns (Response) {}
|
||
rpc RpcGetMsgTypes(Empty) returns (MsgTypes) {}
|
||
rpc RpcGetContacts(Empty) returns (Contacts) {}
|
||
rpc RpcGetDbNames(Empty) returns (DbNames) {}
|
||
rpc RpcGetDbTables(String) returns (DbTables) {}
|
||
rpc RpcExecDbQuery(DbQuery) returns (DbRows) {}
|
||
rpc RpcAcceptNewFriend(Verification) returns (Response) {}
|
||
}
|
||
*/
|
||
|
||
enum Functions {
|
||
FUNC_RESERVED = 0x00;
|
||
FUNC_IS_LOGIN = 0x01;
|
||
FUNC_GET_SELF_WXID = 0x10;
|
||
FUNC_GET_MSG_TYPES = 0x11;
|
||
FUNC_GET_CONTACTS = 0x12;
|
||
FUNC_GET_DB_NAMES = 0x13;
|
||
FUNC_GET_DB_TABLES = 0x14;
|
||
FUNC_SEND_TXT = 0x20;
|
||
FUNC_SEND_IMG = 0x21;
|
||
FUNC_SEND_FILE = 0x22;
|
||
FUNC_SEND_XML = 0x23;
|
||
FUNC_SEND_EMOTION = 0x24;
|
||
FUNC_ENABLE_RECV_TXT = 0x30;
|
||
FUNC_DISABLE_RECV_TXT = 0x40;
|
||
FUNC_EXEC_DB_QUERY = 0x50;
|
||
FUNC_ACCEPT_FRIEND = 0x51;
|
||
FUNC_ADD_ROOM_MEMBERS = 0x52;
|
||
}
|
||
|
||
message Request
|
||
{
|
||
Functions func = 1;
|
||
oneof msg
|
||
{
|
||
Empty empty = 2;
|
||
string str = 3;
|
||
TextMsg txt = 4;
|
||
PathMsg file = 5;
|
||
DbQuery query = 6;
|
||
Verification v = 7;
|
||
AddMembers m = 8;
|
||
XmlMsg xml = 9;
|
||
}
|
||
}
|
||
|
||
message Response
|
||
{
|
||
Functions func = 1;
|
||
oneof msg
|
||
{
|
||
int32 status = 2;
|
||
string str = 3;
|
||
WxMsg wxmsg = 4;
|
||
MsgTypes types = 5;
|
||
RpcContacts contacts = 6;
|
||
DbNames dbs = 7;
|
||
DbTables tables = 8;
|
||
DbRows rows = 9;
|
||
};
|
||
}
|
||
|
||
message Empty { }
|
||
|
||
message WxMsg
|
||
{
|
||
bool is_self = 1; // 是否自己发送的
|
||
bool is_group = 2; // 是否群消息
|
||
int32 type = 3; // 消息类型
|
||
string id = 4; // 消息 id
|
||
string xml = 5; // 消息 xml
|
||
string sender = 6; // 消息发送者
|
||
string roomid = 7; // 群 id(如果是群消息的话)
|
||
string content = 8; // 消息内容
|
||
}
|
||
|
||
message TextMsg
|
||
{
|
||
string msg = 1; // 要发送的消息内容
|
||
string receiver = 2; // 消息接收人,当为群时可@
|
||
string aters = 3; // 要@的人列表,逗号分隔
|
||
}
|
||
|
||
message PathMsg
|
||
{
|
||
string path = 1; // 要发送的图片的路径
|
||
string receiver = 2; // 消息接收人
|
||
}
|
||
|
||
message XmlMsg
|
||
{
|
||
string receiver = 1; // 消息接收人
|
||
string content = 2; // xml 内容
|
||
string path = 3; // 图片路径
|
||
int32 type = 4; // 消息类型
|
||
}
|
||
|
||
message MsgTypes { map<int32, string> types = 1; }
|
||
|
||
message RpcContact
|
||
{
|
||
string wxid = 1; // 微信 id
|
||
string code = 2; // 微信号
|
||
string name = 3; // 微信昵称
|
||
string country = 4; // 国家
|
||
string province = 5; // 省/州
|
||
string city = 6; // 城市
|
||
int32 gender = 7; // 性别
|
||
}
|
||
message RpcContacts { repeated RpcContact contacts = 1; }
|
||
|
||
message DbNames { repeated string names = 1; }
|
||
|
||
message DbTable
|
||
{
|
||
string name = 1; // 表名
|
||
string sql = 2; // 建表 SQL
|
||
}
|
||
message DbTables { repeated DbTable tables = 1; }
|
||
|
||
message DbQuery
|
||
{
|
||
string db = 1; // 目标数据库
|
||
string sql = 2; // 查询 SQL
|
||
}
|
||
|
||
message DbField
|
||
{
|
||
int32 type = 1; // 字段类型
|
||
string column = 2; // 字段名称
|
||
bytes content = 3; // 字段内容
|
||
}
|
||
message DbRow { repeated DbField fields = 1; }
|
||
message DbRows { repeated DbRow rows = 1; }
|
||
|
||
message Verification
|
||
{
|
||
string v3 = 1;
|
||
string v4 = 2;
|
||
}
|
||
|
||
message AddMembers
|
||
{
|
||
string roomid = 1; // 要加的群ID
|
||
string wxids = 2; // 要加群的人列表,逗号分隔
|
||
}
|