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.

122 lines
4.9 KiB
EmacsLisp

;; variables live here
(setq dw-username "tobli")
(setq dw-pin "0397")
(setq dw-defaultlocation "🏠")
(setq dw-iconfile "~/Documents/drive/org/iconchoose.el")
(setq lastfm-login t) ;; boolean
(setq lastfm-user "litrovers")
;;;;;;;;;;;;;;;;;;;;;;
3 years ago
(defun dwexport ()
(let ((org-export-with-author 'nil)
(org-export-with-creator 'nil)
(org-export-with-date 'nil)
(org-export-with-section-numbers 'nil)
(org-export-time-stamp-file 'nil)
(org-export-with-toc 'nil)
(org-html-validation-link 'nil))
(org-html-export-to-html))
(setq oldname (concat (file-name-base) ".org"))
(setq newname (concat (file-name-base) ".html"))
(find-file-noselect newname)
(with-current-buffer newname
(goto-char (point-min))
(setq delpoint-one (search-forward "<body>\n"))
(delete-region (point-min) delpoint-one)
(goto-char (point-max))
(setq delpoint-two (search-backward "</body>"))
(delete-region delpoint-two (point-max))
3 years ago
(write-file newname)))
3 years ago
(defun dwdraft ()
(interactive)
(dwexport)
(with-current-buffer newname
3 years ago
(kill-ring-save (point-min) (point-max)))
(kill-buffer newname)
(with-current-buffer oldname
(delete-file newname)))
(defun dwsecurity ()
3 years ago
(setq security (completing-read-multiple "Security (public, access, private): " '("public" "access" "private")))
(if (not security)
(setq security "skip"))
(if (equal security "skip")
(sleep-for 0)
(insert (concat "post-security: "
(let* ((securityjunk
(format "%S" security))
(end (- (length securityjunk) 2)))
(substring securityjunk 2 end))"\n"))))
(defun dwmood ()
3 years ago
(setq mood (completing-read-multiple "Mood: " '("accomplished" "aggravated" "amused" "angry" "annoyed" "anxious" "apathetic" "artistic" "awake" "bitchy" "blah" "blank" "bored" "bouncy" "busy" "calm" "cheerful" "chipper" "cold" "complacent" "confused" "contemplative" "content" "cranky" "crappy" "crazy" "creative" "crushed" "curious" "cynical" "depressed" "determined" "devious" "dirty" "disappointed" "discontent" "distressed" "ditzy" "dorky" "drained" "drunk" "ecstatic" "embarrassed" "energetic" "enraged" "enthralled" "envious" "exanimate" "excited" "exhausted" "flirty" "frustrated" "full" "geeky" "giddy" "giggly" "gloomy" "good" "grateful" "groggy" "grumpy" "guilty" "happy" "high" "hopeful" "horny" "hot" "hungry" "hyper" "impressed" "indescribable" "indifferent" "infuriated" "intimidated" "irate" "irritated" "jealous" "jubilant" "lazy" "lethargic" "listless" "lonely" "loved" "melancholy" "mellow" "mischievous" "moody" "morose" "naughty" "nauseated" "nerdy" "nervous" "nostalgic" "numb" "okay" "optimistic" "peaceful" "pensive" "pessimistic" "pissed off" "pleased" "predatory" "productive" "quixotic" "recumbent" "refreshed" "rejected" "rejuvenated" "relaxed" "relieved" "restless" "rushed" "sad" "satisfied" "scared" "shocked" "sick" "silly" "sleepy" "sore" "stressed" "surprised" "sympathetic" "thankful" "thirsty" "thoughtful" "tired" "touched" "uncomfortable" "weird" "working" "worried")))
(if (not mood)
(setq mood "skip"))
(if (equal mood "skip")
(sleep-for 0)
(insert (concat "post-mood: "
(let* ((moodjunk
(format "%S" mood))
(end (- (length moodjunk) 2)))
(substring moodjunk 2 end))"\n"))))
(defun dwmusic ()
(setq music (lastfm-user-get-recent-tracks :user lastfm-user :from 1 :to 1))
(setq music (replace-regexp-in-string (regexp-quote "\" \"") " " (format "%S" music) nil 'literal))
(sleep-for 1)
(if (not music)
(setq music "nil"))
(if (equal music "nil")
(sleep-for 0)
3 years ago
(insert (concat "post-music: "
(let* ((musicjunk
(format "%S" music))
(end (- (length musicjunk) 4)))
(substring musicjunk 4 end))"\n"))))
(defun dwicon (thefile)
(setq icon "skip")
(load-file dw-iconfile)
(with-current-buffer thefile
(iconchoose))
(if (equal icon "skip")
(sleep-for 0)
(insert (concat "post-icon: "icon "\n"))))
(defun dwlocation ()
(setq location (read-string "Location: " dw-defaultlocation))
(if (equal location "")
(sleep-for 0)
(insert (concat "post-location: " location "\n"))))
(defun dwmusic-manual ()
(setq music (read-string "Music: "))
(if (equal music "")
(sleep-for 0)
(insert (concat "post-music: " music "\n"))))
(defun dwpost (psubject tags)
(interactive (list (read-string "Post title (REQUIRED): ")
(read-string "Tags (comma-separated): ")))
(dwexport)
(compose-mail (concat dw-username "+" dw-pin "@post.dreamwidth.org") psubject)
(with-current-buffer (concat "*unsent mail to " dw-username "*")
(insert (concat "post-tags: org-export, " tags "\n"))
(dwsecurity)
(dwlocation)
(dwicon newname)
(cond
(lastfm-login t (dwmusic))
((dwmusic-manual)))
(dwmood)
(insert (concat "\n"))
(insert-file-contents newname)
(message-send-and-exit))
(kill-buffer newname)
(kill-buffer (concat "*sent mail to " dw-username "*"))
(with-current-buffer oldname
(delete-file newname)))