123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- (setq *photo-dir* (directory-file-name "/Users/jwd/bench/photos/"))
- (setq *operating-photo-dir* (concat *photo-dir* "-photogal"))
- (setq *my-tags* nil)
- (setq *photogal-operating-table* (mapcar (lambda (photo)
- (cons (list 'photo) photo))
- (all-photos)))
- (defun photogal-add-tag (file tag)
- (let ((tags (car (rassoc file *photogal-operating-table*))))
- (setcar (rassoc file *photogal-operating-table*) (cons tag tags))))
- (delete-directory *operating-photo-dir* t)
- (copy-directory *photo-dir* *operating-photo-dir*)
- (defun all-photos ()
- (directory-files *operating-photo-dir* t directory-files-no-dot-files-regexp))
- (all-photos)
- (define-derived-mode photogal-mode text-mode "photogal"
- "Major mode for grouping and labeling images.")
- (defun photogal-init ()
- (interactive)
- (let ((buf (get-buffer-create "photogal"))
- (photos (all-photos)))
- (with-current-buffer buf
- (photogal-mode)
- (erase-buffer)
- (insert "\n")
- (insert " ")
- (insert-image
- ;; (create-image (car photos) 'imagemagick nil :width (- (window-pixel-width) 75))
- (create-image (car photos) 'imagemagick nil :height (/ (window-pixel-height) 2)))
- (insert "\n\n")
- )
- buf)
- (switch-to-buffer (get-buffer-create "photogal")))
- (defun photogal-selfie ()
- (interactive)
- (photogal-add-tag *photogal-current-file* "selfie")
- (message *photogal-current-file*))
- (transient-define-prefix photogal-tag ()
- [["Commit"
- ("c" "Tag: selfie" photogal-selfie)]]
- (interactive)
- (setq *my-photo-args* (transient-args 'photogal-categorize))
- (message (transient-args 'photogal-categorize))
- (transient-setup 'photogal-tag))
- (setq photogal-raw-tags '(("s" . "selfie") ("c" . "cityscape")))
- (defun photogal-auto-tags ()
- (let ((args (mapcar (lambda (tag) (list (car tag) " " (cdr tag))) photogal-raw-tags)))
- (vconcat (cons "Arguments"
- args))))
- (setq photogal-tags
- (photogal-auto-tags))
- (defun photogal-add-tag (new-tag new-tag-code)
- (interactive "sNew tag: \nsTag code: ")
- (setq photogal-raw-tags
- (cons (cons new-tag-code new-tag) photogal-raw-tags))
- (setq photogal-tags (photogal-auto-tags))
- (eval `(transient-define-prefix photogal-categorize ()
- "Tag a photo."
- ,photogal-tags
- [["Tag"
- ("t" "Tag" photogal-tag)
- ("a" "Add tag" photogal-add-tag)]]
- (interactive)
- (setq *photogal-current-file* (car (all-photos)))
- (transient-setup 'photogal-categorize)))
- (transient-setup 'photogal-categorize))
- (transient-define-prefix photogal-categorize ()
- "Tag a photo."
- photogal-tags
- [["Tag"
- ("t" "Tag" photogal-tag)
- ("a" "Add tag" photogal-add-tag)]]
- (interactive)
- (setq *photogal-current-file* (car (all-photos)))
- (transient-setup 'photogal-categorize))
- (photogal-categorize)
- (message *my-tags*)
|