diff options
author | Yuchen Pei <id@ypei.org> | 2025-07-29 08:42:24 +1000 |
---|---|---|
committer | Yuchen Pei <id@ypei.org> | 2025-07-29 08:42:24 +1000 |
commit | e8eddcc6955f631ca0cfcd3b755c663a6b5d18ff (patch) | |
tree | c96db7936c10d23811ac4f33808b21c309d4800d /emacs/.emacs.d/lisp/my | |
parent | c29f76b4e026d1b5130015d508c04183c81f5dd8 (diff) |
[emacs] Add music dirs
Diffstat (limited to 'emacs/.emacs.d/lisp/my')
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-libgen.el | 27 | ||||
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-utils.el | 1 | ||||
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-ytdl.el | 21 |
3 files changed, 38 insertions, 11 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-libgen.el b/emacs/.emacs.d/lisp/my/my-libgen.el index c3ac3d2..5b84120 100644 --- a/emacs/.emacs.d/lisp/my/my-libgen.el +++ b/emacs/.emacs.d/lisp/my/my-libgen.el @@ -167,8 +167,7 @@ (dom-attr (dom-search (my-url-fetch-dom - (format "%s/edition.php?id=%s" my-libgen-plus-host - (alist-get 'edition-id info))) + (alist-get 'edition (my-libgen-plus-urls info))) (lambda (n) (string-match "r_[0-9]+_libgen" (or (dom-attr n 'href) "")))) 'href)) @@ -189,7 +188,7 @@ my-libgen-plus-host (dom-attr (dom-search - (my-url-fetch-dom (format "%s/ads.php?md5=%s" my-libgen-plus-host .md5)) + (my-url-fetch-dom (alist-get 'ads (my-libgen-plus-urls info))) (lambda (n) (string-match (format "get\\.php\\?md5=%s" .md5) (or (dom-attr n 'href) "")))) @@ -207,6 +206,18 @@ t (lambda () (my-libgen-check-md5 filename md5))))) +(defun my-libgen-plus-urls (info) + (let-alist info + `((ads . ,(format "%s/ads.php?md5=%s" my-libgen-plus-host .md5)) + (edition . ,(format "%s/edition.php?id=%s" my-libgen-plus-host + .edition-id)) + (file . ,(format "%s/file.php?id=%s" my-libgen-plus-host + .file-id))))) + +(defun my-libgen-plus-print-urls-action () + (interactive) + (pp (my-libgen-plus-urls (get-text-property (point) 'button-data)))) + (defun my-libgen-plus-download-onion-action () (interactive) (let* ((info (get-text-property (point) 'button-data)) @@ -219,24 +230,23 @@ nil (lambda () (my-libgen-check-md5 filename md5))))) -(defun my-libgen-plus-edition-infobox (edition-id) +(defun my-libgen-plus-edition-infobox (info) (let ((dom (my-url-fetch-dom - (format "%s/edition.php?id=%s" my-libgen-plus-host edition-id)))) + (alist-get 'edition (my-libgen-plus-urls info))))) (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) + `(my-libgen-plus-edition-infobox ,info) (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)))) + (my-libgen-plus-edition-infobox (get-text-property (point) 'button-data))) (defun my-libgen-check-md5 (file md5) (let ((actual (substring (my-call-process-out "md5sum" file) 0 32))) @@ -278,6 +288,7 @@ (define-key kmap "d" 'my-libgen-plus-download-action) (define-key kmap "i" 'my-libgen-plus-infobox-action) (define-key kmap "t" 'my-libgen-plus-download-onion-action) + (define-key kmap "u" 'my-libgen-plus-print-urls-action) ;; (define-key kmap "p" 'my-libgen-show-more-info) kmap)) diff --git a/emacs/.emacs.d/lisp/my/my-utils.el b/emacs/.emacs.d/lisp/my/my-utils.el index 0743227..ff65420 100644 --- a/emacs/.emacs.d/lisp/my/my-utils.el +++ b/emacs/.emacs.d/lisp/my/my-utils.el @@ -295,6 +295,7 @@ Example: (format-time-string ... (my-time-from-epoch 1698582504))" (defvar my-video-incoming-dir my-incoming-dir) (defvar my-audio-incoming-dir my-incoming-dir) (defvar my-document-incoming-dir my-incoming-dir) +(defvar my-music-incoming-dir my-incoming-dir) (defmacro my-with-default-directory (dir &rest body) "Run BODY with the default directory." diff --git a/emacs/.emacs.d/lisp/my/my-ytdl.el b/emacs/.emacs.d/lisp/my/my-ytdl.el index 5908666..b04b2a9 100644 --- a/emacs/.emacs.d/lisp/my/my-ytdl.el +++ b/emacs/.emacs.d/lisp/my/my-ytdl.el @@ -65,10 +65,15 @@ (defvar my-ytdl-audio-download-dir "~/Downloads" "Directory for ytdl to download audios to.") +(defvar my-ytdl-music-download-dir "~/Downloads" + "Directory for ytdl to download music to.") + (defun my-ytdl-internal (urls type &optional no-tor) - (my-with-default-directory (if (eq type 'video) - my-ytdl-video-download-dir - my-ytdl-audio-download-dir) + (my-with-default-directory (pcase type + ('video my-ytdl-video-download-dir) + ('audio my-ytdl-audio-download-dir) + ('music my-ytdl-music-download-dir) + (_ (error "Unsupported type: %s" type))) (apply 'my-start-process-with-torsocks (append (list no-tor (format "ytdl-%s" urls) (format "*ytdl-%s*" urls) @@ -148,11 +153,21 @@ (interactive "sURL(s): ") (my-ytdl-internal urls 'audio)) +(defun my-ytdl-music (urls) + "Download music with ytdl." + (interactive "sURL(s): ") + (my-ytdl-internal urls 'music)) + (defun my-ytdl-audio-no-tor (urls) "Download audio with ytdl." (interactive "sURL(s): ") (my-ytdl-internal urls 'audio t)) +(defun my-ytdl-music-no-tor (urls) + "Download music with ytdl." + (interactive "sURL(s): ") + (my-ytdl-internal urls 'music t)) + ;;; fixme: autoload (defun my-ytdl-video-no-tor (urls) "Download videos with ytdl." |