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:
parent
2be45b4a25
commit
360aa448d3
@ -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
|
||||
|
||||
|
@ -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)))))
|
||||
|
@ -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)))
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
|
@ -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)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user