iens

Manager of links to read
git clone https://git.instinctive.eu/iens.git
Log | Files | Refs | README | LICENSE

commit f95d6d2f9dc1537ab4a7e3f42f2994523f0224ab
parent 387eeade464331b784795acae0e24437a98bc860
Author: Natasha Kerensikova <natgh@instinctive.eu>
Date:   Thu,  9 Apr 2026 18:41:59 +0000

Description of ien is pre-filled
Diffstat:
Msrc/iens.scm | 36+++++++++++++++++++++++++++++++++---
1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/src/iens.scm b/src/iens.scm @@ -25,7 +25,9 @@ (chicken time posix) breadline breadline-scheme-completion + http-client lowdown + rss sql-de-lite srfi-1 sxml-serializer) @@ -958,18 +960,46 @@ ;;;;;;;;;;;;;;;;;;;; ;; Editor Spawning +(define (comment-link section url) + (let* ((rss-url (query fetch-value + (sql db "SELECT url FROM source_rss WHERE name=?;") + section))) + (if rss-url + (let ((rss (with-input-from-request rss-url #f rss:read))) + (let loop ((items (rss:feed-items rss))) + (cond + ((null? items) #f) + ((string=? url (rss:item-link (car items))) + (alist-ref 'comments (rss:item-attributes (car items)))) + (else (loop (cdr items)))))) + #f))) + (define (edit-descr* entry-id) (let ((file-name (create-temporary-file (string-append "." (get-config/default "description-ext" "txt")))) (fields (query fetch-row - (sql db "SELECT description,notes FROM entry WHERE id=?;") + (sql db "SELECT description,notes,url FROM entry WHERE id=?;") entry-id))) - (when fields + (unless (null? fields) (call-with-output-file file-name (lambda (port) - (unless (null? (car fields)) + (if (or (null? (car fields)) (string=? (car fields) "")) + (let* ((s-sec (substring-index "[" (cadr fields))) + (e-sec (if s-sec + (substring-index "]" (cadr fields) s-sec) + #f)) + (sect (if e-sec + (substring (cadr fields) (+ s-sec 1) e-sec) #f)) + (comm (if sect (comment-link sect (caddr fields)) #f))) + (write-string (conc " + [](" (caddr fields) ")\n") #f port) + (when sect + (write-string + (conc "(via " + (if comm (conc "[" sect "](" comm ")") sect) + " sur #gcufeed)\n") + #f port))) (write-string (car fields) #f port)) (unless (null? (cadr fields)) (write-string "-+-+-\n" #f port)