You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
4.6 KiB
EmacsLisp

(unless (string-equal system-type "android")
(unless (string-equal user-login-name "3055822")
(require 'org-capture)
(defun findread ()
"Find or create heading for read books"
(filedate)
(goto-char (point-min))
(if (not (search-forward "** read" nil t))
(if (not (search-forward "* books" nil t))
(progn
(goto-char (point-max))
(insert "* books\n** read"))
(insert "\n** read"))))
(defun findacquired ()
"Find or create heading for acquired books"
(filedate)
(goto-char (point-min))
(if (not (search-forward "** obtained" nil t))
(if (not (search-forward "* books" nil t))
(progn
(goto-char (point-max))
(insert "* books\n** obtained"))
(insert "\n** obtained"))))
(defun findwatched ()
"Find or create heading for watched films"
(filedate)
(goto-char (point-min))
(if (not (search-forward "** watched" nil t))
(if (not (search-forward "* films" nil t))
(progn
(goto-char (point-max))
(insert "* films\n** watched"))
(insert "\n** watched"))))
(defun findvisited ()
"Find or create heading for visited places"
(filedate)
(goto-char (point-min))
(if (not (search-forward "** visited" nil t))
(if (not (search-forward "* places" nil t))
(progn
(goto-char (point-max))
(insert "* places\n** visited"))
(insert "\n** visited"))))
(defun finddw ()
"Find or create heading for DW posts"
(filedate)
(goto-char (point-min))
(if (not (search-forward "* dw" nil t))
(progn
(goto-char (point-max))
(insert "* dw"))))
(defun therating ()
"Rate some media"
(setq therating nil)
(setq ratingreturn "")
(setq therating (completing-read "Rating: " '("1" "2" "3" "4" "5")))
(when (equal therating "1")
(setq ratingreturn " and rated ★"))
(when (equal therating "2")
(setq ratingreturn " and rated ★★"))
(when (equal therating "3")
(setq ratingreturn " and rated ★★★"))
(when (equal therating "4")
(setq ratingreturn " and rated ★★★★"))
(when (equal therating "5")
(setq ratingreturn " and rated ★★★★★"))
ratingreturn)
(defun thevisitdate ()
"Add dates for a visit"
(setq visitreturn "")
(setq visitstart (read-string "Start date (YYYY-MM-DD): " ))
(unless (equal visitstart "")
(setq visitend (read-string "End date (YYYY-MM-DD): " ))
(setq visitreturn (concat " <" visitstart ">--<" visitend ">")))
visitreturn)
(defun findperf ()
"Find or create heading for performances"
(filedate)
(goto-char (point-min))
(if (not (search-forward "* performances" nil t))
(progn
(goto-char (point-max))
(insert "* performances"))))
(defun setensemble ()
"Get the ensemble performed with"
(setq ensembles (s-split "\n" (f-read "~/Documents/drive/admin/emacs/ensembles.txt") t))
(setq theensemble (completing-read "Ensemble: " ensembles))
theensemble)
(defun setvenue ()
(setq venues (s-split "\n" (f-read "~/Documents/drive/admin/emacs/venues.txt") t))
(setq thevenue (completing-read "Venue: " venues))
thevenue)
(setq org-default-notes-file (concat "~/Documents/drive/org/journal/" (format-time-string "%Y/%m/%Y-%m-%d") ".org"))
(setq org-capture-templates
'(("a" "Acquired book" entry
(file+function "" findacquired)
"* %^{Author} /%^{Title}/"
:jump-to-captured t)
("b" "Read book" entry
(file+function "" findread)
"* %^{Author} /%^{Title}/%(therating)"
:jump-to-captured t)
("d" "DW post" entry
(file+function "" finddw)
"* %^{Title}\n%?"
:jump-to-captured t)
("f" "Watched film" entry
(file+function "" findwatched)
"* %^{Title} (%^{Year})%(therating)"
:jump-to-captured t)
("m" "Musical performance" entry
(file+function "" findperf)
"* %(setensemble)\n** %^{Performance name} (%(setvenue))\n%?"
:jump-to-captured t)
("p" "Visited place" entry
(file+function "" findvisited)
"* %^{Place}%(thevisitdate)"
:jump-to-captured t)))
(global-set-key (kbd "C-c c") #'org-capture)))