|
@@ -41,7 +41,8 @@
|
|
"Start PHOTOGAL!"
|
|
"Start PHOTOGAL!"
|
|
(interactive (list (read-directory-name
|
|
(interactive (list (read-directory-name
|
|
"where are ur photos? " photogal-default-directory)))
|
|
"where are ur photos? " photogal-default-directory)))
|
|
- (setq *photogal/photoreel* (photogal-create-photo-roll photo-dir))
|
|
|
|
|
|
+ (setq photogal-photo-dir photo-dir)
|
|
|
|
+ (setq *photogal/photoreel* (photogal-create-photo-roll photogal-photo-dir))
|
|
(setq photogal-mode-map (make-sparse-keymap))
|
|
(setq photogal-mode-map (make-sparse-keymap))
|
|
(photogal-engage))
|
|
(photogal-engage))
|
|
|
|
|
|
@@ -102,6 +103,7 @@
|
|
(photogaldraw--insert-image (photogal--get-filepath current-photo))
|
|
(photogaldraw--insert-image (photogal--get-filepath current-photo))
|
|
(photogaldraw--newline)
|
|
(photogaldraw--newline)
|
|
(photogaldraw--insert-photo-tags current-photo)
|
|
(photogaldraw--insert-photo-tags current-photo)
|
|
|
|
+ (photogaldraw--insert-folders current-photo)
|
|
(photogaldraw--insert-photo-name current-photo)
|
|
(photogaldraw--insert-photo-name current-photo)
|
|
(photogaldraw--newline)
|
|
(photogaldraw--newline)
|
|
(photogaldraw--newline)
|
|
(photogaldraw--newline)
|
|
@@ -154,6 +156,14 @@
|
|
(insert (format "%s"
|
|
(insert (format "%s"
|
|
(mapcar #'photogaltag-tag-name (photogal--get-tags photo)))))
|
|
(mapcar #'photogaltag-tag-name (photogal--get-tags photo)))))
|
|
|
|
|
|
|
|
+(defun photogaldraw--insert-folders (photo)
|
|
|
|
+ (when (photogal--get-folders photo)
|
|
|
|
+ (photogaldraw--newline)
|
|
|
|
+ (photogaldraw--insert-print-color
|
|
|
|
+ (format "\ndest dir: %s"
|
|
|
|
+ (photogal--get-folders photo))
|
|
|
|
+ "light gray")))
|
|
|
|
+
|
|
(defun photogaldraw--insert-photo-name (photo)
|
|
(defun photogaldraw--insert-photo-name (photo)
|
|
(if (photogal--get-name photo)
|
|
(if (photogal--get-name photo)
|
|
(insert (format "\nName: %s" (photogal--get-name photo)))))
|
|
(insert (format "\nName: %s" (photogal--get-name photo)))))
|
|
@@ -244,6 +254,96 @@
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;; || || || << FILE OPS >> || || || ;;
|
|
|
|
+;; -- -- -- ------------- -- -- -- ;;
|
|
|
|
+;; -- -- shit that moves files around on -- -- ;;
|
|
|
|
+;; -- -- ~ disk ~ -- -- ;;
|
|
|
|
+;; -- -- -- ------------- -- -- -- ;;
|
|
|
|
+;; / / / \ \ \ ;;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+(defun photogal-add-folder-for-file (file folder)
|
|
|
|
+ "Append new folder for a file."
|
|
|
|
+ (let ((folders (photogal--get-folders file)))
|
|
|
|
+ (photogal--set-folders file
|
|
|
|
+ (seq-sort #'string< (seq-uniq (cons folder folders))))))
|
|
|
|
+
|
|
|
|
+(defun photogal-give-a-folder (name)
|
|
|
|
+ (interactive ;"sWhat folder do u wannan put this in ")
|
|
|
|
+ (list (read-directory-name
|
|
|
|
+ "What folder do u wannan put this in " photogal-default-directory)))
|
|
|
|
+ (let ((folder-name (directory-file-name name)))
|
|
|
|
+ (photogal-add-folder-for-file (photogal-current-file *photogal/photoreel*) folder-name)
|
|
|
|
+ (photogal-render *photogal/photoreel* *photogal/tags*)))
|
|
|
|
+
|
|
|
|
+(defun photogal-heavy-move-files-to-directory ()
|
|
|
|
+ ;; THIS DOES A LOTTA SHIT!!!
|
|
|
|
+ (defun rename-file-to-folders (file-rename)
|
|
|
|
+ (let* ((photo (car file-rename))
|
|
|
|
+ (origin-filepath (photogal--get-filepath photo))
|
|
|
|
+ (new-name (cdr file-rename)))
|
|
|
|
+ (when (photogal-photo-valid-for-committing-p photo)
|
|
|
|
+ (let ((dest-dirs (photogal--get-folders photo)))
|
|
|
|
+ (mapcar (lambda (directory)
|
|
|
|
+ (make-directory directory 'parents)
|
|
|
|
+ (let ((new-file-name (expand-file-name new-name directory)))
|
|
|
|
+ (message (format "renaming %s to %s" origin-filepath new-file-name))
|
|
|
|
+ (copy-file origin-filepath new-file-name)))
|
|
|
|
+ dest-dirs)
|
|
|
|
+ (delete-file origin-filepath)))))
|
|
|
|
+ (let* ((new-names (photogal-files--new-filenames-for-photos)))
|
|
|
|
+ (mapcar
|
|
|
|
+ #'rename-file-to-folders
|
|
|
|
+ new-names)
|
|
|
|
+ (setq *photogal/photoreel* (photogal-create-photo-roll photogal-photo-dir))
|
|
|
|
+ (photogal-render *photogal/photoreel* *photogal/tags*)))
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+;; \ \ \ / / / ;;
|
|
|
|
+;; -- -- -- ------------- -- -- -- ;;
|
|
|
|
+;; || || || << FILE OPS >> || || || ;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
@@ -431,9 +531,9 @@
|
|
;; ("C-d" . photogal-delete-tag)
|
|
;; ("C-d" . photogal-delete-tag)
|
|
("C-f" photogal-show-filepath "show path")
|
|
("C-f" photogal-show-filepath "show path")
|
|
;; ("C-r" . photogal-resize-photo)
|
|
;; ("C-r" . photogal-resize-photo)
|
|
- ;; ("C-c" . photogal-compile-and-commit)
|
|
|
|
|
|
+ ("C-c" photogal-compile-and-commit "save/move photos")
|
|
("C-n" photogal-name-the-file "name the photo")
|
|
("C-n" photogal-name-the-file "name the photo")
|
|
- ;; ("C-o" . photogal-give-a-folder)
|
|
|
|
|
|
+ ("C-o" photogal-give-a-folder "put in folder?")
|
|
("C-g" photogal-engage "redraw buffer!")))
|
|
("C-g" photogal-engage "redraw buffer!")))
|
|
|
|
|
|
(defun photogal-next-file ()
|
|
(defun photogal-next-file ()
|
|
@@ -463,6 +563,12 @@
|
|
nil)))
|
|
nil)))
|
|
(photogal-render *photogal/photoreel* *photogal/tags*))
|
|
(photogal-render *photogal/photoreel* *photogal/tags*))
|
|
|
|
|
|
|
|
+(defun photogal-compile-and-commit ()
|
|
|
|
+ (interactive)
|
|
|
|
+ (if (y-or-n-p (format "Are u sure? "))
|
|
|
|
+ (photogal-heavy-move-files-to-directory)
|
|
|
|
+ (message "whoops")))
|
|
|
|
+
|
|
|
|
|
|
;; \ \ \ / / / ;;
|
|
;; \ \ \ / / / ;;
|
|
;; -- -- -- ------------- -- -- -- ;;
|
|
;; -- -- -- ------------- -- -- -- ;;
|
|
@@ -640,7 +746,7 @@
|
|
(directory-files directory
|
|
(directory-files directory
|
|
t directory-files-no-dot-files-regexp))
|
|
t directory-files-no-dot-files-regexp))
|
|
|
|
|
|
- (let ((destination-dir (concat photo-dir "-photogal"))
|
|
|
|
|
|
+ (let ((destination-dir (concat (directory-file-name photo-dir) "-photogal"))
|
|
(idx 0))
|
|
(idx 0))
|
|
(mapcar (lambda (photo) (photogal--set-index photo (cl-incf idx)))
|
|
(mapcar (lambda (photo) (photogal--set-index photo (cl-incf idx)))
|
|
(photogalroll--assemble destination-dir))))
|
|
(photogalroll--assemble destination-dir))))
|
|
@@ -767,12 +873,12 @@
|
|
(mapcar #'photogaltag-tag-name
|
|
(mapcar #'photogaltag-tag-name
|
|
(photogal--get-tags photo)))
|
|
(photogal--get-tags photo)))
|
|
(name (photogal--get-name photo)))
|
|
(name (photogal--get-name photo)))
|
|
- (photogal-files--new-file-name-for-photo filepath tags name)))
|
|
|
|
|
|
+ (photogal-files--new-file-name-for-photo photo filepath tags name)))
|
|
*photogal/photoreel*))
|
|
*photogal/photoreel*))
|
|
|
|
|
|
-(defun photogal-files--new-file-name-for-photo (filepath tags name)
|
|
|
|
|
|
+(defun photogal-files--new-file-name-for-photo (photo filepath tags name)
|
|
(cons
|
|
(cons
|
|
- filepath
|
|
|
|
|
|
+ photo
|
|
(let (( new-name (concat
|
|
(let (( new-name (concat
|
|
(photogal-files--generate-unique-identifier filepath)
|
|
(photogal-files--generate-unique-identifier filepath)
|
|
"-"
|
|
"-"
|