Pārlūkot izejas kodu

commit and move photos!

jordyn 1 gadu atpakaļ
vecāks
revīzija
c41e4a54d7
1 mainītis faili ar 113 papildinājumiem un 7 dzēšanām
  1. 113 7
      photogal.el

+ 113 - 7
photogal.el

@@ -41,7 +41,8 @@
   "Start PHOTOGAL!"
   (interactive (list (read-directory-name
 		      "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))
   (photogal-engage))
 
@@ -102,6 +103,7 @@
       (photogaldraw--insert-image (photogal--get-filepath current-photo))
       (photogaldraw--newline)
       (photogaldraw--insert-photo-tags current-photo)
+      (photogaldraw--insert-folders current-photo)
       (photogaldraw--insert-photo-name current-photo)
       (photogaldraw--newline)
       (photogaldraw--newline)
@@ -154,6 +156,14 @@
   (insert (format "%s"
 		  (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)
   (if (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-f" photogal-show-filepath "show path")
     ;; ("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-o" . photogal-give-a-folder)
+    ("C-o" photogal-give-a-folder "put in folder?")
     ("C-g" photogal-engage "redraw buffer!")))
 
 (defun photogal-next-file ()
@@ -463,6 +563,12 @@
        nil)))
   (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
 		     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))
     (mapcar (lambda (photo) (photogal--set-index photo (cl-incf idx)))
 	    (photogalroll--assemble destination-dir))))
@@ -767,12 +873,12 @@
 	    (mapcar #'photogaltag-tag-name
 		    (photogal--get-tags 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*))
 
-(defun photogal-files--new-file-name-for-photo (filepath tags name)
+(defun photogal-files--new-file-name-for-photo (photo filepath tags name)
   (cons
-   filepath
+   photo
    (let (( new-name (concat
 		     (photogal-files--generate-unique-identifier filepath)
 		     "-"