From 97bfa6961e800a4fd1e1a1d856b9ce78251b23e8 Mon Sep 17 00:00:00 2001 From: nik gaffney Date: Wed, 16 Dec 2020 11:53:50 +0100 Subject: [PATCH] What else is this like? Destroy nothing; Destroy the most important thing --- .gitignore | 2 + etherpad.el | 13 +- ethersync.el | 501 ++++++++++++++++++++++++++++++++++++ notes/etherpad-protocol.org | 474 ++++++++++++++++++++++++++++++++++ notes/proto-x1.png | Bin 0 -> 62678 bytes notes/proto-x2.png | Bin 0 -> 60485 bytes 6 files changed, 987 insertions(+), 3 deletions(-) create mode 100644 .gitignore create mode 100644 ethersync.el create mode 100644 notes/etherpad-protocol.org create mode 100644 notes/proto-x1.png create mode 100644 notes/proto-x2.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fbe4416 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +notes/*.tex +/notes/*.tex diff --git a/etherpad.el b/etherpad.el index 108fa1d..d602030 100644 --- a/etherpad.el +++ b/etherpad.el @@ -44,11 +44,13 @@ ;; - not much in the way of error checking or recovery ;; - etc - ;;; Code: -(require 'request) +(add-to-list 'load-path ".") + (require 'let-alist) +(require 'ethersync) +(require 'request) (require 'cl-lib) (defgroup etherpad nil @@ -78,6 +80,12 @@ (defvar etherpad--local-pad-revision "" "Buffer local pad details.") +;; minor mode +(define-minor-mode etherpad-mode + "Minor mode to sync changes with etherpad." nil " etherpad" nil + (if etherpad-mode + (ethersync--add-change-hooks) + (ethersync--remove-change-hooks))) ;; API functions @@ -265,6 +273,5 @@ should be specific to minor mode and buffer local." (interactive) (remove-hook 'auto-save-hook #'etherpad-save)) - (provide 'etherpad) ;;; etherpad.el ends here diff --git a/ethersync.el b/ethersync.el new file mode 100644 index 0000000..d034545 --- /dev/null +++ b/ethersync.el @@ -0,0 +1,501 @@ +;;; ethersync.el ---Etherpad easysync protocol -*- coding: utf-8; lexical-binding: t -*- + +;; Copyright 2020 FoAM +;; +;; Author: nik gaffney +;; Created: 2020-12-12 +;; Version: 0.1 +;; Package-Requires: ((emacs "26.1") (request "0.3") (let-alist "0.0")) +;; Keywords: comm, etherpad, collaborative editing +;; URL: https://github.com/zzkt/ethermacs + +;; This file is not part of GNU Emacs. + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + + +;;; Commentary: + +;; Etherpad is a highly customizable Open Source online editor providing +;; collaborative editing in really real-time. +;; +;; The easysync protocol is used for communication of edits, changesets +;; and metadata between etherpad server and clients. It uses websockets +;; for the transport layer +;; +;; details -> https://etherpad.org/doc/v1.8.5/#index_http_api + +;; current issues 2020-12-15 00:52:32 +;; - on ws per buffer. buffer local. shared. +;; - incorrect newline counts when sending changesets +;; - problems w. deleting text and/or changing buffer size & change-hooks +;; - see "Additional Constraints" of easysync +;; - potential race conditions sending changesets on buffer changes +;; - doesn't apply attributes or changes from the apool +;; - general lack of error checking + +;;; Code: + +(require 'websocket) +(require 'let-alist) +(require 'calc-bin) +(require 'parsec) +(require '0xc) +(require 's) + +;; debug details +(setq websocket-debug t) + +;; local and buffer local variables +(defvar-local ep--pre-buffer-length 0) +(defvar-local ep--new-buffer-length 0) +(defvar-local ep--change-length 0) +(defvar-local ep--change-string "") + +(defvar-local ep--local-rev 0) +(defvar-local ep--current-pad "") +(defvar-local ep--local-author "") ;; e.g. "a.touCZaixjPgKDSiN" + +(defvar-local ep--hearbeat-timer nil) +(defvar-local ep--current-socket nil) + +;; enable/disable keep alive message to the server +(defun ethersync-heartbeat-start () + "Maintain connection to server with periodic pings." + (message "heartbeat started: %s" (current-buffer)) + (setq ep--hearbeat-timer + (run-with-timer 5 15 #'wss-send "2"))) + +(defun ethersync-heartbeat-stop () + "Stop sending keep-alive messages." + (cancel-timer ep--hearbeat-timer)) + +;; buffering +(defvar *etherpad-buffer* (generate-new-buffer "*etherpad*")) + +(defun ethersync-current-socket (&optional socket) + "Return currently active socket or set SOCKET as current." + (message "socket in buffer: %s" (current-buffer)) + (if socket + (setq ep--current-socket socket) + ep--current-socket)) + +;; setters +(defun ethersync--set-local-rev (n) + "Set the local revision." + (message "current rev: %s" ep--local-rev) + (setq ep--local-rev n) + (message "updated rev: %s" ep--local-rev) + (with-current-buffer *etherpad-buffer* + (rename-buffer (format "etherpad:%s:%s" + ep--current-pad + ep--local-rev)))) + +;; see also -> inhibit-modification-hooks + +(defun ethersync--add-change-hooks () + (interactive) + (message "setting up buffer change hooks") + (with-current-buffer *etherpad-buffer* + (add-hook 'before-change-functions + 'ethersync--before-buffer-changes nil t) + ;; ordering is important... + (add-hook 'after-change-functions + 'ethersync--after-buffer-changes 22 t) + (add-hook 'after-change-functions + 'ethersync--send-changes 23 t))) + +(defun ethersync--remove-change-hooks () + (interactive) + (message "removing buffer change hooks") + (with-current-buffer *etherpad-buffer* + (remove-hook 'before-change-functions + 'ethersync--before-buffer-changes t) + (remove-hook 'after-change-functions + 'ethersync--after-buffer-changes t) + (remove-hook 'after-change-functions + 'ethersync--send-changes t))) + + +(defun ethersync--before-buffer-changes (begin end) + ;; (message "before -> b:%s e:%s" begin end) + (setq-local ep--pre-buffer-length (length (buffer-string)) + ep--change-length (- end begin))) + +(defun ethersync--after-buffer-changes (begin end pre) + ;; (message "after -> b:%s e:%s p:%s" begin end pre) + (setq-local ep--new-buffer-length (length (buffer-string)) + ep--change-string (buffer-substring begin end) + ep--change-length (- end begin))) + + ;; (message "eabc: pre: %s post: %s changed: %s chars to: %s at: %s(%s)" + ;; ep--pre-buffer-length + ;; ep--new-buffer-length + ;; ep--change-length + ;; ep--change-string + ;; (point) + ;; (n-36 (point)))) + + +;; emacs -> etherpad changes + +(defun ethersync--send-changes (_b _e _p) +"Create and encode a changeset." + (let* ((b0 ep--pre-buffer-length) + (b1 ep--new-buffer-length) + (ops (if (< b0 b1) + (format "+%s" (- b1 b0)) + (format "-%s" (- b0 b1)))) + (changeset + (ethersync--encode-changeset + b0 + (- b1 b0) + ops + ep--change-string))) + (message "changeset: %s" changeset) + (ethersync--send-user-changes changeset))) + + +(defun ethersync--encode-changeset (length change-size ops chars) + "Create a changeset from some buffer activty." + (message "encoding: o:%s (%s) cs:%s op:%s ch:%s" length (n-36 length) change-size ops chars) + (let* ((change (cond ((= 0 change-size) "=0") + ((> 0 change-size) + (format "<%s" (n-36 (abs change-size)))) + ((< 0 change-size) + (format ">%s" (n-36 change-size))))) + (newline-count (s-count-matches "\n" (buffer-substring + (point-min) + (point)))) + (offset (- (point) (length chars) 1)) + ;; offset is distance from point-min to point w.out inserted chars and w. newlines + (pos-op (if (< 0 newline-count) + (format "|%s=%s=%s" + ;; 2 steps reqd. newline insert, then from beginning of line? + (n-36 newline-count) (n-36 offset) + (n-36 (caar + (reverse + (s-matched-positions-all + "\n" (buffer-substring + (point-min) (point))))))) + (format "=%s" (n-36 offset))))) + (format "Z:%s%s%s%s$%s" (n-36 length) change pos-op ops chars))) + + +(defun ethersync--send-user-changes (cs) + "Send a 'USER_CHANGES' message with changeset CS." + (let* ((author ep--local-author) + (rev ep--local-rev) + (changeset cs) + (payload (format "42[\"message\",{\"type\":\"COLLABROOM\",\"component\":\"pad\",\"data\":{\"type\":\"USER_CHANGES\",\"baseRev\":%s,\"changeset\":\"%s\",\"apool\":{\"numToAttrib\":{},\"nextNum\":1}}}]" rev changeset author))) + + (message "send this -> %s" payload) + (wss-send payload) + )) + +;; parsec info https://github.com/cute-jumper/parsec.el + +(defun ethersync-parse-changeset (cs) +"Parse a changeset CS. + + :N : Source text has length N (must be first op) + >N : Final text is N (positive) characters longer than source text (must be second op) + 0 : Final text is same length as source text + +N : Insert N characters from the bank, none of them newlines + -N : Skip over (delete) N characters from the source text, none of them newlines + =N : Keep N characters from the source text, none of them newlines +|L+N : Insert N characters from the source text, containing L newlines. The last + character inserted MUST be a newline, but not the (new) document's final newline. +|L-N : Delete N characters from the source text, containing L newlines. The last + character inserted MUST be a newline, but not the (old) document's final newline. +|L=N : Keep N characters from the source text, containing L newlines. The last character + kept MUST be a newline, and the final newline of the document is allowed. + *I : Apply attribute I from the pool to the following +, =, |+, or |= command. + In other words, any number of * ops can come before a +, =, or | but not + between a | and the corresponding + or =. + If +, text is inserted having this attribute. If =, text is kept but with + the attribute applied as an attribute addition or removal. + Consecutive attributes must be sorted lexically by (key,value) with key + and value taken as strings. It's illegal to have duplicate keys + for (key,value) pairs that apply to the same text. It's illegal to + have an empty value for a key in the case of an insertion (+), the + pair should just be omitted." + + (let* ((changes + (parsec-with-input cs + ;; a letter Z (the "magic character" and format version identifier) + (parsec-str "Z") + (parsec-collect* + ;; source text length + (parsec-re ":[0-9a-z]+") + ;; change in text length + (parsec-re "[>=<][0-9a-z]+") + ;; insertion & deletion operations + (parsec-many + (parsec-or + (parsec-re "|[0-9a-z]+[+-=][0-9a-z]+") + (parsec-re "[><+-=*][0-9a-z]+"))) + ;; separator + (parsec-str "$") + ;; a string of characters used by insertion operations (the "char bank") + (parsec-many-s + (parsec-any-ch)))))) + + (let* ((old-length + (0xc-string-to-number (substring (car changes) 1) 36)) + (change-sign + (if (s-equals? ">" (substring (nth 1 changes) 0 1)) 1 -1)) + (change-size + (0xc-string-to-number (substring (nth 1 changes) 1) 36)) + (new-length + (+ old-length (* change-sign change-size))) + (ops + (nth 2 changes)) + (chars + (car (last changes)))) + ;;(message "old length: %s new length: %s ops: %s chars: %s" old-length new-length ops chars) + (list old-length ops chars) + ))) + + +;; radix reductions + +(defun s-36 (string) + "Convert a base-36 number STRING to decimal." + (0xc-string-to-number string 36)) + +(defun n-36 (number) + "Convert a decimal NUMBER to base-36 as string." + (let ((calc-number-radix 36)) + (downcase + (math-format-radix number)))) + + +;; operations -> buffer changes + +(defun ethersync-apply-ops (ops chars) + "Apply a series of insert/delete operations. +Numeric offsets are calculated from the beginning of the buffer." + (with-current-buffer *etherpad-buffer* + (save-mark-and-excursion + (goto-char (point-min)) + (let ((char-bank chars)) + (mapcar + (lambda (s) + (let* ((o1 (s-left 1 s)) + (p1 (substring s 1))) + (message "op: %s val: %s" o1 p1) + (pcase o1 + ("+" (ethersync-insert (s-left (s-36 p1) char-bank)) + (setq char-bank (s-right (s-36 p1) char-bank))) + ("-" (ethersync-delete (s-36 p1))) + ("=" (ethersync-keep (s-36 p1))) + ("|" (let* ((p2 (s-split "[+=-]" (s-36 p1))) + (l1 (s-36 (car p2))) + (n1 (s-36 (cadr p2)))) + ;; doesn't insert or delete newlines correctly (yet) + (message "ops: l1:%s n1:%s" l1 n1) + (pcase p1 + ((pred (s-matches? "+")) + (ethersync-insert char-bank) + (setq char-bank (s-right n1 char-bank))) + ((pred (s-matches? "-")) (ethersync-delete n1)) + ((pred (s-matches? "=")) (ethersync-keep n1))))) + ("*" t) + (_ nil) + ))) + ops))))) + + +;; character operations for remote->local sync +;; which should not trigger change hooks + +(defun ethersync-insert (chars) + "Insert CHARS into the source text." + (let ((inhibit-modification-hooks t)) + (insert chars))) + +(defun ethersync-delete (n) + "Delete (skip over) N chars from the source text." + (let ((inhibit-modification-hooks t)) + (delete-char n))) + +(defun ethersync-keep (n) + "Keep N chars from the source text." + (let ((inhibit-modification-hooks t)) + (forward-char n))) + +;; start with current pad text + +(defun ethersync-init-text (chars) + "Seeds a buffer with CHARS from a remote pad" + (with-current-buffer *etherpad-buffer* + (let ((inhibit-modification-hooks t)) + (erase-buffer) + (goto-char (point-min)) + (insert chars)))) + +(defun ethersync-try-changeset (cs) + (let* ((changes + (ethersync-parse-changeset cs)) + (len (nth 0 changes)) + (ops (nth 1 changes)) + (chars (nth 2 changes))) + (ethersync--check-length len) + (ethersync-apply-ops ops chars))) + +(defun ethersync--check-length (size) + "Check the changeset and buffer SIZE are consistent." + (when (not (= size (length (buffer-string)))) + (message "changeset and buffer length are inconsistent."))) + +;; various stanzas + +(defun ethersync--request-client-ready (padId) + "Ethersync: send CLIENT_READY for PADID." + (format "42[\"message\",{\"component\":\"pad\",\"type\":\"CLIENT_READY\",\"padId\":\"%s\",\"token\":\"%s\",\"protocolVersion\":2}]" padId *session-token*)) + +(defun ethersync--request-get-comments (padId) + "Ethersync: request comments on PADID." + (format "42/comment,0[\"getComments\",{\"padId\":\"%s\"}]" padId)) + +(defun ethersync--request-get-comment-replies (padId) + "Ethersync: request comment replies on PADID." + (format "42/comment,1[\"getCommentReplies\",{\"padId\":\"%s\"}]" padId)) + + +;; sending via websockets + +(defalias 'wss-send #'ethersync-wss-send) + +(defun ethersync-wss-send (msg) + "Send MSG to a websocket." + (when (stringp msg) + (websocket-send-text + (ethersync-current-socket) msg))) + + +;; parsing & dispatch of incoming frames + +(defun ethersync-parse-wsframe (_websocket frame) + "Parse & dispatch incoming FRAME. +Parsing occurs with-current-buffer for constancy with buffer-local variables +use let bindings for multiple connections." + ;(message "parsing: %s" frame) + (with-current-buffer *etherpad-buffer* + (let* ((fr0 (websocket-frame-text frame)) + (frp (parsec-with-input + fr0 + (parsec-collect* (parsec-re "[0-9]+") + (parsec-many-s (parsec-any-ch)))))) + (message "frame: %s" (length fr0)) + (pcase (car frp) + ("0" (ethersync--parse-0 frp)) + ("2" (ethersync--parse-2 frp)) + ("3" (message "3: keep-alive")) + ("42" (ethersync--parse-42 frp)) + )))) + +;; parse various incoming message types + +(defun ethersync--parse-0 (p0) + "Parse messages beginning with 0 from P0. +set sid, upgrades, pingInterval and pingTimeout for session." + (when (listp p0) + (pcase (length p0) + (0 nil) + (1 (car p0)) + (_ (let* ((p1 (json-parse-string (nth 1 p0) :object-type 'alist)) + (sid (alist-get 'sid p1))) + (message "sid %s" sid) + ))))) + + +(defun ethersync--parse-2 (p0) + "Parse messages beginning with 2 from P0. +set revisions etc." + (when (listp p0) + (pcase (length p0) + (0 nil) + (1 (car p0)) + (_ (let* ((p1 (json-parse-string (nth 1 p0) :object-type 'alist))) + (let-alist (aref p1 1) + (pcase .type + ("COLLABROOM" + (pcase .data.type + ("ACCEPT_COMMIT" + (message "accepted changes: rev:%s and %s (by %s)" + .data.newRev) + (ethersync--set-local-rev .data.newRev))))))))))) + + +(defun ethersync--parse-42 (p0) + "Parse messages beginning with 42 from P0. +most of the COLLABROOM and update stuff..." + (when (listp p0) + (pcase (length p0) + (0 nil) + (1 (car p0)) + (_ (let* ((p1 (json-parse-string (nth 1 p0) :object-type 'alist))) + (let-alist (aref p1 1) + (pcase .type + ("COLLABROOM" + (pcase .data.type + + ("USER_NEWINFO" + (message "42: new user %s (color %s)" + .data.userInfo.userId + .data.userInfo.colorId)) + + ("NEW_CHANGES" + (message "42: new_changes rev:%s changeset:%s (by %s)" + .data.newRev + .data.changeset + .data.author) + (ethersync--set-local-rev .data.newRev) + (ethersync-try-changeset .data.changeset)) + + ("USER_CHANGES" + (message "42: user_changes rev:%s changeset:%s (by %s)" + .data.baseRev + .data.changeset + .data.apool.author)) + + ("ACCEPT_COMMIT" + (message "42: accept-commit rev:%s" .data.newRev) + (ethersync--set-local-rev .data.newRev) + ))) + + ("CLIENT_READY" + (message "42: ready -> %s and %s" .padId .token)) + + ("CLIENT_VARS" + (message "42: client_vars (%s) rev:%s -> %s" + .data.padId + .data.collab_client_vars.rev + .data.collab_client_vars.initialAttributedText.text) + (ethersync--set-local-rev + .data.collab_client_vars.rev) + (ethersync-init-text + .data.collab_client_vars.initialAttributedText.text))) + + (pcase .disconnect + ("badChangeset" + (message "42: disconnect (%s)" .disconnect))) + )))))) + + +(provide 'ethersync) +;;; ethersync.el ends here diff --git a/notes/etherpad-protocol.org b/notes/etherpad-protocol.org new file mode 100644 index 0000000..7b956cb --- /dev/null +++ b/notes/etherpad-protocol.org @@ -0,0 +1,474 @@ +# -*- mode: org; coding: utf-8; -*- +#+LaTeX_CLASS: zzkt-article +#+LateX_Header: \setcounter{secnumdepth}{0} +#+OPTIONS: toc:2 +#+author: nik gaffney +#+title: etherpad protocol notes + +#+begin_export latex +\newpage +#+end_export +* etherpad & the easysync protocol + + - [[https://github.com/ether/etherpad-lite/tree/develop/doc/easysync][easysync protocol description & notes]] + - [[http://geekdirt.com/blog/how-etherpad-works/][How etherpad-lite, a real time collaborative editor, works?]] + + possibly relevant parts of the etherpad code + - https://github.com/ether/etherpad-lite/blob/develop/src/node/handler/PadMessageHandler.js + - https://github.com/payload/ethersync/blob/master/src/ethersync.coffee + - code for a [[https://github.com/JohnMcLear/etherpad-cli-client/blob/master/lib/index.js][cli-client]] and the [[https://github.com/ether/etherpad-lite/tree/develop/src/static/js][javasctipt client]] + +* websockets & socket.io + +etherpad uses socket.io for realtime communication between server and clients. socket.io uses ws and wss as transport protocols, but not directly compatible. appears to work as expected by adding headers and/or prefixes to json data sent via wss (“Socket.IO is NOT a WebSocket implementation” according to the [[https://socket.io/docs/][socket.io docs]]) + +* websockets in emacs + +see https://blog.abrochard.com/websockets.html and [[https://github.com/ahyatt/emacs-websocket][emacs-websocket]] for details + +* protocol, probes & partials + +browser client sends url with pad name to server (e.g. https://etherpad.wikimedia.org/p/test ) establishes session (sid) and receives token (in cookie data). updates, changes & pad metadata are sent via wss connection. (e.g. wss://etherpad.wikimedia.org/socket.io/?EIO=3&transport=websocket&sid=Ap47gBZD98dHcW38AoqY ) + +** overview + +#+BEGIN_SRC plantuml :exports none :file proto-x1.png +!include https://raw.githubusercontent.com/bschwarz/puml-themes/master/themes/cerulean/puml-theme-cerulean.puml + +== init == +client -> ep_server: wss://example.org//socket.io/?EIO=3&transport=websocket +ep_server --> client: 0 sid, upgrades, etc +client -> ep_server: 2 CLIENT_READY padId, token, etc +ep_server --> client: 42 CLIENT_VARS pad text, lots of junk about server, colours, authors, etc +ep_server --> client: 42 USER_NEWINFO (if other active clients) + +== local edits == +client -> ep_server: 42 USER_CHANGES baseRev, changeset +ep_server --> client: 42 ACCEPT_COMMIT newRev +note right: COLLABROOM + +== edits from elsewhere == +ep_server --> client: 42 USER_NEWINFO +ep_server --> client: 42 NEW_CHANGES newrev, changeset, author, etc +ep_server --> client: 42 USER_LEAVE +note right: COLLABROOM + +== keep-alive == +client -> ep_server: 2 +ep_server --> client: 3 + +#+END_SRC + +#+RESULTS: + [[file:proto-x1.png]] + +client -> ep_server: +ep_server --> client: + + +#+CAPTION: overview of etherpad/easysync protocol +#+ATTR_ORG: :width 400 +#+ATTR_LaTeX: :height 15cm :placement [!h] +#+RESULTS: +[[file:proto-x1.png]] + +** comment plugin + +#+BEGIN_SRC plantuml :exports none :file proto-x2.png +!include https://raw.githubusercontent.com/bschwarz/puml-themes/master/themes/cerulean/puml-theme-cerulean.puml + +title comments + +== comments == + client -> ep_server: 40/comment, + ep_server --> client: 40/comment, + client -> ep_server: 42/comment getComments, padId + client -> ep_server: 42/comment getCommentReplies, padId + ep_server --> client: 43/comment comments + ep_server --> client: 43/comment comment replies + +== updates (new) == + ep_server --> client: 42/comment pushAddCommentReply, commentId, text, etc + client -> ep_server: 42/comment getCommentReplies, padId + ep_server --> client: 43/comment replies, etc + +== updates (changes) == + ep_server --> client: 42/comment, textCommentUpdated + +== updates (deletion) == + ep_server --> client: 42/comment, commentDeleted + ep_server --> client: 42 NEW_CHANGES + + #+END_SRC + +#+CAPTION: comments +#+ATTR_ORG: :width 400 +#+ATTR_LaTeX: :height 15cm :placement [!h] +#+RESULTS: +[[file:proto-x2.png]] + +** example messages + +*init/request* +#+BEGIN_SRC text +40/comment, + +42/comment,0["getComments",{"padId":"test"}] +42/comment,1["getCommentReplies",{"padId":"test"}] + 43/comment,0[{"comments":{"c-4U2BW8J2Lp0r68ZL":{"author":"a.0iRJZx7jiOAxVNMP","name":"zzkt","text":"yes","timestamp":1607769834917}}}] + +43/comment,1[{"replies":{}}] +#+END_SRC + +*updates (new)* +#+BEGIN_SRC text +42/comment,["pushAddCommentReply","c-reply-vMSgWSY4bFhaCCLR",{"commentId":"c-4U2BW8J2Lp0r68ZL","text":"no","changeTo":null,"changeFrom":null,"author":"a.0iRJZx7jiOAxVNMP","name":"zzkt","timestamp":1607770300230,"replyId":"c-reply-vMSgWSY4bFhaCCLR"}] + +42/comment,2["getCommentReplies",{"padId":"test"}] + +43/comment,2[{"replies":{"c-reply-vMSgWSY4bFhaCCLR":{"commentId":"c-4U2BW8J2Lp0r68ZL","text":"no","changeTo":null,"changeFrom":null,"author":"a.0iRJZx7jiOAxVNMP","name":"zzkt","timestamp":1607770300230}}}] +#+END_SRC + +*updates (changes)* +#+BEGIN_SRC text +42/comment,["textCommentUpdated","c-reply-vMSgWSY4bFhaCCLR","not yet"] +#+END_SRC + +*updates (deletion)* +#+BEGIN_SRC text +42/comment,["commentDeleted","c-4U2BW8J2Lp0r68ZL"] + 42["message",{"type":"COLLABROOM","data":{"type":"NEW_CHANGES","newRev":234,"changeset":"Z:e>0=7*0=4$","apool":{"numToAttrib":{"0":["comment","comment-deleted"]},"attribToNum":{"comment,comment-deleted":0},"nextNum":1},"author":"a.0iRJZx7jiOAxVNMP","currentTime":1607770511397,"timeDelta":null}}] +#+END_SRC + + +** changesets + +via https://github.com/ether/etherpad-lite/ + …and [[https://raw.githubusercontent.com/ether/etherpad-lite/develop/doc/easysync/easysync-notes.txt][easysync notes]] + +An "attribute" is a (key,value) pair such as (author,abc123456) or (bold,true). Sometimes an attribute is treated as an instruction to add that attribute, in which case an empty value means to remove it. So (bold,) removes the "bold" attribute. Attributes are interned and given numeric IDs, so the number "6" could represent "(bold,true)", for example. This mapping is stored in an attribute "pool" which may be shared by multiple changesets. + +Entries in the pool must be unique, so that attributes can be compared by their IDs. Attribute names cannot contain commas. + +A changeset looks something like the following: + +=Z:5g>1|5=2p=v*4*5+1$x= + +With the corresponding pool containing these entries: +... +4 -> (author,1059348573) +5 -> (bold,true) +... +This changeset, together with the pool, represents inserting +a bold letter "x" into the middle of a line. The string consists of: + +- a letter Z (the "magic character" and format version identifier) +- a series of opcodes (punctuation) and numeric values in base 36 (the + alphanumerics) +- a dollar sign ($) +- a string of characters used by insertion operations (the "char bank") + +If we separate out the operations and convert the numbers to base 10, we get: + +=Z :196 >1 |5=97 =31 *4 *5 +1 $"x"= + +Here are descriptions of the operations, where capital letters are variables: + +#+BEGIN_SRC text +":N" : Source text has length N (must be first op) +">N" : Final text is N (positive) characters longer than source text (must be second op) +"0" : Final text is same length as source text +"+N" : Insert N characters from the bank, none of them newlines +"-N" : Skip over (delete) N characters from the source text, none of them newlines +"=N" : Keep N characters from the source text, none of them newlines +"|L+N" : Insert N characters from the source text, containing L newlines. The last + character inserted MUST be a newline, but not the (new) document's final newline. +"|L-N" : Delete N characters from the source text, containing L newlines. The last + character inserted MUST be a newline, but not the (old) document's final newline. +"|L=N" : Keep N characters from the source text, containing L newlines. The last character + kept MUST be a newline, and the final newline of the document is allowed. +"*I" : Apply attribute I from the pool to the following +, =, |+, or |= command. + In other words, any number of * ops can come before a +, =, or | but not + between a | and the corresponding + or =. + If +, text is inserted having this attribute. If =, text is kept but with + the attribute applied as an attribute addition or removal. + Consecutive attributes must be sorted lexically by (key,value) with key + and value taken as strings. It's illegal to have duplicate keys + for (key,value) pairs that apply to the same text. It's illegal to + have an empty value for a key in the case of an insertion (+), the + pair should just be omitted. +#+END_SRC + +Characters from the source text that aren't accounted for are assumed to be kept with the same attributes. + +*Additional Constraints:* + +- Consecutive +, -, and = ops of the same type that could be combined are not allowed. Whether combination is possible depends on the attributes of the ops and whether each is multiline or not. For example, two multiline deletions can never be consecutive, nor can any insertion come after a non-multiline insertion with the same attributes. + +- "No-op" ops are not allowed, such as deleting 0 characters. However, attribute applications that don't have any effect are allowed. + +- Characters at the end of the source text cannot be explicitly kept with no changes; if the change doesn't affect the last N characters, those "keep" ops must be left off. + +- In any consecutive sequence of insertions (+) and deletions (-) with no keeps (=), the deletions must come before the insertions. + +- The document text before and after will always end with a newline. This policy avoids a lot of special-casing of the end of the document. If a final newline is always added when importing text and removed when exporting text, then the changeset representation can be used to process text files that may or may not have a final newline. + +*Attribution string:* + +An "attribution string" is a series of inserts with no deletions or keeps. For example, "*3+8|1+5" describes the attributes of a string of length 13, where the first 8 chars have attribute 3 and the next 5 chars have no attributes, with the last of these 5 chars being a newline. Constraints apply similar to those affecting changesets, but the restriction about the final newline of the new document being added doesn't apply. + +Attributes in an attribution string cannot be empty, like "(bold,)", they should instead be absent. + + +** attributes, colours, authors, etc + +the “apool” +#+BEGIN_SRC text +"apool":{"numToAttrib":{"0":["author","a.touCZaixjPgKDSiN"]},"nextNum":1} +#+END_SRC + +author ids, names & colour mapping + +** CLIENT_VARS + +#+BEGIN_SRC text +42["message",{"type":"CLIENT_VARS","data":{… [etc] +#+END_SRC + +most directly useful + - pad name - =[1]["data"]["padId"]= (and also =[1]["data"]["collab_client_vars"]["padId"]=) + - revision - =[1]["data"]["collab_client_vars"]["rev"]= + - pad text - =[1]["data"]["collab_client_vars"]["initialAttributedText"]["text"]= + - text attributes (as changset )- =[1]["data"]["collab_client_vars"]["initialAttributedText"]["attribs"]= + +authors + - author list - =[1]["data"]["collab_client_vars"]["historicalAuthorData"]= + - e.g. ="a.ltSpoKLpHyziPkDn": {"name": "someone", "colorId": 46)}= + +colo[u]rs +- array of hex values - =[1]["data"]["colorPalette"]= +- map authors -> colour - e.g. =[1]["data"]["collab_client_vars"]["historicalAuthorData"]["a.TcyaduN34UmzJIxa"]["colorId"]= + +plugins available + - listed in =[1]["data"]["plugins"]= + - e.g. =[1]["data"]["plugins"]["plugins"]["ep_comments_page"]= + - =["data"]["plugins"]["plugins"]["ep_etherpad-lite"]["package"]["description"]= + - =["data"]["plugins"]["plugins"]["ep_etherpad-lite"]["package"]["version"]= + +example/reduced + +#+BEGIN_SRC js +[ + "message", + { + "type": "CLIENT_VARS", + "data": { + "skinName": "colibris", + "skinVariants": "super-dark-toolbar super-dark-background dark-editor", + "randomVersionString": "0ec6de15", + "accountPrivs": { + "maxRevisions": 100 + }, + "automaticReconnectionTimeout": 5, + "initialRevisionList": [], + "initialOptions": { + "guestPolicy": "deny" + }, + "savedRevisions": [], + "collab_client_vars": { + "initialAttributedText": { + "text": "ethereal\n", + "attribs": "*0+8|1+1" + }, + "clientIp": "127.0.0.1", + "padId": "test2", + "historicalAuthorData": { + "a.ltSpoKLpHyziPkDn": { + "name": null, + "colorId": 46 + }, + "a.touCZaixjPgKDSiN": { + "name": null, + "colorId": 7 + }, + "a.TcyaduN34UmzJIxa": { + "name": null, + "colorId": 31 + } + }, + "apool": { + "numToAttrib": { + "0": [ + "author", + "a.touCZaixjPgKDSiN" + ] + }, + "nextNum": 1 + }, + "rev": 174, + "time": 1607568522484 + }, + "colorPalette": [ + "#ffc7c7", + "#fff1c7", + "#e3ffc7", + "#c7ffd5", + "#c7ffff", + "#c7d5ff", + "#e3c7ff", + "#ffc7f1", + "#ffa8a8", + "#ffe699", + "#cfff9e", + "#99ffb3", + "#a3ffff", + "#99b3ff", + "#cc99ff", + "#ff99e5", + "#e7b1b1", + "#e9dcAf", + "#cde9af", + "#bfedcc", + "#b1e7e7", + "#c3cdee", + "#d2b8ea", + "#eec3e6", + "#e9cece", + "#e7e0ca", + "#d3e5c7", + "#bce1c5", + "#c1e2e2", + "#c1c9e2", + "#cfc1e2", + "#e0bdd9", + "#baded3", + "#a0f8eb", + "#b1e7e0", + "#c3c8e4", + "#cec5e2", + "#b1d5e7", + "#cda8f0", + "#f0f0a8", + "#f2f2a6", + "#f5a8eb", + "#c5f9a9", + "#ececbb", + "#e7c4bc", + "#daf0b2", + "#b0a0fd", + "#bce2e7", + "#cce2bb", + "#ec9afe", + "#edabbd", + "#aeaeea", + "#c4e7b1", + "#d722bb", + "#f3a5e7", + "#ffa8a8", + "#d8c0c5", + "#eaaedd", + "#adc6eb", + "#bedad1", + "#dee9af", + "#e9afc2", + "#f8d2a0", + "#b3b3e6" + ], + "clientIp": "127.0.0.1", + "userIsGuest": true, + "userColor": 7, + "padId": "test2", + "padOptions": { + "noColors": false, + "showControls": true, + "showChat": false, + "showLineNumbers": false, + "useMonospaceFont": false, + "userName": true, + "userColor": true, + "alwaysShowChat": false, + "chatAndUsers": false, + "ShowComments": true, + "lang": "en-gb", + "rtl": false + }, + "padShortcutEnabled": { + "altF9": true, + "altC": true, + "cmdShift2": true, + "delete": true, + "return": true, + "esc": true, + "cmdS": true, + "tab": true, + "cmdZ": true, + "cmdY": true, + "cmdI": true, + "cmdB": true, + "cmdU": true, + "cmd5": true, + "cmdShiftL": true, + "cmdShiftN": true, + "cmdShift1": true, + "cmdShiftC": true, + "cmdH": true, + "ctrlHome": true, + "pageUp": true, + "pageDown": true + }, + "initialTitle": "Pad: test2" + } + } +] + +#+END_SRC + + +* various tools & accessories + + - Firefox/Chrome/Safari -> network/ws/messages/console/log etc + - =git clone https://github.com/guyzmo/PyEtherpadLite= + - wscat + - netcat + + +* testing & tracing + +#+BEGIN_SRC emacs-lisp +(defun ethertest-loop () + (interactive) + (with-current-buffer *etherpad-buffer* + (let ((server-url "wss://example.org/socket.io/?EIO=3&transport=websocket") + (pad "test")) + (text-mode) + (etherpad-mode) + (ethersync-current-socket + (websocket-open subtest + :on-message #'ethersync-parse-wsframe + :on-error (lambda (_websocket type err) + (message "ws error: %s %s" type err)) + :on-close (lambda (_websocket) + (message "websocket closed")))) + (let* ((*subtest-socket* (ethersync-current-socket))) + (message "protocols: %s" (websocket-negotiated-protocols *subtest-socket*)) + (message "extensions: %s" (websocket-negotiated-extensions *subtest-socket*)) + (message "cookies? %s" url-cookie-storage) + ;; init & keep alive + (ethersync-heartbeat-start) + (sleep-for 1) + ;; request data + (wss-send (ethersync--request-client-ready pad)) + ;; etcn + )))) +#+END_SRC + + + +#+BEGIN_SRC shell + ❯ wscat -c "wss://example.org/socket.io/?EIO=3&transport=websocket" + Connected (press CTRL+C to quit) + < 0{"sid":"6_TVij3sJug26KFLAAGc","upgrades":[],"pingInterval":25000,"pingTimeout":5000} + < 40 + > +#+END_SRC diff --git a/notes/proto-x1.png b/notes/proto-x1.png new file mode 100644 index 0000000000000000000000000000000000000000..4138a40978dfb10e698b22243bc4dcf8420c5ac4 GIT binary patch literal 62678 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�hI!6^ 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 Uxlv^058!hL@<65R<`e(_03hi1@&Et; literal 0 HcmV?d00001