mirror of
https://codeberg.org/cage/tinmop/
synced 2025-02-13 07:30:35 +01:00
- fixed parsing of gempub metadata.
This commit is contained in:
parent
6b81d0eefd
commit
70cbc96191
@ -57,8 +57,12 @@
|
|||||||
gempub-version
|
gempub-version
|
||||||
gempub-cover))
|
gempub-cover))
|
||||||
|
|
||||||
(defrule gempub-entry (and gempub-key (? gempub-blanks) gempub-key-value-separator
|
(defrule linebreak (or #\NewLine #\Return))
|
||||||
(? gempub-blanks) gempub-value #\NewLine)
|
|
||||||
|
(defrule gempub-entry (or (and gempub-key (? gempub-blanks) gempub-key-value-separator
|
||||||
|
(? gempub-blanks) gempub-value (+ linebreak))
|
||||||
|
(and gempub-key (? gempub-blanks) gempub-key-value-separator
|
||||||
|
(? gempub-blanks) gempub-value))
|
||||||
(:function (lambda (a) (list (first a) (fifth a)))))
|
(:function (lambda (a) (list (first a) (fifth a)))))
|
||||||
|
|
||||||
(defrule gempub-metadata (* gempub-entry)
|
(defrule gempub-metadata (* gempub-entry)
|
||||||
@ -79,7 +83,10 @@
|
|||||||
(when (find +metadata-entry-name+ entries :test #'String=)
|
(when (find +metadata-entry-name+ entries :test #'String=)
|
||||||
(when-let ((metadata-raw (os-utils:unzip-single-file zip-file
|
(when-let ((metadata-raw (os-utils:unzip-single-file zip-file
|
||||||
+metadata-entry-name+)))
|
+metadata-entry-name+)))
|
||||||
(parse 'gempub-metadata metadata-raw))))))
|
(handler-case
|
||||||
|
(parse 'gempub-metadata metadata-raw)
|
||||||
|
(error (e)
|
||||||
|
(error "Error parsing metadata from file ~s: ~a" zip-file e))))))))
|
||||||
|
|
||||||
(defun save-metadata (zip-file)
|
(defun save-metadata (zip-file)
|
||||||
(when-let ((metadata (extract-metadata zip-file)))
|
(when-let ((metadata (extract-metadata zip-file)))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user