protobuf definitions for hyper-real-time chat
1syntax = "proto3";
2package lrc.v1;
3option go_package = "github.com/rachel-mp4/lrcproto/gen/go/lrcpb;lrcpb";
4
5message Event {
6 oneof msg {
7 Ping ping = 1;
8 Pong pong = 2;
9 Init init = 3;
10 Pub pub = 4;
11 Insert insert = 5;
12 Delete delete = 6;
13 Mute mute = 7;
14 Unmute unmute = 8;
15 Set set = 9;
16 Get get = 10;
17 Kick kick = 11;
18 Hug hug = 12;
19 Ban ban = 13;
20 Unban unban = 14;
21 EditBatch editbatch = 15;
22 MediaInit mediainit = 17;
23 MediaPub mediapub = 18;
24 }
25 optional uint32 id = 16;
26}
27
28message Ping {}
29
30message Pong {}
31
32message Init {
33 optional uint32 id = 1;
34 optional string nick = 2;
35 optional string externalID = 3;
36 optional uint32 color = 4;
37 optional bool echoed = 5;
38 optional bytes nonce = 6;
39}
40
41message Pub { optional uint32 id = 1; }
42
43message Insert {
44 optional uint32 id = 1;
45 string body = 2;
46 uint32 utf16Index = 3;
47}
48
49message Delete {
50 optional uint32 id = 1;
51 uint32 utf16Start = 2;
52 uint32 utf16End = 3;
53}
54
55message Mute { uint32 id = 1; }
56
57message Unmute { uint32 id = 1; }
58
59message Set {
60 optional string nick = 1;
61 optional string externalID = 2;
62 optional uint32 color = 3;
63}
64
65message Get {
66 optional string topic = 1;
67 optional uint32 connected = 2;
68}
69
70message Sudo {
71 string externalID = 1;
72 string secret = 2;
73}
74
75message Kick {
76 Sudo privileges = 1;
77 uint32 id = 2;
78}
79
80message Hug { uint32 id = 1; }
81
82message Ban {
83 Sudo privileges = 1;
84 uint32 id = 2;
85}
86
87message Unban {
88 Sudo privileges = 1;
89 uint32 id = 2;
90}
91
92message Edit {
93 oneof edit {
94 Insert insert = 1;
95 Delete delete = 2;
96 }
97}
98
99message EditBatch { repeated Edit edits = 1; }
100
101message MediaInit {
102 optional uint32 id = 1;
103 optional string nick = 2;
104 optional string externalID = 3;
105 optional uint32 color = 4;
106 optional bool echoed = 5;
107 optional bytes nonce = 6;
108}
109
110message MediaPub {
111 optional uint32 id = 1;
112 optional string contentAddress = 2;
113 optional string alt = 3;
114}