better quoting
[bioacid.git] / zdatabase.txt
blob7304b340a99dad8f06693b6f05ae8c044da390de
1 tox id: 76-char
3 each account has its own separate directory.
4 there, we have one directory per contact, named by contact public key.
5 also, we have "conferences" directory, where we have... something, i
6 haven't decided yet.
9 i.e.:
10 accname/
11   toxdata.tox
12   proto.rc (see below)
13   config.rc (see below)
14   contacts/
15     groups.rc (see below)
16     UPCASED-64-HEX-CHARS/ (contact public key)
17       config.rc (see below)
18       avatars/
19         UPCASE-HEX-AVATAR.png
20         current.png: symlink to the actual avatar
21       files/
22         here we will store fully transferred files
23       fileparts/
24         here we will store partially accepted files
25         (and will clear this dir on restart/reconnect)
26       logs/
27         here we will store textual logs, one file per month,
28         named "YYYY-MM.log". see below for log format
29         "unread.log" for unread messages (not put into normal log yet)
30         "resend.log" for messages requires resending (copies of logged messages)
33 log format (it looks like text, but it isn't text):
34 T[YYYY/MM/DD HH:NN:SS]: text-in-utf8
35 date in local time.
36 text: chars in range of [0..31, 92, 127] are \xHH-encoded
37 T is message type:
38   !: server/app notification
39   <: outgoing
40   >: incoming
41 if char before text is '!' instead of space, this is "/me" message
44 enum TriOption { Default = -1, No = 0, Yes = 1 }
46 struct CommonOptions {
47   TriOption showOffline; // show this contact even if it is offline
48   TriOption showPopup; // show popups for messages from this contact
49   TriOption blinkActivity; // blink tray icon if we have some activity for this contact
50   TriOption skipUnread; // skip this contacts in `next_unread` command
51   TriOption ftranAllowed; // file transfers allowed for this contact
52   int resendRotDays; // how many days message should be in "resend queue" if contact is offline (-1: use default value)
53   int hmcOnOpen; // how many history messages we should show when we opening a chat with a contact (-1: use default value)
54   //TriOption confAutoJoin; // automatically join the conference when we're going online
58 contact's config.rc: serialized with iv.txtser:
59 struct ContactConfig {
60   uint gid; // group id (see groups.rc)
61   string nick; // empty: unauthorized
62   string visnick; // empty: use `nick`
63   string statusmsg;
64   uint lastonlinetime; // local unixtime; changed when contact status changed between offline and online (any kind of online)
65   @SRZIgnore ubyte[32] pubkey; // used as unique contact id, same as directory name
66   CommonOptions opts;
67   bool showAlways; // always show this contact
68   bool authReqPending; // pending authorisation (i.e. this is auth request, and `statusmsg` is request message)
69   bool ephemeral; // "ephemeral" contact for conference (not yet)
73 proto.rc:
74 struct ProtoOptions {
75   bool ipv6;
76   bool udp;
77   bool localDiscovery;
78   bool holePunching;
79   ushort startPort;
80   ushort endPort;
81   ushort tcpPort;
82   ubyte proxyType;
83   ushort proxyPort;
84   string proxyAddr;
88 account's config.rc:
89 struct AccountConfig {
90   string nick; // my nick
91   string statusmsg; // my status message
92   bool showOffline; // show offline persons?
93   bool showPopup; // show popups for messages?
94   bool blinkActivity; // blink tray icon if we have some activity (unread msg, transfer request, etc.)?
95   bool skipUnread; // skip contacts in `next_unread` command?
96   bool hideEmptyGroups; // hide empty groups? (can be overriden by `hideNoVisible` group option)
97   bool ftranAllowed; // file transfers allowed for this group (-1: use default value)
98   int resendRotDays; // how many days message should be in "resend queue" if contact is offline
99   int hmcOnOpen; // how many history messages we should show when we opening a chat with a contact
103 groups.rc (sorted by group order):
104 struct GroupOptions {
105   uint gid; // group id; there is always group with gid 0, it is "common" default group
106   string name; // group name
107   bool opened; // is this group opened?
108   TriOption showOffline; // show offline persons in this group
109   TriOption showPopup; // show popups for messages from this group
110   TriOption blinkActivity; // blink tray icon if we have some activity (unread msg, transfer request, etc.) for this group
111   TriOption skipUnread; // skip contacts from this group in `next_unread` command
112   TriOption hideIfNoVisible; // hide this group if there are no visible items in it
113   TriOption ftranAllowed; // file transfers allowed for this group
114   int resendRotDays; // how many days message should be in "resend queue" if contact is offline (-1: use default value)
115   int hmcOnOpen; // how many history messages we should show when we opening a chat with a contact (-1: use default value)