anchor.diff:        participants))
   
   (defmethod conversations ((user user))
  +  "Retrieve the conversations the user has participated in. Note that this only works for the logged in user."
     (flet ((make-conversation (node)
  -           (format T "~a" ($ node (serialize)))
              (make-instance 'conversation
                             :id (let ((id ($ node "h3.title a" (first) (attr :href) (node))))
  -                                (subseq id (1+ (search "/" id)) (1- (search "/" id :from-end T))))
  +                                (subseq id (1+ (search "/" id)) (search "/" id :from-end T)))
                             :op ($ node (attr :data-author) (node))
                             :time (let ((datetime ($ node ".posterDate .DateTime" (attr :data-time) (node))))
                                     (if (> (length datetime) 0)
  
positive.code:                  :title ($ ".titleBar h1" (text) (node))))
  
  (defmethod get-posts ((conversation conversation) &key)
    ($ (initialize (token-request (concatenate 'string "/conversations/" (id conversation)) NIL) :type :HTML))
    ;TODO: (crawl-posts)
    )
  
  (defmethod post ((conversation conversation) message &key)
    (token-request (concatenate 'string "/conversations/" (id conversation) "/insert-reply")
                   `(("message_html" . ,message))))
  
  (defmethod invite ((conversation conversation) participants)
    (assert (string-equal (id *user*) (op conversation)) ()
            'forum-error :code 4 :text (format NIL "Cannot invite users as you are not the OP (~a != ~a)." (id *user*) (op conversation)))
    (token-request (concatenate 'string "/conversations/" (id conversation) "/invite-insert")
  
negative.code: (in-package :org.tymoonnext.ed-bot.xencl)
  
  (defclass conversation (meta-thread)
    ()
    (:documentation "Object for interacting with user conversations."))
  
  (defclass conversation-post (meta-post)
    ()
    (:documentation "A post in a private conversation thread."))
  
  (defmethod print-object ((conversation conversation) out)
    (print-unreadable-object (conversation out :type T)
  