diff options
author | Boutade <thegoofist@protonmail.com> | 2019-09-23 09:57:52 -0500 |
---|---|---|
committer | Boutade <thegoofist@protonmail.com> | 2019-09-23 09:57:52 -0500 |
commit | 7d7ccc3139247b3a9d997698d9ce16f5a8784050 (patch) | |
tree | ce114789eb0f78c6cbea14f88e1df5e32e8a5d4b /granolin.lisp |
initial commit
Diffstat (limited to 'granolin.lisp')
-rw-r--r-- | granolin.lisp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/granolin.lisp b/granolin.lisp new file mode 100644 index 0000000..8179a66 --- /dev/null +++ b/granolin.lisp @@ -0,0 +1,39 @@ + +;;;; granolin.lisp + +(in-package #:granolin) + +;;; Login https://matrix.org/docs/spec/client_server/r0.5.0#id242 +;;; Media Upload https://matrix.org/docs/spec/client_server/r0.5.0#post-matrix-media-r0-upload + + + +(defclass client () + ((access-token + :reader login + :initarg :login + :initform (error "Clients need an access token.")) + (homeserver + :reader homeserver + :initarg :homeserver + :initform (error "Clients require a homeserver.")) + (rooms + :accessor rooms + :initform nil) + (users + :accessor users + :initform nil))) +;;TODO add things like transaction ids and time points + + +(defmethod initialize-instance :after ((client client) &key) + ;; fetch rooms + ;; fetch users + ;; fetch any other state that might be useful + ) + +;;; Sending Room Messages +(defgeneric send-message (client room msg) + (:documentation "Ends up sending an http request to the client's homeserver")) + + |