Explorar o código

photogal's data has evolved!

break out from baby-steps cons cells into a plist to get arbitrary
attributes of a photo dataobject without complex c{a|d}r's.
jordyn %!s(int64=2) %!d(string=hai) anos
pai
achega
63e2f804cb
Modificáronse 1 ficheiros con 26 adicións e 14 borrados
  1. 26 14
      photogal.el

+ 26 - 14
photogal.el

@@ -2,13 +2,13 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;    PHOTOGAL    ;;;;;;;;;;;;;;;;;;;;;`;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; v1.0 ;;;;;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*;;;
 ;;                                                         ;;
 ;;  author: jordyn                          ,   -    *     ;;
 ;;  authored: spokane valley, summer '22      .          ` ;;
-;;                                                 ^ ~     ';
-;;    PHOTO                *    ,    '  . `   `  *      ,  ;;
-;;    , Grouper         '    `     .   ,* -   .            ;;
+;;                                           *     ^ ~     ';
+;;    PHOTO                *    ,    '  .     `  *      ,  ;;
+;;    , Grouper         '    `     .    * -   .            ;;
 ;; .      And        ,    ^ '  .  '  .   `  `      '       ;;
 ;;    `     Labeler    '   ,     * '      *                ;;
 ;;  ,     .   ,     `        '        .                    ;;
@@ -69,21 +69,29 @@
   (photogal--set-name (photogal--lookup-photo photo-filepath) name))
 
 ;; //             internal           \\ ;;
-(defun photogal--get-filepath (photo)
-  (car photo))
 (defun photogal--lookup-photo (photo-filepath)
   (assoc photo-filepath *photogal/operating-table*))
+
+(defun photogal--get-filepath (photo)
+  (plist-get photo 'filepath))
 (defun photogal--get-tags (photo)
   "What are all the tags for this file?"
-  (caadr photo))
+  (plist-get photo 'tags))
 (defun photogal--set-tags (photo tags)
-  (setcar (cadr photo)
-	  tags))
+  (plist-put photo 'tags
+	     tags))
+(defun photogal--get-folders (photo)
+  "What are all the folders for this file?"
+  (plist-get photo 'folders))
+(defun photogal--set-folders (photo folders)
+  (plist-put photo 'folders
+	     folders))
 (defun photogal--get-name (photo)
-  (cadadr photo))
+  (plist-get photo 'name))
 (defun photogal--set-name (photo name)
-  (setcar (cdadr photo)
-	  name))
+  (plist-put photo 'name
+	     name))
+
 ;; \\             internal           // ;;
 
 (defun photogal-advance-photo ()
@@ -116,11 +124,15 @@
 
 ;;;;  --  ----  --  -  INITIALIZATION   -  --  ----  --  ;;;;
 
+(defun photogal-make-photo (filepath)
+  `(filepath ,filepath
+	     tags ()
+	     name nil))
+
 (defun photogal-init-operating-table ()
   (setq *photogal/operating-table*
 	(mapcar (lambda (photo)
-		  ;; '(old-file-path (tags optional-name))
-		  (list photo (list '() nil)))
+		  (photogal-make-photo photo))
 		*photogal/all-photos*)))
 
 (defun photogal-generate-tag-commands ()