From 02ab7f3a79a13c5a2ced16b6e929b0d528b2b16e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 25 Aug 2024 17:22:17 -0400 Subject: [PATCH] feat(rss): add elfeed-tube behind +youtube Close: #7612 Co-authored-by: edmundmiller --- modules/app/rss/README.org | 4 ++++ modules/app/rss/config.el | 14 ++++++++++++++ modules/app/rss/doctor.el | 9 +++++++++ modules/app/rss/packages.el | 2 ++ 4 files changed, 29 insertions(+) create mode 100644 modules/app/rss/doctor.el diff --git a/modules/app/rss/README.org b/modules/app/rss/README.org index f4a092151..6c1b4517e 100644 --- a/modules/app/rss/README.org +++ b/modules/app/rss/README.org @@ -13,11 +13,15 @@ Read RSS feeds in the comfort of Emacs. - +org :: Enable [[doom-package:elfeed-org]], so you can configure your feeds with an org file (={org-directory}/elfeed.org=) rather than Elisp. +- +youtube :: + Enable [[doom-package:elfeed-tube]], for tighter integration between elfeed and + your Youtube subscriptions. ** Packages - [[doom-package:elfeed]] - [[doom-package:elfeed-goodies]] - [[doom-package:elfeed-org]] if [[doom-module:+org]] +- [[doom-package:elfeed-tube]] if [[doom-module:+youtube]] ** Hacks - By default ~elfeed-search-filter~ is set to ~@2-weeks-ago~ and makes the last diff --git a/modules/app/rss/config.el b/modules/app/rss/config.el index 7d952e42d..00b846933 100644 --- a/modules/app/rss/config.el +++ b/modules/app/rss/config.el @@ -89,3 +89,17 @@ easier to scroll through.") :after elfeed :config (elfeed-goodies/setup)) + + +(use-package! elfeed-tube + :when (modulep! +youtube) + :after elfeed + :config (elfeed-tube-setup) + (map! (:map elfeed-show-mode-map + [remap save-buffer] #'elfeed-tube-save + "F" #'elfeed-tube-fetch) + (:map elfeed-search-mode-map + [remap save-buffer] #'elfeed-tube-save + "F" #'elfeed-tube-fetch + "C-c C-f" #'elfeed-tube-mpv-follow-mode + "C-c C-w" #'elfeed-tube-mpv-where))) diff --git a/modules/app/rss/doctor.el b/modules/app/rss/doctor.el new file mode 100644 index 000000000..d91d635d7 --- /dev/null +++ b/modules/app/rss/doctor.el @@ -0,0 +1,9 @@ +;;; app/rss/doctor.el -*- lexical-binding: t; -*- + +(when (modulep! +youtube) + (unless (executable-find "mpv") + (warn! "Couldn't find the mpv executable. Live transcripts with elfeed-tube-mpv will not work.")) + + (unless (or (executable-find "youtube-dl") + (executable-find "yt-dlp")) + (warn! "Couldn't find the 'youtube-dl' or 'yt-dlp' executables. Live transcripts with elfeed-tube-mpv will not work."))) diff --git a/modules/app/rss/packages.el b/modules/app/rss/packages.el index dff960afb..723ace19c 100644 --- a/modules/app/rss/packages.el +++ b/modules/app/rss/packages.el @@ -5,3 +5,5 @@ (package! elfeed-goodies :pin "544ef42ead011d960a0ad1c1d34df5d222461a6b") (when (modulep! +org) (package! elfeed-org :pin "d62d23e25c5e3be3d70b7fbe1eaeb6e43f93a061")) +(when (modulep! +youtube) + (package! elfeed-tube :pin "0c3fbc21259e1fa794f3179a53b410ba610231f2"))