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.

114 lines
5.1 KiB
EmacsLisp

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

(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))
(defvar oldname (concat (file-name-base) ".org"))
(defvar newname (concat (file-name-base) ".html"))
(find-file-noselect newname)
(with-current-buffer newname
(goto-line 1)
(delete-region (line-beginning-position) (line-end-position))
(goto-line 2)
(delete-region (line-beginning-position) (line-end-position))
(goto-line 3)
(delete-region (line-beginning-position) (line-end-position))
(write-file newname)))
(defun dwdraft ()
(interactive)
(dwexport)
(with-current-buffer newname
(kill-ring-save (point-min) (point-max)))
(kill-buffer newname)
(with-current-buffer oldname
(delete-file newname)))
(defun dwsecurity ()
(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 ()
(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 "litrovers" :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)
(insert (concat "post-music: "
(let* ((musicjunk
(format "%S" music))
(end (- (length musicjunk) 4)))
(substring musicjunk 4 end))"\n"))))
(defun dwicon (thefile)
(setq icon "skip")
(with-current-buffer thefile
(cond
((string-match-p "\\bbraska\\b" (buffer-substring (point-min) (point-max))) (setq icon "braska"))
((string-match-p "\\bffx[^-]\\b" (buffer-substring (point-min) (point-max))) (setq icon "ffx"))
((string-match-p "\\bffx-2\\b" (buffer-substring (point-min) (point-max))) (setq icon "ffx-2"))
((string-match-p "\\belp\\b" (buffer-substring (point-min) (point-max))) (setq icon "elp"))
((string-match-p "\\bprog\\b" (buffer-substring (point-min) (point-max))) (setq icon "prog"))
((string-match-p "\\btarkus\\b" (buffer-substring (point-min) (point-max))) (setq icon "tarkus"))))
(if (equal icon "skip")
(sleep-for 0)
(insert (concat "post-icon: "icon "\n"))))
(defun dwlocation ()
(setq location (read-string "Location: " "🏠"))
(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 "tobli+0397@post.dreamwidth.org" psubject)
(with-current-buffer "*unsent mail to tobli*"
(insert (concat "post-tags: org-export, " tags "\n"))
(dwsecurity)
(dwlocation)
(dwicon newname)
(dwmood)
(dwmusic)
(insert (concat "\n"))
(insert-file-contents newname)
(message-send-and-exit))
(kill-buffer newname)
(kill-buffer "*sent mail to tobli*")
(with-current-buffer oldname
(delete-file newname)))