Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
Nie możesz wybrać więcej, niż 25 tematów
Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
|
- #|
-
- # File Attachments
-
- Attachment class for saving metadata into RDBMS
-
- See MITO-ATTACHMENT for more information: <https://github.com/fukamachi/mito-attachment>
-
- TODO AWS Storage / CC API Upload?
-
- Here's the bit of code for the FILEs:
-
- ;; (destructuring-bind (content filename content-type)
- ;; file
- ;; (if (and (eq (type-of content) 'flex::vector-input-stream)
- ;; (> (length (flex::vector-stream-vector content)) 0))
- ;; ...))
-
- |#
-
- (in-package #:cl-deck-builder2.models.attachment)
-
- (defclass attachment (mito-attachment:attachment) ()
- (:metaclass registered-table-class))
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (defun create-attachment (content file-key content-type)
- "Use CREATE-DAO to construct a new ATTACHMENT instance. Return the instance if successful, NIL otherwise."
- (create-dao 'attachment
- :content content
- :file-key file-key
- :content-type content-type))
-
- (defun attachment-valid-p (file)
- "Helper function. Ensure FILE data from Caveman has valid:
-
- - Type: 'FLEX::VECTOR-INPUT-STREAM
- - Filename: Length > 0
- - File Length: Content Length > 0"
- (destructuring-bind (content filename content-type)
- file
- ;; XXX Don't ignore content type?
- (declare (ignore content-type))
- (and (eq (type-of content) 'flex::vector-input-stream)
- (> (length (flex::vector-stream-vector content)) 0)
- (> (length filename) 0))))
|