chatstore.pl -- Store chat messages
When using redis, the messages for a document are stored in the key
below as a sorted set where the score is the time in ms and the value
is a Prolog dict holding the message.
Prefix:chat:docid:DocId
- redis_docid_key(+DocID, -Server, -Key) is semidet[private]
- chat_dir_file(+DocID, -Path, -File)[private]
- True when Path/File is the place to store char messages about DocID.
- existing_chat_file(+DocID, -File) is semidet[private]
- True when File is the path of the file holding chat messages from
DocID.
- chat_store(+Message:dict) is det
- Add a chat message to the chat store. If
Message.create == false
,
the message is only stored if the chat is already active. This is
used to only insert messages about changes to the file if there is
an ongoing chat so we know to which version chat messages refer.
- strip_chat(_Message0, -Message) is det[private]
- Remove stuff from a chat message that is useless to store
permanently, such as the wsid (WebSocket id).
- chat_messages(+DocID, -Messages:list, +Options) is det
- Get messages associated with DocID. Options include
- max(+Max)
- Maximum number of messages to retrieve. Default is 25.
- after(+TimeStamp)
- Only get messages after TimeStamp
- chat_message_count(+DocID, -Count) is det[private]
- Count the number of message stored for DocID. This is the same as
the number of lines.
- swish_config:chat_count_about(+DocID, -Count)[multifile]
- True when Count is the number of messages about DocID
- chat_messages(+Request)[private]
- HTTP handler that returns chat messages for a document
- chat_status(+Request)[private]
- HTTP handler that returns chat status for document