Message signature
This commit is contained in:
parent
c8c7a9a78b
commit
853ec765b9
|
@ -104,12 +104,15 @@
|
||||||
(switch-to-buffer (concat "*IDEC: New message to echo " echo "*"))
|
(switch-to-buffer (concat "*IDEC: New message to echo " echo "*"))
|
||||||
(let ((msg (make-hash-table :test 'equal)))
|
(let ((msg (make-hash-table :test 'equal)))
|
||||||
(puthash "body"
|
(puthash "body"
|
||||||
(encode-coding-string (s-join "\n" (-drop-last 1 (-drop 4 (split-string (buffer-string) "\n"))))
|
(encode-coding-string
|
||||||
'utf-8)
|
(s-join "\n" (-drop-last 1 (-drop 4 (split-string (buffer-string) "\n"))))
|
||||||
|
'utf-8)
|
||||||
|
msg)
|
||||||
|
|
||||||
(puthash "subj"
|
(puthash "subj"
|
||||||
(encode-coding-string (nth 1 (split-string (nth 2 (split-string (buffer-string) "\n")) "bj: "))
|
(encode-coding-string
|
||||||
'utf-8)
|
(nth 1 (split-string (nth 2 (split-string (buffer-string) "\n")) "bj: "))
|
||||||
|
'utf-8)
|
||||||
msg)
|
msg)
|
||||||
(puthash "echo" echo msg)
|
(puthash "echo" echo msg)
|
||||||
(do-send-new-post-request msg)))
|
(do-send-new-post-request msg)))
|
||||||
|
@ -122,7 +125,7 @@
|
||||||
"All"
|
"All"
|
||||||
(gethash "subj" msg)
|
(gethash "subj" msg)
|
||||||
""
|
""
|
||||||
(gethash "body" msg)))
|
(concat (gethash "body" msg) (idec-answers-insert-signature))))
|
||||||
;; Encode message in Base64
|
;; Encode message in Base64
|
||||||
(post-message (base64url-encode-string (s-join "\n" point-message)))))
|
(post-message (base64url-encode-string (s-join "\n" point-message)))))
|
||||||
|
|
||||||
|
@ -135,7 +138,7 @@
|
||||||
(gethash "subj" message)
|
(gethash "subj" message)
|
||||||
""
|
""
|
||||||
(concat "@repto:" (gethash "id" message))
|
(concat "@repto:" (gethash "id" message))
|
||||||
(gethash "body" message)))
|
(concat (gethash "body" message) (idec-answers-insert-signature))))
|
||||||
;; Encode message in Base64
|
;; Encode message in Base64
|
||||||
(post-message (base64url-encode-string (encode-coding-string (s-join "\n" point-message) 'utf-8)))
|
(post-message (base64url-encode-string (encode-coding-string (s-join "\n" point-message) 'utf-8)))
|
||||||
(kill-buffer (concat "*IDEC: answer to " (gethash "id" message) "*"))))
|
(kill-buffer (concat "*IDEC: answer to " (gethash "id" message) "*"))))
|
||||||
|
@ -199,7 +202,6 @@
|
||||||
(forward-line)
|
(forward-line)
|
||||||
(add-text-properties (point) (point-min) 'read-only)
|
(add-text-properties (point) (point-min) 'read-only)
|
||||||
(setq p (point))
|
(setq p (point))
|
||||||
|
|
||||||
(insert "\n")
|
(insert "\n")
|
||||||
(insert-text-button "[Send]"
|
(insert-text-button "[Send]"
|
||||||
'action (lambda (x) (send-reply-message (button-get x 'msg)))
|
'action (lambda (x) (send-reply-message (button-get x 'msg)))
|
||||||
|
@ -207,6 +209,12 @@
|
||||||
(goto-char p)
|
(goto-char p)
|
||||||
(idec)))
|
(idec)))
|
||||||
|
|
||||||
|
(defun idec-answers-insert-signature ()
|
||||||
|
"Add signature to the message."
|
||||||
|
(if idec-attach-message-signature
|
||||||
|
(concat "\n\n" "// " idec-message-signature)
|
||||||
|
""))
|
||||||
|
|
||||||
(defun idec-answers-get-author-for-quote (author)
|
(defun idec-answers-get-author-for-quote (author)
|
||||||
"Get AUTHOR."
|
"Get AUTHOR."
|
||||||
;; Parse author
|
;; Parse author
|
||||||
|
@ -244,8 +252,6 @@ receive string HEAD, list TAIL and original message AUTHOR."
|
||||||
(car (get-message-field (gethash "content" msg-hash) "body"))
|
(car (get-message-field (gethash "content" msg-hash) "body"))
|
||||||
(cdr (get-message-field (gethash "content" msg-hash) "body"))
|
(cdr (get-message-field (gethash "content" msg-hash) "body"))
|
||||||
(idec-answers-get-author-for-quote (get-message-field (gethash "content" msg-hash) "author")))
|
(idec-answers-get-author-for-quote (get-message-field (gethash "content" msg-hash) "author")))
|
||||||
(insert "\n")
|
|
||||||
|
|
||||||
(setq p (- (point) 1))
|
(setq p (- (point) 1))
|
||||||
|
|
||||||
;; [Send] button
|
;; [Send] button
|
||||||
|
@ -270,17 +276,17 @@ receive string HEAD, list TAIL and original message AUTHOR."
|
||||||
(defun edit-new-message (echo)
|
(defun edit-new-message (echo)
|
||||||
"Edit new message to ECHO."
|
"Edit new message to ECHO."
|
||||||
(switch-to-buffer (get-buffer-create (concat "*IDEC: New message to echo " echo "*")))
|
(switch-to-buffer (get-buffer-create (concat "*IDEC: New message to echo " echo "*")))
|
||||||
(insert (make-new-message-header echo))
|
|
||||||
(forward-line)
|
|
||||||
|
|
||||||
(let (p)
|
(let (p)
|
||||||
|
(insert (make-new-message-header echo))
|
||||||
(setq p (point))
|
(setq p (point))
|
||||||
|
(forward-line)
|
||||||
|
|
||||||
(insert "\n")
|
(insert "\n")
|
||||||
(insert-text-button "[Send]"
|
(insert-text-button "[Send]"
|
||||||
'action (lambda (x) (send-new-message (button-get x 'msg-echo)))
|
'action (lambda (x) (send-new-message (button-get x 'msg-echo)))
|
||||||
'msg-echo echo)
|
'msg-echo echo)
|
||||||
(goto-char p))
|
(goto-char p))
|
||||||
(org-idec))
|
(idec))
|
||||||
|
|
||||||
(provide 'idec-answers)
|
(provide 'idec-answers)
|
||||||
|
|
||||||
|
|
39
idec-mode.el
39
idec-mode.el
|
@ -97,6 +97,16 @@ Default to `idec-download-offset'"
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'idec)
|
:group 'idec)
|
||||||
|
|
||||||
|
(defcustom idec-message-signature "Sent from my GNU Emacs"
|
||||||
|
"Message signatue."
|
||||||
|
:type 'string
|
||||||
|
:group 'idec)
|
||||||
|
|
||||||
|
(defcustom idec-attach-message-signature nil
|
||||||
|
"Add or not signature to message."
|
||||||
|
:type 'boolean
|
||||||
|
:group 'idec)
|
||||||
|
|
||||||
(defgroup idec-accounts nil
|
(defgroup idec-accounts nil
|
||||||
"IDEC accounts settings."
|
"IDEC accounts settings."
|
||||||
:group 'idec)
|
:group 'idec)
|
||||||
|
@ -146,12 +156,9 @@ Default to `idec-download-offset'"
|
||||||
|
|
||||||
(defvar idec-mode-hook nil)
|
(defvar idec-mode-hook nil)
|
||||||
|
|
||||||
(defvar idec-mode-map
|
(defvar idec-mode-mode-map
|
||||||
(let ((map (make-sparse-keymap)))
|
(let ((map (make-sparse-keymap)))
|
||||||
(define-key map "\C-c \C-c" 'kill-this-buffer)
|
(define-key map "n" 'idec-new-message)
|
||||||
(define-key map "\C-c \C-n" 'idec-next-message)
|
|
||||||
(define-key map "\C-c \C-b" 'idec-previous-message)
|
|
||||||
(define-key map "\C-c \C-e" 'idec-new-message)
|
|
||||||
map)
|
map)
|
||||||
"Keymapping for IDEC mode.")
|
"Keymapping for IDEC mode.")
|
||||||
|
|
||||||
|
@ -179,7 +186,7 @@ Default to `idec-download-offset'"
|
||||||
;; Mode function
|
;; Mode function
|
||||||
(define-generic-mode
|
(define-generic-mode
|
||||||
'idec
|
'idec
|
||||||
'("//" ">" "ЗЫ" "# ")
|
'("//" ">" "ЗЫ")
|
||||||
'("ii://" "ID" "$subj" "сабж" "субж"
|
'("ii://" "ID" "$subj" "сабж" "субж"
|
||||||
"Subject" "From" "To" "Echo" "At")
|
"Subject" "From" "To" "Echo" "At")
|
||||||
'(("=" . 'font-lock-operator)
|
'(("=" . 'font-lock-operator)
|
||||||
|
@ -190,7 +197,7 @@ Default to `idec-download-offset'"
|
||||||
(define-derived-mode org-idec text-mode "IDEC"
|
(define-derived-mode org-idec text-mode "IDEC"
|
||||||
"Major mode for view and editing IDEC messages."
|
"Major mode for view and editing IDEC messages."
|
||||||
:syntax-table idec-mode-syntax-table
|
:syntax-table idec-mode-syntax-table
|
||||||
(setq-local comment-start "/{2} ")
|
(setq-local comment-start "> ")
|
||||||
(setq-local font-lock-defaults
|
(setq-local font-lock-defaults
|
||||||
'(idec-font-lock-keywords))
|
'(idec-font-lock-keywords))
|
||||||
(use-local-map idec-mode-map)
|
(use-local-map idec-mode-map)
|
||||||
|
@ -199,15 +206,13 @@ Default to `idec-download-offset'"
|
||||||
(setq mode-name "[IDEC]")
|
(setq mode-name "[IDEC]")
|
||||||
(run-hooks 'idec-mode-hook))
|
(run-hooks 'idec-mode-hook))
|
||||||
|
|
||||||
(defun idec-mode ()
|
(define-derived-mode idec-mode nil "idec-mode" ()
|
||||||
"Major mode for view and editing IDEC messages."
|
"Major mode for view and editing IDEC messages."
|
||||||
(interactive)
|
:syntax-table idec-mode-syntax-table
|
||||||
(kill-all-local-variables)
|
(kill-all-local-variables)
|
||||||
;; Mode definition
|
;; Mode definition
|
||||||
(set-syntax-table idec-mode-syntax-table)
|
(set-syntax-table idec-mode-syntax-table)
|
||||||
(use-local-map idec-mode-map)
|
(use-local-map idec-mode-map)
|
||||||
;; (font-lock-add-keywords 'idec-mode '(idec-font-lock-keywords))
|
|
||||||
;; (set (make-local-variable 'font-lock-defaults) '(idec-font-lock-keywords))
|
|
||||||
(setq major-mode 'idec-mode)
|
(setq major-mode 'idec-mode)
|
||||||
(setq mode-name "[IDEC]")
|
(setq mode-name "[IDEC]")
|
||||||
(setq imenu-generic-expression "*IDEC")
|
(setq imenu-generic-expression "*IDEC")
|
||||||
|
@ -224,7 +229,6 @@ Default to `idec-download-offset'"
|
||||||
"Browse local mail from `idec-mail-dir';
|
"Browse local mail from `idec-mail-dir';
|
||||||
optionaly return cursor to CHECKPOINT."
|
optionaly return cursor to CHECKPOINT."
|
||||||
(interactive)
|
(interactive)
|
||||||
(get-buffer-create "*IDEC: INBOX*")
|
|
||||||
(with-output-to-temp-buffer (get-buffer-create "*IDEC: INBOX*")
|
(with-output-to-temp-buffer (get-buffer-create "*IDEC: INBOX*")
|
||||||
(switch-to-buffer "*IDEC: INBOX*")
|
(switch-to-buffer "*IDEC: INBOX*")
|
||||||
(save-excursion
|
(save-excursion
|
||||||
|
@ -266,12 +270,11 @@ optionaly return cursor to CHECKPOINT."
|
||||||
'echo echo
|
'echo echo
|
||||||
'point (point))
|
'point (point))
|
||||||
(princ "]\n"))
|
(princ "]\n"))
|
||||||
(message (concat "IDEC: FUUUUUU <" echo ">")))
|
(message (concat "IDEC: FUUUUUU <" echo ">")))))
|
||||||
))
|
(when checkpoint
|
||||||
(put-text-property (beginning-of-buffer) (end-of-buffer) 'read-only nil))
|
(goto-char checkpoint)))
|
||||||
(if checkpoint
|
(idec-mode)
|
||||||
(goto-char checkpoint))
|
(add-text-properties (beginning-of-buffer) (end-of-buffer) 'read-only))
|
||||||
(idec))
|
|
||||||
|
|
||||||
(defun idec-browse-local-echo (&optional echo)
|
(defun idec-browse-local-echo (&optional echo)
|
||||||
"Get messages from local ECHO."
|
"Get messages from local ECHO."
|
||||||
|
|
Loading…
Reference in New Issue
Block a user