<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Elfeed on Thanos Apollo</title>
    <link>https://thanosapollo.org/tags/elfeed/</link>
    <description>Recent content in Elfeed on Thanos Apollo</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sat, 09 Nov 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://thanosapollo.org/tags/elfeed/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>RSS Mastery with RSS-Bridge &amp; Elfeed [Video]</title>
      <link>https://thanosapollo.org/posts/rss-video/</link>
      <pubDate>Sat, 09 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://thanosapollo.org/posts/rss-video/</guid>
      <description>Short video about RSS, RSS-Bridge &amp;amp; Elfeed</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve just published a short video covering the basics of RSS,
RSS-Bridge &amp; Elfeed, it&rsquo;s currently available on
<a href="https://www.youtube.com/watch?v=XvgChZdTvYU">YouTube</a>.</p>
<h2 id="video-notes">Video notes</h2>
<h3 id="what-is-rss">What is RSS?</h3>
<ul>
<li>XML-based web feed that allows users to access updates of
websites, without &ldquo;visiting&rdquo; the website.</li>
<li>Hacktivist including <a href="https://en.wikipedia.org/wiki/Aaron_Swartz">Aaron
Swartz</a> contributed to
the development of RSS</li>
</ul>
<h3 id="why-use-it">Why use it?</h3>
<ul>
<li>Having total control over information you consume
<ul>
<li>Filter/Prioritize content from various sources</li>
<li>Bypass algorithms</li>
<li>Ad-free reading</li>
</ul>
</li>
<li>Offline Access</li>
<li>Time saving</li>
<li>Allows creation of a <strong>personalized</strong> &amp; <strong>decentralized</strong> information hub</li>
</ul>
<h3 id="emacs-rss-elfeed">(+ Emacs RSS) ;; =&gt; &rsquo;elfeed</h3>
<p><strong>No matter what RSS reader you choose, they all get the same job done</strong></p>
<ul>
<li><a href="https://github.com/skeeto/elfeed">Elfeed</a> is a simple &amp; highly customizable RSS client for Emacs
<ul>
<li>Developed by Christopher Wellons (<a href="https://github.com/skeeto">skeeto</a>)</li>
</ul>
</li>
<li>It has a well designed database &amp; tagging system</li>
</ul>
<p><code>use-package</code> installation example:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(use-package elfeed
</span></span><span style="display:flex;"><span>  :vc (:url <span style="color:#e6db74">&#34;https://github.com/skeeto/elfeed&#34;</span>) <span style="color:#75715e">;; vc option is available on Emacs 30</span>
</span></span><span style="display:flex;"><span>  :config
</span></span><span style="display:flex;"><span>  (setf elfeed-search-filter <span style="color:#e6db74">&#34;@1-week-ago +unread&#34;</span>
</span></span><span style="display:flex;"><span>        browse-url-browser-function <span style="color:#a6e22e">#&#39;</span>browse-url-default-browser
</span></span><span style="display:flex;"><span>        elfeed-db-directory (locate-user-emacs-file <span style="color:#e6db74">&#34;elfeed-db&#34;</span>))
</span></span><span style="display:flex;"><span>  <span style="color:#75715e">;; Feeds Example</span>
</span></span><span style="display:flex;"><span>  (setf elfeed-feeds
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&#39;</span>((<span style="color:#e6db74">&#34;https://hackaday.com/blog/feed/&#34;</span>
</span></span><span style="display:flex;"><span>           hackaday linux)))
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#75715e">;; Play videos from elfeed</span>
</span></span><span style="display:flex;"><span>  (defun elfeed-mpv (<span style="color:#66d9ef">&amp;optional</span> use-generic-p)
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;Play video link with mpv.&#34;</span>
</span></span><span style="display:flex;"><span>    (interactive <span style="color:#e6db74">&#34;P&#34;</span>)
</span></span><span style="display:flex;"><span>    (let ((entries (elfeed-search-selected)))
</span></span><span style="display:flex;"><span>      (cl-loop for entry in entries
</span></span><span style="display:flex;"><span>               do (elfeed-untag entry <span style="color:#e6db74">&#39;unread</span>)
</span></span><span style="display:flex;"><span>               when (elfeed-entry-link entry)
</span></span><span style="display:flex;"><span>               do (start-process-shell-command <span style="color:#e6db74">&#34;elfeed-video&#34;</span> <span style="color:#66d9ef">nil</span> (<span style="color:#a6e22e">format</span> <span style="color:#e6db74">&#34;mpv \&#34;%s\&#34;&#34;</span> it)))
</span></span><span style="display:flex;"><span>      (<span style="color:#a6e22e">mapc</span> <span style="color:#a6e22e">#&#39;</span>elfeed-search-update-entry entries)
</span></span><span style="display:flex;"><span>      (unless (use-region-p) (<span style="color:#a6e22e">forward-line</span>))))
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  :bind ((<span style="color:#e6db74">&#34;C-x f&#34;</span> <span style="color:#f92672">.</span> elfeed)
</span></span><span style="display:flex;"><span>         :map elfeed-search-mode-map
</span></span><span style="display:flex;"><span>         (<span style="color:#e6db74">&#34;v&#34;</span> <span style="color:#f92672">.</span> <span style="color:#e6db74">&#39;elfeed-mpv</span>)
</span></span><span style="display:flex;"><span>         (<span style="color:#e6db74">&#34;U&#34;</span> <span style="color:#f92672">.</span> <span style="color:#e6db74">&#39;elfeed-update</span>)))
</span></span></code></pre></div><h3 id="what-to-do-with-websites-that-do-not-provide-an-rss-feed">What to do with websites that do not provide an RSS feed?</h3>
<ul>
<li>Utilize <a href="https://github.com/RSS-Bridge/rss-bridge">rss-bridge</a> to generate one.</li>
<li>RSS Bridge is easy to self host using docker</li>
</ul>
<p>Example <code>guix</code> service:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(service oci-container-service-type
</span></span><span style="display:flex;"><span>         (<span style="color:#a6e22e">list</span>
</span></span><span style="display:flex;"><span>          (oci-container-configuration
</span></span><span style="display:flex;"><span>           (image <span style="color:#e6db74">&#34;rssbridge/rss-bridge&#34;</span>)
</span></span><span style="display:flex;"><span>           (network <span style="color:#e6db74">&#34;host&#34;</span>)
</span></span><span style="display:flex;"><span>           (ports
</span></span><span style="display:flex;"><span>            <span style="color:#f92672">&#39;</span>((<span style="color:#e6db74">&#34;3000&#34;</span> <span style="color:#f92672">.</span> <span style="color:#e6db74">&#34;80&#34;</span>))))))
</span></span></code></pre></div>]]></content:encoded>
    </item>
  </channel>
</rss>
