1
0
mirror of https://codeberg.org/cage/tinmop/ synced 2025-02-24 09:17:37 +01:00

- ensured 'gempub-metadata-find' returns a single row;

- ensured gempub paths are normalized before adding in the library;
- added opening of gempub files from gempub library window.
This commit is contained in:
cage 2021-08-26 15:47:27 +02:00
parent 2be45b4a25
commit 360aa448d3
6 changed files with 19 additions and 8 deletions

View File

@ -445,9 +445,7 @@
(define-key "q" #'gempub-library-window-close *gempub-library-keymap*)
(define-key "C-J" #'gemini-delete-certificate *gemini-certificates-keymap*)
(define-key "C-J" #'gempub-open-file *gempub-library-keymap*)
;; tags keymap

View File

@ -3261,4 +3261,4 @@ days in the past"
(query (delete-from +table-gempub-metadata+ (where (:= :local-uri local-uri)))))
(defun gempub-metadata-find (local-uri)
(query (select :* (from +table-gempub-metadata+) (where (:= :local-uri local-uri)))))
(fetch-single (select :* (from +table-gempub-metadata+) (where (:= :local-uri local-uri)))))

View File

@ -109,7 +109,7 @@
(zip-info:zip-file-p local-uri)))
(push local-uri removed-known)
(db:gempub-metadata-delete local-uri))))
(loop for gempub-file in all-gempub-files do
(loop for gempub-file in (mapcar #'uri:normalize-path all-gempub-files) do
(when (not (db:gempub-metadata-find gempub-file))
(push gempub-file added-file)
(save-metadata gempub-file)))

View File

@ -2682,7 +2682,8 @@
:gempub-library-window-move
:gempub-library-window-go-up
:gempub-library-window-go-down
:gempub-library-window-close))
:gempub-library-window-close
:gempub-open-file))
(defpackage :scheduled-events
(:use

View File

@ -1133,8 +1133,14 @@
((zip-info:zip-file-p local-path)
(let ((temp-directory (fs:temporary-directory)))
(os-utils:unzip-file local-path temp-directory)
(setf (url object) temp-directory)
(push-event object)))
(let* ((library-entry (db:gempub-metadata-find local-path))
(index-file (and library-entry
(db:row-index-file library-entry))))
(misc:dbg "ii ~a ~a" local-path index-file)
(if index-file
(setf (url object) (fs:cat-parent-dir temp-directory index-file))
(setf (url object) temp-directory))
(push-event object))))
(t
(let* ((file-string (fs:slurp-file local-path))
(parent-dir (fs:parent-dir-path local-path))

View File

@ -2180,3 +2180,9 @@ gemini page the program is rendering."
(defun gempub-library-window-close ()
(close-window-and-return-to-message *gempub-library-window*))
(defun gempub-open-file ()
"Open the selected gempub."
(when-let* ((fields (line-oriented-window:selected-row-fields *gempub-library-window*))
(iri-to-open (db:row-local-uri fields)))
(gemini-viewer:load-gemini-url iri-to-open :give-focus-to-message-window t)))