My personal configuration files for Doom emacs
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
3.8 KiB

  1. ;;; setup-elfeed.el -*- lexical-binding: t; -*-
  2. (map! ;; "C-x C-l e" to launch is defined in =config.el=
  3. :map elfeed-search-mode-map
  4. "a" #'(lambda () (interactive) (elfeed-search-set-filter ""))
  5. "e" #'(lambda () (interactive) (elfeed-search-set-filter "+emacs"))
  6. "x" #'(lambda () (interactive) (elfeed-search-set-filter "xkcd"))
  7. "v" #'(lambda () (interactive) (elfeed-search-set-filter "+youtube"))
  8. "=" #'elfeed-search-set-filter)
  9. (use-package! elfeed
  10. :init
  11. (setq elfeed-feeds
  12. '(
  13. ("https://insideevs.com/rss/make/tesla/" news tesla ev)
  14. ("https://insideevs.com/rss/make/rivian/" news rivian ev)
  15. ("https://insideevs.com/rss/category/battery-tech/" news battery ev)
  16. ("https://www.google.com/alerts/feeds/13353713273807811484/17577790586956417498" news google cybertruck tesla ev)
  17. ("https://www.google.com/alerts/feeds/13353713273807811484/2710948715805064535" news google tesla ev)
  18. ("https://www.google.com/alerts/feeds/13353713273807811484/17638090915837343269" news google pixel4)
  19. ("https://teslapodcast.libsyn.com/rss" podcast tesla ev)
  20. ("http://feeds.twit.tv/sn.xml" podcast security twit)
  21. ("https://feeds.fireside.fm/linuxunplugged/rss" podcast linux)
  22. ("https://latenightlinux.com/feed/all" podcast linux)
  23. ("https://feeds.fireside.fm/linuxunplugged/rss" podcast linux jb) ;; Linux Unplugged
  24. ("https://feeds.fireside.fm/office/rss" podcast linux jb) ;; Office Hours
  25. ("https://feeds.fireside.fm/linuxactionnews/rss" podcast linux jb) ;; Linux Action News
  26. ("https://feeds.fireside.fm/selfhosted/rss" podcast linux jb) ;; Self Hosted
  27. ("https://feeds.fireside.fm/coder/rss" podcast linux jb) ;; Coder Radio
  28. ("https://feeds.fireside.fm/extras/rss" podcast linux jb) ;; Extras
  29. ("https://www.youtube.com/feeds/videos.xml?channel_id=UCbgBDBrwsikmtoLqtpc59Bw" youtube tech) ;; teaching tech
  30. ("https://www.youtube.com/feeds/videos.xml?channel_id=UCBJycsmduvYEL83R_U4JriQ" youtube tech) ;; mkbhd
  31. ("https://www.youtube.com/feeds/videos.xml?channel_id=UCUHW94eEFW7hkUMVaZz4eDg" youtube science) ;; minute physics
  32. ("https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA" youtube commentary) ;; luke smith
  33. ("https://www.youtube.com/feeds/videos.xml?channel_id=UCUQo7nzH1sXVpzL92VesANw" youtube diy) ;; DIY perks
  34. ("https://www.youtube.com/feeds/videos.xml?channel_id=UCzgkOWKcwy0uhYilE6bd1Lg" youtube emacs) ;; Zaiste Programming
  35. ("https://www.youtube.com/feeds/videos.xml?channel_id=UCtI0Hodo5o5dUb67FeUjDeA" youtube science tech) ;; SpaceX
  36. ("http://www.reddit.com/r/emacs/.rss" emacs)
  37. ("http://telescoper.wordpress.com/feed/" daily)
  38. ("http://xkcd.com/rss.xml" daily)
  39. ("http://pragmaticemacs.com/feed/" emacs)
  40. ("http://endlessparentheses.com/atom.xml" emacs)
  41. ("http://feeds.feedburner.com/XahsEmacsBlog" emacs)
  42. ("http://emacs.stackexchange.com/feeds" emacs)
  43. ))
  44. :config
  45. (defun yt-dl-it (url)
  46. "Downloads the URL in an async shell"
  47. (let ((default-directory "/Users/Levi_Olson/Videos"))
  48. (async-shell-command (format "youtube-dl %s" url))))
  49. (defun elfeed-youtube-dl (&optional use-generic-p)
  50. "Youtube-DL link"
  51. (interactive "P")
  52. (let ((entries (elfeed-search-selected)))
  53. (cl-loop for entry in entries
  54. do (elfeed-untag entry 'unread)
  55. when (elfeed-entry-link entry)
  56. do (yt-dl-it it))
  57. (mapc #'elfeed-search-update-entry entries)
  58. (unless (use-region-p) (forward-line))))
  59. (define-key elfeed-search-mode-map (kbd "d") 'elfeed-youtube-dl)
  60. (elfeed-update))
  61. (use-package! elfeed-goodies
  62. :ensure t
  63. :config
  64. (elfeed-goodies/setup))
  65. (provide 'setup-elfeed)