Insert message to database
This commit is contained in:
parent
1da8533288
commit
e354b01213
65
idec-db.el
65
idec-db.el
|
@ -79,13 +79,21 @@
|
||||||
([(id :primary-key)
|
([(id :primary-key)
|
||||||
tags
|
tags
|
||||||
author
|
author
|
||||||
to
|
recipient
|
||||||
|
repto
|
||||||
echo
|
echo
|
||||||
subj
|
subj
|
||||||
(time :timestamp)
|
|
||||||
(body :text)
|
(body :text)
|
||||||
(unread integer :default 1)])
|
(time :timestamp)
|
||||||
])
|
(unread integer :default 1)])])
|
||||||
|
(emacsql (open-echo-db echo)
|
||||||
|
[:create-table outbox
|
||||||
|
([
|
||||||
|
(time :timestamp)
|
||||||
|
recipient
|
||||||
|
subj
|
||||||
|
(body :text)
|
||||||
|
])])
|
||||||
t)
|
t)
|
||||||
|
|
||||||
(defun init-echo-db (echo)
|
(defun init-echo-db (echo)
|
||||||
|
@ -98,20 +106,41 @@
|
||||||
(defun insert-message-to-db (msg id &optional mark-read)
|
(defun insert-message-to-db (msg id &optional mark-read)
|
||||||
"Insert MSG ID to echo db;
|
"Insert MSG ID to echo db;
|
||||||
unread by default, but you can MARK-READ it."
|
unread by default, but you can MARK-READ it."
|
||||||
(if (not (emacsql (open-echo-db (get-message-field msg "echo"))
|
(when (check-message-in-db id (get-message-field msg "echo"))
|
||||||
[:insert :into messages
|
(when (not mark-read)
|
||||||
:values ([$s1 $s2 $s3 $s4 $s5 $s6 $s7 $s8 $s9])]
|
(setq mark-read 1))
|
||||||
id
|
(let (repto)
|
||||||
(get-message-field msg "tags")
|
(setq repto "")
|
||||||
(get-message-field msg "author")
|
;; Check repto tag
|
||||||
(get-message-field msg "recipient")
|
(if (string-match "repto" (get-message-field msg "tags"))
|
||||||
(get-message-field msg "echo")
|
(setq repto (nth 3 (split-string (get-message-field msg "tags") "/"))))
|
||||||
(get-message-field msg "subj")
|
|
||||||
(get-message-field msg "time")
|
(if (not (emacsql (open-echo-db (get-message-field msg "echo"))
|
||||||
(s-join "\n" (get-message-field msg "body"))
|
[:insert :into messages
|
||||||
mark-read))
|
:values ([$s1 $s2 $s3 $s4 $s5 $s6 $s7 $s8 $s9 $s10])]
|
||||||
(message (concat "IDEC: Message " id " stored in db"))
|
id
|
||||||
(message (concat "IDEC: Problem to store message " id))))
|
(get-message-field msg "tags")
|
||||||
|
(get-message-field msg "author")
|
||||||
|
(get-message-field msg "recipient")
|
||||||
|
repto
|
||||||
|
(get-message-field msg "echo")
|
||||||
|
(get-message-field msg "subj")
|
||||||
|
(get-message-field msg "time")
|
||||||
|
(s-join "\n" (get-message-field msg "body"))
|
||||||
|
mark-read))
|
||||||
|
(message (concat "IDEC: Message " id " stored in db"))
|
||||||
|
(message (concat "IDEC: Problem to store message " id))))
|
||||||
|
))
|
||||||
|
|
||||||
|
(defun get-message-from-db (msgid echo)
|
||||||
|
"Retrieve message by MSGID from ECHO database."
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun delete-message-from-db (msgid echo)
|
||||||
|
"Delete message by MSGID from ECHO database."
|
||||||
|
(when (not
|
||||||
|
(emacsql (open-echo-db echo) [:delete :from messages :where (= id $s1)] msgid))
|
||||||
|
(message (concat "IDEC: Message " msgid " deleted"))))
|
||||||
|
|
||||||
(defun check-message-in-db (msgid echo)
|
(defun check-message-in-db (msgid echo)
|
||||||
"Check message MSGID in ECHO database."
|
"Check message MSGID in ECHO database."
|
||||||
|
|
4
idec.el
4
idec.el
|
@ -153,13 +153,9 @@ Default to `idec-download-offset'"
|
||||||
;; END OF NAVIGATION FUNCTIONS
|
;; END OF NAVIGATION FUNCTIONS
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
;; END OF MODE
|
|
||||||
;; ;;;;;;;;;;;
|
|
||||||
|
|
||||||
;; FUNCTIONS
|
;; FUNCTIONS
|
||||||
;; ;;;;;;;;;
|
;; ;;;;;;;;;
|
||||||
|
|
||||||
|
|
||||||
(defun get-url-content (url)
|
(defun get-url-content (url)
|
||||||
"Get URL content and return it without headers."
|
"Get URL content and return it without headers."
|
||||||
(with-current-buffer
|
(with-current-buffer
|
||||||
|
|
Loading…
Reference in New Issue
Block a user