diff options
author | Yuchen Pei <id@ypei.org> | 2025-06-04 09:50:01 +1000 |
---|---|---|
committer | Yuchen Pei <id@ypei.org> | 2025-06-04 09:50:01 +1000 |
commit | e0451edda69683d4f5ac4072ed7976bcaaa762c4 (patch) | |
tree | f96a07b1893668a12d2bdca8fd121a643ad1fb37 /emacs/.emacs.d/lisp/my | |
parent | 35f625d5b081607c1ab7de25a670745c1ba6434c (diff) |
Diffstat (limited to 'emacs/.emacs.d/lisp/my')
-rw-r--r-- | emacs/.emacs.d/lisp/my/belf.el | 12 | ||||
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-libgen.el | 20 |
2 files changed, 27 insertions, 5 deletions
diff --git a/emacs/.emacs.d/lisp/my/belf.el b/emacs/.emacs.d/lisp/my/belf.el index 7eecf87..8a4a9f0 100644 --- a/emacs/.emacs.d/lisp/my/belf.el +++ b/emacs/.emacs.d/lisp/my/belf.el @@ -452,9 +452,11 @@ Compare without leading \"The \"." (interactive) (find-file-other-window (tabulated-list-get-id))) +;;; belf-recent + (defvar belf-recent-file (locate-user-emacs-file "belf-list")) -(defun belf-add-to-recent (file) +(defun belf-recent-add (file) "Add FILE to `belf-recent-file'. Can be used as a `find-file-hook'." @@ -473,9 +475,9 @@ Can be used as a `find-file-hook'." (write-file belf-recent-file) ))) -(defun belf-add-current-to-recent () +(defun belf-recent-add-current () (when buffer-file-name - (belf-add-to-recent buffer-file-name))) + (belf-recent-add buffer-file-name))) (define-derived-mode belf-recent-mode belf-mode "Bookshelf Recent" "Major mode for browsing a list of books." @@ -490,10 +492,10 @@ Can be used as a `find-file-hook'." (pop-to-buffer-same-window buf))) (defun belf-recent-list-refresh-contents (&rest _) - (setq-local tabulated-list-entries (belf-parse-recent-file-names)) + (setq-local tabulated-list-entries (belf-recent-parse-file-names)) (tabulated-list-print)) -(defun belf-parse-recent-file-names () +(defun belf-recent-parse-file-names () (with-temp-buffer (when (file-exists-p belf-recent-file) (insert-file-contents belf-recent-file)) diff --git a/emacs/.emacs.d/lisp/my/my-libgen.el b/emacs/.emacs.d/lisp/my/my-libgen.el index fac7cb0..d4efb30 100644 --- a/emacs/.emacs.d/lisp/my/my-libgen.el +++ b/emacs/.emacs.d/lisp/my/my-libgen.el @@ -186,6 +186,25 @@ nil (lambda () (my-libgen-check-md5 filename md5))))) +(defun my-libgen-plus-edition-infobox (edition-id) + (let ((dom (my-url-fetch-dom + (format "%s/edition.php?id=%s" my-libgen-plus-host edition-id)))) + (infobox-render-string + (with-temp-buffer + (insert (mapconcat (lambda (p) (dom-texts p "")) + (dom-by-tag (dom-by-class dom "order-2") 'p) "\n")) + (shr-insert-document (dom-by-class dom "order-5")) + (buffer-string)) + `(my-libgen-plus-edition-infobox ,edition-id) + (called-interactively-p 'interactive) + ) + )) + +(defun my-libgen-plus-infobox-action () + (interactive) + (my-libgen-plus-edition-infobox + (alist-get 'edition-id (get-text-property (point) 'button-data)))) + (defun my-libgen-check-md5 (file md5) (let ((actual (substring (my-call-process-out "md5sum" file) 0 32))) (unless (equal actual md5) @@ -224,6 +243,7 @@ (let ((kmap (make-sparse-keymap))) (set-keymap-parent kmap button-map) (define-key kmap "d" 'my-libgen-plus-download-action) + (define-key kmap "i" 'my-libgen-plus-infobox-action) ;; (define-key kmap "t" 'my-libgen-download-onion-action) ;; (define-key kmap "p" 'my-libgen-show-more-info) kmap)) |