aboutsummaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/lisp/my/my-ytdl.el
diff options
context:
space:
mode:
authorYuchen Pei <id@ypei.org>2025-01-17 09:48:03 +1100
committerYuchen Pei <id@ypei.org>2025-01-17 09:48:03 +1100
commitddb5b07e1e43c7b44877bae9d786dbb80ca95311 (patch)
tree9b1dc12efc8913dcacd8ff62f1624fc02507a1a1 /emacs/.emacs.d/lisp/my/my-ytdl.el
parente7d07c825a29621cd1be7d787d5e1565bc3d3513 (diff)
[emacs] Adding buttons to infobox
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-ytdl.el')
-rw-r--r--emacs/.emacs.d/lisp/my/my-ytdl.el23
1 files changed, 17 insertions, 6 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-ytdl.el b/emacs/.emacs.d/lisp/my/my-ytdl.el
index 2811793..bf917ce 100644
--- a/emacs/.emacs.d/lisp/my/my-ytdl.el
+++ b/emacs/.emacs.d/lisp/my/my-ytdl.el
@@ -94,14 +94,25 @@
(string-match-p "^/watch\\?v=.*" (url-filename urlobj)))
(equal "youtu.be" (url-host urlobj)))))
+(require 'hmm)
+(defvar my-ytdl-player 'hmm-external-mpv "Function to play ytdl urls.")
+
+(defun my-ytdl-video-render-info (info url)
+ (setf (alist-get 'webpage_url info)
+ (concat (alist-get 'webpage_url info)
+ " -- " (buttonize "play" (lambda (_)
+ (funcall my-ytdl-player url)))
+ " " (buttonize "context"
+ (lambda (_)
+ (funcall my-url-context-function url)))))
+ (infobox-render
+ (infobox-translate info (infobox-default-specs info))
+ `(my-ytdl-video-infobox ,url)
+ (called-interactively-p 'interactive)))
+
(defun my-ytdl-video-infobox (url)
(interactive "sytdl video url: ")
- (let* ((info (my-ytdl-video-info url))
- (specs (infobox-default-specs info)))
- (infobox-render
- (infobox-translate info specs)
- `(my-ytdl-video-infobox ,url)
- (called-interactively-p 'interactive))))
+ (my-ytdl-video-render-info (my-ytdl-video-info url) url))
;;; fixme: autoload
(defun my-ytdl-video (urls)