mirror of
https://github.com/pestctrl/emacs-config.git
synced 2026-02-16 08:14:15 +00:00
65 lines
2.6 KiB
EmacsLisp
65 lines
2.6 KiB
EmacsLisp
(require 'org-board)
|
|
|
|
(defun org-board-archive-dry-run ()
|
|
"Archive the URL given by the current entry's `URL' property.
|
|
|
|
The attachment directory and the unique ID are created if not
|
|
already present. See the docstring of `org-attach-dir'.
|
|
|
|
Every snapshot is stored in its own timestamped folder, and is
|
|
added as a link in the `ARCHIVED_AT' property."
|
|
|
|
(interactive)
|
|
(org-board-expand-regexp-alist)
|
|
(let* ((attach-directory (file-name-as-directory (make-temp-name "/tmp/org-board-")))
|
|
(urls (org-entry-get-multivalued-property (point) org-board-property))
|
|
(options
|
|
(org-board-options-handler
|
|
(org-entry-get-multivalued-property (point) "WGET_OPTIONS")))
|
|
(timestamp (org-board-make-timestamp))
|
|
(output-directory (concat (file-name-as-directory attach-directory)
|
|
(file-name-as-directory timestamp)))
|
|
(org-id-token (org-id-get))
|
|
(link-to-output (if (not org-board-make-relative)
|
|
(concat "[[file:" output-directory "]["
|
|
timestamp "]]")
|
|
(concat "[[file:" (file-relative-name output-directory)"][" timestamp "]]"))))
|
|
(make-directory attach-directory)
|
|
(org-board-wget-call org-board-wget-program
|
|
output-directory
|
|
options
|
|
urls)))
|
|
|
|
(defvar youtube-dl-binary
|
|
(executable-find "yt-dlp"))
|
|
|
|
(defun org-board-dispatch-special (orig path directory args site)
|
|
(cond
|
|
((and
|
|
(= (length site) 1)
|
|
(string-match-p "youtube" (car site)))
|
|
(message "Invoking custom youtube-dl dispatcher!")
|
|
(make-directory directory)
|
|
(let ((default-directory directory))
|
|
(start-process "org-board-youtube-dl" "*org-board-youtube-dl*" youtube-dl-binary
|
|
"-f 135+140" (car site))))
|
|
((and
|
|
(= (length site) 1)
|
|
(string-match-p "reddit" (car site)))
|
|
(message "Invoking custom reddit dispatcher!")
|
|
(make-directory directory)
|
|
(let ((default-directory directory))
|
|
(start-process "org-board-reddit-archive" "*org-board-reddit-archive*"
|
|
(executable-find "python3")
|
|
"/home/benson/RedditArchiver-standalone/RedditArchiver.py"
|
|
"-c"
|
|
"/home/benson/RedditArchiver-standalone/config.yaml"
|
|
"-i"
|
|
(car site))))
|
|
(t (apply orig path directory args (list site)))))
|
|
|
|
(advice-add #'org-board-wget-call
|
|
:around
|
|
#'org-board-dispatch-special)
|
|
|
|
(provide 'org-board-custom-dispatcher)
|