From b44a03de044ca07d84ce5c924a4c308ce5294174 Mon Sep 17 00:00:00 2001 From: BardofSprites <89086143+BardofSprites@users.noreply.github.com> Date: Fri, 4 Apr 2025 11:21:13 -0400 Subject: media library --- bard-elisp/bard-media.el | 69 +++++++++++++++++++++++++++++++++++++++++++++++ bard-elisp/bard-videos.el | 20 -------------- 2 files changed, 69 insertions(+), 20 deletions(-) create mode 100644 bard-elisp/bard-media.el delete mode 100644 bard-elisp/bard-videos.el (limited to 'bard-elisp') diff --git a/bard-elisp/bard-media.el b/bard-elisp/bard-media.el new file mode 100644 index 0000000..22d54c9 --- /dev/null +++ b/bard-elisp/bard-media.el @@ -0,0 +1,69 @@ +(require 'cl-lib) +(require 'seq) +(require 'emms) +(require 'image-dired) +(require 'dired-x) + +(defun bard/play-youtube-video () + "Prompt for a YouTube URL and play it in mpv." + (interactive) + (let ((url (read-string "Enter YouTube URL: "))) + (if (and url (string-match-p "https?://\\(www\\.\\)?youtube\\.com\\|youtu\\.be" url)) + (async-shell-command (format "mpv '%s'" url)) + (message "The URL is not a valid YouTube link: %s" url)))) + +(defun bard/save-emms-watch-later () + "Save the current EMMS playlist to `bard/watch-later-file` using `bard/emms-playlist-format`." + (interactive) + (when (and bard/watch-later-file bard/emms-playlist-format) + (emms-playlist-save bard/emms-playlist-format bard/watch-later-file) + (message "Playlist saved to %s" bard/watch-later-file))) + +;; (defun bard/image-browser (directory) +;; "Open nsxiv in thumbnail mode on DIRECTORY. +;; Asks the user whether to enable recursive mode." +;; (interactive "DSelect directory: ") +;; (let ((recursive (if (y-or-n-p "Recursive searching? ") "-r" ""))) +;; (start-process "nsxiv" "nsxiv" "-t" "-o" recursive (expand-file-name directory)))) + +;; (defun bard/image-browser (directory) +;; "Open nsxiv in thumbnail mode on DIRECTORY. +;; Asks the user whether to enable recursive mode." +;; (interactive "DSelect directory: ") +;; (let ((recursive (if (y-or-n-p "Recursive searching? ") "-r" ""))) +;; (start-process "nsxiv" "*nsxiv*" "nsxiv" "-t" "-o" recursive (expand-file-name directory)) +;; (pop-to-buffer "*nsxiv*"))) + +;; (defun bard/image-browser (directory) +;; "Open nsxiv in thumbnail mode on DIRECTORY. +;; Asks the user whether to enable recursive mode." +;; (interactive "DSelect directory: ") +;; (let ((recursive (if (y-or-n-p "Recursive searching? ") "-r" "")) +;; (stdout (if (y-or-n-p "Output marked files to buffer? ") "-o" ""))) +;; (start-process "nsxiv" "*nsxiv*" "nsxiv" "-t" stdout recursive (expand-file-name directory)) +;; (if (string= stdout "-o") +;; (progn (with-current-buffer "*nsxiv*" +;; (read-only-mode nil) +;; (erase-buffer)) +;; (pop-to-buffer "*nsxiv*") +;; ) +;; nil))) + +(defun bard/image-browser (directory) + "Open nsxiv in thumbnail mode on DIRECTORY. +Asks the user whether to enable recursive mode." + (interactive "DSelect directory: ") + (let ((recursive (if (y-or-n-p "Recursive searching? ") "-r" "")) + (stdout (if (y-or-n-p "Output marked files to buffer? ") "-o" ""))) + (let ((process (start-process "nsxiv" "*nsxiv*" "nsxiv" "-t" stdout recursive (expand-file-name directory)))) + (when (string= stdout "-o") + (set-process-sentinel + process + (lambda (proc event) + (when (string= event "finished\n") + (with-current-buffer "*nsxiv*" + (read-only-mode nil) + (erase-buffer))))) + (pop-to-buffer "*nsxiv*"))))) + +(provide 'bard-media.el) diff --git a/bard-elisp/bard-videos.el b/bard-elisp/bard-videos.el deleted file mode 100644 index ae1fadc..0000000 --- a/bard-elisp/bard-videos.el +++ /dev/null @@ -1,20 +0,0 @@ -(require 'cl-lib) -(require 'seq) -(require 'emms) - -(defun bard/play-youtube-video () - "Prompt for a YouTube URL and play it in mpv." - (interactive) - (let ((url (read-string "Enter YouTube URL: "))) - (if (and url (string-match-p "https?://\\(www\\.\\)?youtube\\.com\\|youtu\\.be" url)) - (async-shell-command (format "mpv '%s'" url)) - (message "The URL is not a valid YouTube link: %s" url)))) - -(defun bard/save-emms-watch-later () - "Save the current EMMS playlist to `bard/watch-later-file` using `bard/emms-playlist-format`." - (interactive) - (when (and bard/watch-later-file bard/emms-playlist-format) - (emms-playlist-save bard/emms-playlist-format bard/watch-later-file) - (message "Playlist saved to %s" bard/watch-later-file))) - -(provide 'bard-videos.el) -- cgit v1.2.3