diff options
author | Yuchen Pei <id@ypei.org> | 2025-08-15 09:24:23 +1000 |
---|---|---|
committer | Yuchen Pei <id@ypei.org> | 2025-08-15 09:24:23 +1000 |
commit | ed4f8948ac275c4381daa2aeda1d97df5fedcba5 (patch) | |
tree | f3b4f864fbf90dadded416284436b6ed8a7c1eb9 | |
parent | eec7fd9f70d317a70049d5758929b984d8d1812f (diff) |
-rw-r--r-- | exitter.el | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -563,13 +563,16 @@ Including ancestors and descendants, if any." (defvar exitter-dir (locate-user-emacs-file "exitter") "Path to local directory of saved threads.") +(defun exitter-post-file-name (id) + (format (file-name-concat exitter-dir (format "%s.org" id)))) + (defun exitter-save-posts (filtered-details id) ;; (pp filtered-details) (if (length= filtered-details 0) (message "Empty filtered-details - will not save.") (exitter-save-text-and-switch-to-buffer (exitter-format-posts filtered-details) - (format (file-name-concat exitter-dir (format "%s.org" id)))))) + (exitter-post-file-name id)))) (defun exitter-post-url (user post-id) (format "https://x.com/%s/status/%s" user post-id)) @@ -611,12 +614,16 @@ Including ancestors and descendants, if any." (string-match-p "^/[^/]+/status/\\([0-9]+\\)" (url-filename (url-generic-parse-url url)))) -(defun exitter-open-post (url) - (interactive "sTwitter link: ") +(defun exitter-open-post (url &optional arg) + (interactive "sTwitter link: \nP") (let ((path-etc (url-filename (url-generic-parse-url url)))) (unless (string-match "^/[^/]+/status/\\([0-9]+\\)" path-etc) (error "Not a valid x/twitter (or a frontend) url!")) - (exitter-get-tweet (match-string 1 path-etc)))) + (let* ((id (match-string 1 path-etc)) + (file-name (exitter-post-file-name id))) + (if (or arg (not (file-exists-p file-name))) + (exitter-get-tweet (match-string 1 path-etc)) + (find-file file-name))))) ;;; utilities |