From 5a1f0747973708cf31c749feb305d82eb0ec8074 Mon Sep 17 00:00:00 2001 From: Thanos Apollo Date: Wed, 12 Jul 2023 10:38:13 +0300 Subject: Display currently playing video/song Add yeetube--currently-playing variable Add yeetube--get-title function that gets the context at point Use yeetube--get-title with yeetube-play & add currenlty playing info in yeetube-insert-info --- yeetube.el | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/yeetube.el b/yeetube.el index 71918de..c561717 100644 --- a/yeetube.el +++ b/yeetube.el @@ -105,6 +105,8 @@ It's recommended you keep it as the default value." (define-key yeetube-mode-map (kbd "v") 'yeetube-toggle-video-mpv) yeetube-mode-map)) +(defvar yeetube--currently-playing nil) + (defun yeetube-check-if-youtube (url) "Check if URL contain youtube." (if (string-match-p "youtube" url) @@ -123,7 +125,8 @@ It's recommended you keep it as the default value." (when (string-prefix-p "http" url) (call-process-shell-command (format "%s %s" yeetube-player url) nil 0) - (message "Opening with %s" yeetube-player)))) + (message "Opening with %s" yeetube-player))) + (yeetube--get-title)) (defun yeetube-toggle-video-mpv () "Toggle video on/off for mpv player." @@ -314,7 +317,8 @@ then run this command interactively." (format "\nDownload as audio format: %s" yeetube-download-audio-format) (if yeetube-player (format "\nYeetube Player: %s" yeetube-player) - (format "\nYeetube Player: mpv not found. /Set this value manually or install mpv/"))) + (format "\nYeetube Player: mpv not found. /Set this value manually or install mpv/")) + (format "\nCurrently Playing: %s" yeetube--currently-playing)) (when yeetube-display-info-keys (insert "\n\n*** Keybindings" @@ -354,6 +358,21 @@ then run this command interactively." (when (string-suffix-p "/" yeetube-query-url) (setq yeetube-query-url (substring yeetube-query-url 0 -1)))) +(defun yeetube--get-title () + "Get the title of the latest video/song played." + (interactive) + (push-mark) + (search-backward yeetube-results-prefix) + (set-mark-command nil) + (end-of-visual-line) + (let ((title-context (org-link--context-from-region))) + (setq yeetube--currently-playing + (format " %s" + (replace-regexp-in-string yeetube-results-prefix "" title-context)))) + (pop-mark) + (goto-char (mark))) + + (defun yeetube-update-info (symbol-name new-value _operation _where) "Update information for SYMBOL-NAME with NEW-VALUE. @@ -370,7 +389,8 @@ OPERATION & WHERE are required to work with 'add-variable-watcher." ('yeetube-player "Yeetube Player:") ('yeetube-download-directory "Download Directory:") ('yeetube-download-audio-format "Download as audio format:") - ('yeetube-query-url "searching:"))) + ('yeetube-query-url "searching:") + ('yeetube--currently-playing "Currently Playing:"))) (buffer-cur (buffer-name))) (switch-to-buffer (get-buffer "*Yeetube Search*")) (setq-local buffer-read-only nil) @@ -390,6 +410,7 @@ OPERATION & WHERE are required to work with 'add-variable-watcher." (add-variable-watcher 'yeetube-player #'yeetube-update-info) (add-variable-watcher 'yeetube-download-audio-format #'yeetube-update-info) (add-variable-watcher 'yeetube-query-url #'yeetube-update-info) +(add-variable-watcher 'yeetube--currently-playing #'yeetube-update-info) (provide 'yeetube) ;;; yeetube.el ends here -- cgit v1.2.3