However, I don’t see this as a failure, but as a way to keep improving myself, and something to write about in the process! So, I corrected the way I add a “reply via email (and fediverse) link” to each feed item, and also made my feed human-readable!
Features such as includes and templates, can lead one towards the wrong path, and such was the case when I implemented email replies. I originally created an file in the _include
folder, and I simply included it in every single article at the end, the contents of that file were hidden via CSS with display:none
, it was a rushed and ugly way of doing this.
I decided to check what the rest of my friends were doing. And that’s where I noticed that in kevquirk.com’s source code for its Jekyll version, the feed.xml
file was simply, a customized feed template that included the reply via email button at the end. In his case, he escapes the XML and pasted it directly:
<description>
{{ post.content | xml_escape }}
<p style="font-size:1.3rem"><a href="mailto:{{ site.email | xml_escape }}?subject={{ post.title | xml_escape }}">Reply to this post via email</a></p>
</description>
I was using the jekyll-feed
plugin for this, but I decided to change it for my own custom template too, but I am using the Atom format, instead of RSS 2.0. Since my current feed was using the Atom format, I didn’t want to break something by changing it too much.
As for the way I implemented the reply link, I went for a different—maybe more elegant—method, where I can still edit the proper HTML easily via an include, and capturing its output in a variable that I can then escape. Here is what it looks like:
<content type="html" xml:base="{{ post.url | absolute_url }}">
{{ post.content | xml_escape }}
{% capture replies %}{% include replies.html %}{% endcapture %}
{{ replies | xml_escape }}
</content>
Now the end of every article contains a link to reply to it, just like on the website!
Now, after doing the reply via email thing, I wasn’t feeling like only sharing a blogpost with one single website change that isn’t even that noticeable to begin with!
This is why I also decided to work on making my RSS feed human-readable, inspired by this post from Minutes to Midnight—although I recall seeing this applied on some other people’s feeds—I finally went ahead and tried XSLT templating!
This was quite a great excercise, but it proved to be harder than expected given the fact that Simone Silvestroni used RSS 2.0 like Kev. Therefore, I couldn’t just copy and paste—I had to find out how to apply this to my Atom feed. After some research online, it wasn’t that difficult—here’s what my template looks like now:
---
layout: none
title: rss feed | joelchrono
permalink: "/feed.xsl"
---
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:atom="http://www.w3.org/2005/Atom"
exclude-result-prefixes="atom"
>
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
{% include head.html %}
<body>
<header>
<center class="home-top"><a href="/">
<svg width="80" height="60.5" version="1.1" viewBox="0 0 80 60.5" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(1.76 0 0 1.76 -2.4 -12.1)"><g fill="#a9b1d6"><path d="m36.9 6.84-0.79 4.5 2.77-0.913z"/><path d="m33.2 7.73 0.288 4.14 2.66-0.523z"/><path d="m29.9 9.46 1.1 4.2 2.5-1.79z"/><path d="m27.1 11.7 1.75 4.28 2.13-2.32z"/><path d="m24.8 14.5 2.6 4.2 1.4-2.68z"/><path d="m23.1 17.6 3.71 3.53v-3.15z"/><path d="m39.9 9.33a15.3 15.4 0 0 0-15 12.5l4.42-0.877a1.88 1.88 0 0 1 1.91 0.77 9.69 9.74 0 0 1 9.18-6.69 9.69 9.74 0 0 1 6.22 2.27l-0.345-6.53a15.3 15.4 0 0 0-6.38-1.4zm-15.1 17.7a15.3 15.4 0 0 0 13.3 13l-1.24-6.24a9.69 9.74 0 0 1-5.74-6.45 1.88 1.88 0 0 1-1.79 0.617zm21.9 5.15a9.69 9.74 0 0 1-3.22 1.78l-1.18 5.96a15.3 15.4 0 0 0 4.05-1.2z" stop-color="#000000"/></g><g fill="#9ece6a"><g stroke-linecap="round" stroke-linejoin="round"><path d="m30.1 23.6a0.792 0.792 0 0 0-0.792 0.792 0.792 0.792 0 0 0 0.792 0.792h7.69a0.792 0.792 0 0 0 0.792-0.792 0.792 0.792 0 0 0-0.792-0.792z" color="#000000"/><path class="a" d="m29.7 26.1-8.41-1.67 8.41-1.67z" stroke="#9ece6a"/><path d="m40.2 21.2c-1.75 0-3.19 1.43-3.19 3.18s1.44 3.18 3.19 3.18 3.19-1.43 3.19-3.18-1.44-3.18-3.19-3.18zm0 1.58c0.897 0 1.61 0.706 1.61 1.59 0 0.886-0.708 1.59-1.61 1.59s-1.61-0.706-1.61-1.59c0-0.886 0.708-1.59 1.61-1.59z" color="#000000"/><path d="m40.9 32.3a0.792 0.591 0 0 1-0.792 0.591 0.792 0.591 0 0 1-0.792-0.591v-5.74a0.792 0.591 0 0 1 0.792-0.591 0.792 0.591 0 0 1 0.792 0.591z" color="#000000"/><path class="a" d="m38.5 32.2 1.67 8.41 1.67-8.41z" stroke="#9ece6a"/></g><path d="m1.36 30.2v4.89l4.93 4.89v-9.77z"/></g><path d="m6.25 40h8.35v-4.89h-8.35z" fill="#739449"/><path d="m6.35 13.6h8.2v-4.89h-8.2z" fill="#739449"/><g fill="#9ece6a"><path d="m14.5 40h0.0928l4.84-4.89h-4.93z"/><path d="m14.6 8.74v4.89h4.93z"/><path d="m14.5 13.6v21.5h4.93v-21.5h-4.89z"/></g></g></svg>
</a></center>
<center>
{% include navigation.html %}
</center>
<p>This is a web feed that can be viewed in the browser. <b>Subscribe for free</b> by copying the URL <code> joelchrono.xyz/feed.xml </code> into your RSS reader. </p>
<p>Read how <a href="/blog/improving-my-rss-feed/">I improved this feed, and made it <b>human-readable</b></a>.</p>
</header>
<main>
<h2><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 455.731 455.731" xml:space="preserve"> <path style="fill:#f78422" d="M0 0h455.731v455.731H0z"/> <path style="fill:#fff" d="M296.208 159.16C234.445 97.397 152.266 63.382 64.81 63.382v64.348c70.268 0 136.288 27.321 185.898 76.931 49.609 49.61 76.931 115.63 76.931 185.898h64.348c-.001-87.456-34.016-169.636-95.779-231.399z"/> <path style="fill:#fff" d="M64.143 172.273v64.348c84.881 0 153.938 69.056 153.938 153.939h64.348c0-120.364-97.922-218.287-218.286-218.287z"/> <circle style="fill:#fff" cx="109.833" cy="346.26" r="46.088"/> </svg> Latest 20 posts</h2>
<xsl:apply-templates select="atom:feed/atom:entry[position() <= 20]"/>
</main>
{% include footer.html %}
</body>
</html>
</xsl:template>
<xsl:template match="atom:entry">
<article class="posts wrapper">
<p class="blog-data"><a href="{atom:link[@rel='alternate']/@href}"><b><xsl:value-of select="atom:title"/></b></a></p>
<div><xsl:value-of select="atom:summary" disable-output-escaping="yes" /></div>
<small class="post-date">
<!--Display the date in YYYY-MM-DD format-->
<xsl:variable name="year" select="substring(atom:published, 1, 4)"/>
<xsl:variable name="month" select="substring(atom:published, 6, 2)"/>
<xsl:variable name="day" select="substring(atom:published, 9, 2)"/>
<xsl:value-of select="concat($year, '-', $month, '-', $day)"/>
</small>
</article>
</xsl:template>
</xsl:stylesheet>
You can check out how my RSS feed like in any browser! You will probably not be able to tell it is an xml file, but when you paste it into your RSS feed reader, it will be recognized like any other!
The new features in my RSS feed are honestly quite simple, and seem pretty easy to achieve now that I put my mind into it. I wonder why didn’t I do this sooner. Now I have to go back and edit the last line of every single markdown file in my posts folder, containing the include I no longer need…
Or I can write a script, and then blog about that :P
This is day 14 of #100DaysToOffload
]]>If you didn’t open that link, that’s quite sad, but basically I marked all of the feeds in my FreshRSS instance as read, something that was done by accident and would get rid of my backlog of blogposts I would have liked to read at some point.
I mean, the articles are still there and my purging policy is really forgiving, but I have no way to tell what I already read from what I had not.
Regardless, this ended up being a bit of a blank slate now, thankfully, Matthew Graybosch had this fantastic comment!
More articles will come. Just give it time. Or add more feeds.
So, I decided to add more RSS feeds! And it was great!
Blogs! Of course, I barely read news on my RSS feed actually, so I decided to checkout the blogrolls of the websites I already follow, I ended up finding quite a few gems that way. An even quicker way to find random blogs to add to my RSS reader was making use of Ye Olde Blogroll’s Randomizer, which worked wonderfully too!
Some of the blogs I found that you might like are the following!
Because I marked everything as read, and I also removed a bunch of the spammy news feeds. I will get a lot less, but hopefully more meaningful content coming up. I decided to limit the few big sources I still have to mark as read older articles (or whenever up to 20 are still unread). I also added a lot of word filters for more stuff I don’t care about, words like “Amazon”, “Subscription” and whatever else. Much better.
Because of the amount of feeds I removed, as well as the list of feeds I added, I think I’ll need to reorganize my categories at some point too, since right now the biggest ones are “100DaysToOffload” for people doing the challenge and “Personal Websites” for literally everyone else. While the rest of news, updates and comics are only a small fraction in comparison. There’s always work to do I guess.
Regardless, now I should be able to just read whatever and have a good list of articles to check out when I have the time at a constant rate. I kind of wrote about that before but it didn’t stick for me, because of my huge backlog—which no longer exists. As long as I manage to catch up with Robin Rendle’s archive…
This is day 10 of #100DaysToOffload!
]]>The world’s is upside down lately, and there are a lot of things I would rather avoid, and I am sure I’m not the only one with this problem.
Of course, I am talking about Amazon’s Prime Day deals, I don’t like Prime Day deals, they’re coarse and rough and irritating… and they get everywhere. Not like here. Here everything is soft and smooth, and full of nice geeky references.
Thankfully, FreshRSS, which I’ve been using for a while, allows me to automatically set as read any article in a manner of ways. For example, based on the title of the article, it’s author, or the content of it! All you need to do this is go to the feed settings of whatever website you want to configure, scroll down to the Filter Actions section, and set whatever parameters you want using a format like this example:
intitle:"prime day"
author:"kev quirk"
inurl:"amazon"
You can check FreshRSS’s documentation for more options to try out!
Of course, Mastodon also has a great word filter feature, which will automatically hide posts in your timeline if they use a word you have blocked. You can even choose to just minimize the post with the possibility of expanding it, or just hide it completely, never to be seen again.
Overall, Mastodon users are quite alright at using content warnings and moderating themselves, but a few things are bound to slip and if you know you dislike reading about certain things, you should do your homework too!
Simply go to Mastodon’s settings > Filters > Add new filter and filter away!
This is post 71 of #100DaysToOffload. Have a good rest of your day, fellow reader. 😊
]]>So, I decided to import my Youtube subscriptions, the way I did it was kinda neat. I had found this javascript bookmark that may be better for you, since its just a bit faster than using Google Takeout just for subscriptions.
javascript:if("https://www.youtube.com/feed/channels"==window.location.href){let e=[...document.querySelectorAll("#main-link.channel-link")].map(e=>{const[,t,n]=e.href.match("/((?:user)|(?:channel))/(.*)$");return"https://www.youtube.com/feeds/videos.xml?"+("user"===t?"user=":"channel_id=")+n}).join("\n");e?navigator.clipboard.writeText(e).then(()=>alert("A%20list%20of%20channel%20RSS%20feeds%20has%20been%20copied%20to%20the%20clipboard.%20\nPaste%20these%20into%20rssmix.com%20to%20generate%20a%20single%20RSS%20feed,%20or%20opml-gen.ovh%20to%20generate%20an%20OPML%20file.")).catch(()=>{console.log(e),alert("A%20list%20of%20channel%20RSS%20feeds%20has%20logged%20to%20the%20console.%20(Unable%20to%20copy%20to%20clipboard)%20\nPaste%20these%20into%20rssmix.com%20to%20generate%20a%20single%20RSS%20feed,%20or%20opml-gen.ovh%20to%20generate%20an%20OPML%20file.")}):alert("Couldn't%20find%20any%20subscriptions")}else%20alert('Please%20run%20at%20"https://www.youtube.com/feed/channels"');
All you need to do to make it work is go here, scroll ALL the way to the bottom, it might take a while, so use the EndPage key or something a couple of times, or a dozen if you are susbribed to many channels like me. Once done, just run the bookmarklet and all the feed urls will be copied to your clipboard. After that, I found an online OPML generator, but you can probably use some bash script too, this time I was lazy.
After that I imported the OPML file to FreshRSS and that’s where the fun begun.
For some reason, I thought that adding 1200 feeds at once would be a decent idea, it was not. The import process took a while, a long while. Even if it didn’t actually break, it was a pain to use and doing a refresh was painfully bad.
I decided to try and remove them. Sadly, as of now there is no way to delete subscriptions in bulk. So I had to fiddle around with the MySQL database via SSH.
Of course, before doing all this backing up the database is a good idea. But I didn’t think anything too bad could happen, don’t follow my example though.
I ran the following command, after getting into the freshrss database:
DELETE FROM freshrss_$user_feed WHERE category = 14; -- user is your username
Of course, to get the category and table name, you should use commands such as show tables;
and also checking the category number in the freshrss_$user_category
with SELECT * FROM freshrss_$user_category;
. But while I am kinda used to MySQL, not everyone is, I hope bulk actions become a thing soon enough in FreshRSS.
Later I also decided to check my Yunohost admin settings and saw that some of my applications had updates available. Nextcloud is always down for a while when its being updated, so that’s all right.
I was able to login to Nextcloud just fine from the browser, and verify it updated correctly.
However, I noticed that my desktop client couldn’t connect, and also DAVx5 stopped working, no luck with vdirsyncer. No matter how many times I tried to authenticate, generating an app password would fail as fail.
I actually did quite a bit of things trying to fix this. I changed my domain name, changed the certificates, compared with the example nginx configuration in Nextcloud’s documentation, even a full reboot, nothing worked.
Thankfully, after a while asking around in the Yunohost IRC chat, I discovered this thread that had a pinned solution, which worked perfectly fine for me.
Turns out I am using a testing release of Yunohost that got accidentally tagged as stable, and the best course of action at the moment is going all out and switching to the testing branch, at least until a real stable version comes out. I decided to do the change and after the update process completed, Nextcloud worked fine again. Basically, I just ran this on my terminal:
curl https://install.yunohost.org/switchtoTesting | bash
I am glad this problem got solved so easily and I didn’t need to move or edit too many files, because I would have never figured this out myself.
Well, at least I changed the domain for a better one, since I was using one of those free domains Nextcloud can give you. For now its all fine.
I also decided to import my subscriptions from Newpipe instead, since I follow less channels, that end up being more meaningul for me than those hundreds of old channels I had in my YouTube subscriptions.
Sadly, Newpipe has no way to export to OPML. So once again I went and parsed their json file using sed and formatted it properly using the tool I mentioned before.
Everything is running as expected now.
I actually made blogs daily blogs for thw whole of January, this is actually quite incredible for me, I think I will take a bit of a break, but maybe not. It depends on how I feel.
This is day 31 of #100DaysToOffload
]]>All this time, I’ve actually been using FreshRSS’ web UI more often than Newsboat. The reason?
FreshRSS shows me all the posts from all the sources that belong to a category, letting me filter out what I wanted. Newsboat, by default, will start up showing all the sources, and then you would be able to open them one by one, and individually check their feeds. It has a way to see all the tags (which would be categories on FreshRSS), but opening one would, again only open the sources, where I would only be able to navigate one feed at a time.
The thing is, I mostly follow personal blogs, and even if the people I follow were like me and did one post per day, being able to just read their feed would mean that I would only have a couple posts until I stumbled upon an article I already read. I wanted to have all the posts from everyone I followed! I just didn’t know if it was possible…
However, today I learned about Newsboat queries, and its an absolute game changer for me. Using a relatively simple syntax, I can create my own feeds, which are populated by whatever fits a query I can define. This is achieved by adding something like the following to my urls file:
"query:Personal Sites:tags =~ \"Personal sites\"" "Personal sites"
"query:Company Blogs:tags =~ \"Company Blogs\"" "Company Blogs"
You can even use some other parameters to make more specific queries, like filtering based on the article title contents:
"query:1080p Torrents:tags =~ \"Torrents\" and (title =~ \"1080\" ) ""Torrents"
The official documentation I linked has some more examples. And a here’s a video by @gotbletu that explains it a bit more. I had actually already watched one of his other videos about using FreshRSS with Newsboat and mobile apps, but I somehow missed that he was using queries. They are truly awesome.
There are a ton of websites out there, however, not all of them are the same, and not all of them are kind enough to provide an RSS feed. With the release of FreshRSS 1.20, scraping websites using XPath became possible. However I had been lazy and ignorant on what it did, so I didn’t bother trying it out. After all, there are a lot of websites that already have RSS, and if one refused, I am sure there would be others I could use instead.
But I decided to give the feature a try after finding a blogpost on how to do it, which was cited by gotbletu. Just like in that article, I will use a website as an example. Lets go for Casio’s news section, because I quite like Casio watches.
//title
or in this case, //h1
) or set as a string.//a[@class="cmp-newslist__link"]
descendant::div[@class="cmp-newslist-item__title"]
@href
descendant::div[@class="cmp-newslist-item__date"]
Other things such as author, thumbnails and so on can be extrapolated quite easily, or see the blogpost if you need more help. To finish, just hit the Add button and test things out!
Sometimes, like me, you will not fetch the things you intended to. You may have problems and its a matter of experience, trial and error and getting used to how HTML and the XPath syntax work. Some of the problems that may happen are getting the wrong date, having the item link go to the main website instead, or no items showing up at all. Keep trying!
Of course, XPath works to fetch the items and basic metadata from whatever list, feed or archive is used by the website you are scraping. In case you want to learn how to get the full article content too, using FreshRSS’s CSS selector feature, I wrote a tutorial for that too. Since then, a couple extra features, such as ignoring some sections of the contents has been added. So please explore the features of FreshRSS, its fun. Feel free to check other posts I did related to RSS
This one actually feels like a rather nice blog instead of my typical bursts of kinda whatever content I write in a whim. I did put some effort into this one (its actually more than a thousand words 🤯), so I hope you enjoyed it, just like I enjoyed improving my RSS experience and writing this down.
I love RSS, I love FreshRSS, I love Newsboat, and I love you, dear reader!
This is day 30 of #100DaysToOffload
]]>Anyway, it was not until two years ago, that most of my feeds were those of common tech news sites and even some YouTube channels. Back then I didn’t care much about blogging or what other people had to say, unless they were in video format, I guess.
Clearly all of that changed once I joined Fosstodon and discovered the blogging sphere. I’ve joined a webrings, some clubs, and other nerdy things like that, because why not.
Lately, I’ve added a ton of new blogs to my feed, and I came across an article by Rach Smith about the way she consumes content online. Basically, subscribe to everything and pick what to check and utterly ignore the rest.
I’ve been doing pretty much the same thing, except that my current clients don’t make it as easy, or so I thought.
Swiping to either ignore or queue up is actually kind of a cool feature that both of my mobile clients for podcasts and web feeds can do.
AntennaPod, my podcast app of choice, recently added a new Inbox screen. Which is pretty much a general feed with new episodes of all podcasts (I can also whitelist them, I believe) and just by swiping left or right, I can ignore them or add them to my queue of episodes to listen to. This is not the best for some types of podcasts, but for the news and weekly content I follow, is actually awesome.
Readrops, my RSS reader of choice on Android, has a To Read section, and its also a matter of swiping left or right, to hide an article (although I can also show read articles if I want to) or to add it to my reading list.
This is quite great, because I can now parse all feeds and categories and quickly get a general stream of articles I am actually interested on reading later. If only it didn’t have an outdated design…
Read You, a reader I’ve been watching grow and improve may become my new choice once FreshRSS support works properly. Right now they added Fever API support, but its still a bit rough around the edges.
Regardless, I think I found a better way to consume this content. So I am glad I came across that article, now its just a matter of sticking with it.
On desktop I don’t really mind having to still deal with the usual interface, since FreshRSS also has a mark as read button, even if it doesn’t hide the post immediately, I don’t mind it much. My eyes already ignore them anyways.
In the span of me starting this blog and me finishing it, I already added 4 new feeds I just discovered to my FreshRSS instance. So there’s that.
This is day 27 of #100DaysToOffload
]]>Locally there are many options. Feeder is probably the best we got among the FOSS apps available on F-Droid. It has been going through a UI revamp and its looking pretty good, but it has no way to sync to any APIs, only locally. The developer seems willing to accept a PR that adds this, but so far, no luck. The issue related to this has been open for 4 years.
Apps that can sync with FreshRSS are few and far between. A quick search on F-Droid for “FreshRSS” only shows 3 results, all of them are pretty outdated. There is plain FreshRSS, which looks pretty ugly and is sluggish on my device. There is EasyRSS which looks straight out of Android KitKat. But I have to admit, it’s buttery smooth, and super lightweight too.
Right now, Readrops is the most modern looking of the bunch, and my current choice at the moment, however, it still feels a bit old. And the compatibility is bare, favorites work, but labels don’t, for example. Also, the dark theme is not of my liking.
There is actually another app with a very elegant design, that shows up when looking for “Fresh RSS” on F-Droid: Fluent Reader. However, such design is following Apple’s guidelines, instead of Material design, which makes it not fit at all with the rest of my system. That’s pretty much my only complain.
Sadly, the current best Android client for FreshRSS is FeedMe, it is not FOSS, but it has support for a lot of APIs and pretty much all of the features FreshRSS comes with, its design is great and functional. The only thing I don’t like is the settings page having a sidebar, but that’s about it.
I am a bit conflicted between a great but proprietary product, or a decent FOSS option that mostly works for my needs. My FOSS enthusiast side ended up winning, so I have been stuck between the mobile Web UI and Readrops for a while now.
However, the future is a bright one, I recently stumbled upon a new kid on the block that came out on F-Droid recently. ReadYou has a modern and beautiful UI (unless you don’t like Material You), as well as an awesome list of upcoming features, including support for the APIs supported by FreshRSS, which is exactly what I am looking for.
ReadYou is still implementing some basic features, so FreshRSS and sync support is still not being implemented, but the fact that its planned at all has given me hope. I decided to wait on it for now. However, it works locally just fine, so if you want to give it a go, I encourage you to try it out!
]]>As I said before, none of the dark themes included with FreshRSS were of my liking, they were a bit too warm, almost sepia, and, as a fan of Nord’s color scheme, I wanted something colder and more blue-ish. I decided I would try and make my own theme, using a similar base to my blog’s CSS.
Due to how FreshRSS works, I couldn’t just slap my CSS file in there, I had to go and edit some classes and id’s from the HTML elements that looked wrong, overlapped each other or I just felt like changing a bit.
I also had to go ahead and edit the icons, which were a but of vector based files, I just changed the fill property according to my needs.
There is still a lot of work that needs to be put into this, but I think the desktop version is already quite good, and there are only some simple glitches that I could not figure out, maybe it will need some refactoring, but I guess I’ll just open source it and let somebody who wishes to put more effort into it help me.
You can find the repository here if you wish to install it yourself or help out too!
If you don’t have GitHub or don’t want to use it, feel free to use git send-email
too, I don’t mind. You can see my theme in action here:
If you want to know how to apply it here is a quick guide:
p/
folderthemes/
This has been day 81 of #100DaysToOffload
]]>Anyways, this is a tutorial made because one of the small caveats with FreshRSS is the lack of an automatic way to fetch the full content of an article. Sites like Android Police, or of course, Simon’s blog do not give you that, sometimes because they want you to open their site and show ads, others just because they write pure HTML instead of being lazy (in the right ways) and let the machine generate stuff for them.
So, why does FreshRSS not come with this option by default? No idea, but it does have a way to do it, it is just not properly explained anywhere in their docs, I had to find a french comment mentioned in an GitHub thread, so I used DeepL to translate it and, it was actually not that hard to do, but I decided to explain it a bit more here.
Open any article from any website that doesn’t let you fetch full, content, I’ll go with this random article.
Now, in your browser find a way to open the HTML source code of such website.
Here, everything will depend on the site’s structure, but it should contain a
main body
or article
HTML element, which has the important stuff inside of
it. You should be able to find some id or class that makes it easy to
recognize.
In the case of Android Police, we have this line:
<section id="article-body" class="article-body" itemprop="articleBody">
Now, we can go to the management settings of the feed we want, and scroll to
the bottom to the Advanced section, there, you should see an option named
Article CSS selector on original website
. There, you will input the class or
id of the HTML element containing the article content. If you got an id, you
should input #idname
, if its a class, you use .classname
, note the use of
the #
and .
to differentiate them. You can see how it would look here:
If the site is super simple or classless, you might want to go with the HTML
element itself, or a sequence of nested elements, such as main body
, its all
up to the site, so make sure to check properly.
Finally, scroll to the bottom of the settings and click the “Reload articles” button, to fetch everything again, now you should see the full content instead of just whatever small portion of text is included in the default feed.
This is how Simon’s website posts look now on my feed:
As you can see, some sites will have small problems like duplicate titles or maybe even a couple ads showing up in there, but hey, its the full article instead of some summary that requires me to click one more time. Yes, you might need to do this whole process with every site you follow that doesn’t have full content in their feeds, but its kinda cool, maybe FreshRSS will add an easier way to do this soon enough.
So, this is the 79th post for #100DaysToOffload challenge, thanks again for the inspiration Simon.
]]>You see, I am running RaspberryOS 32bit, and for some reason, the News extension for Nextcloud needs a 64bit operating system. So, instead of being clever and changing distro since I will have to do it one day anyway, I just decided to install something else.
At first I wanted to go for Miniflux, since I was already using it, but then I remembered that it required a Postgres database, and while I don’t really have anything against it, I already had MariaDB installed, and I did not felt like having multiple database formats running on my device.
I considered going for TT-RSS or FeedBin but I ultimately went with FreshRSS since it seemed to be the easiest to set up, at least from what I saw.
I initially git cloned the latest release, configured a database and user for FreshRSS and ultimately did the setup with the web interface. Sadly, I was getting a weird Error during context user init!
message once everything was supposedly alright.
There was no similar problems online, but I decided to go back one version and instead of git I downloaded the tarball. I kept everything unchanged, and it worked just fine. I realized I can actually update FreshRSS via the web interface, and I it seems to have worked when I did it.
So yeah, I have now switched to a self-hosted RSS provider, and it is actually quite great, I still have to find a good theme tho, since the available dark theme kind of sucks, at least for my taste.
I am still probably going to move to a 64 bit distro, so I’ll keep you updated on that.
This has been day 72 of #100DaysToOffload
]]>Websites of today are bloated, if you are reading this, you probably know that. If I want to access information from any article, I also have to deal with sidebars full of suggestions, ads and images that I don’t care about, and only try to keep me browsing and wasting my time.
Due to me trying to use the Internet on a more meaningful way, I decided to get most of my text based content, and even videos from Youtube, LBRY or other sites, fetched into a single place that shows me every article I need, this is the biggest strength of the Really Simple Syndication feed.
I have seen a bunch of different ways that people use to sync their feeds, be it with services like Feedly or Inoreader, or just copying and pasting their OPML files. Accordingly, there are a lot of programs and websites that allow you to access your feed, be it minimal, terminal based and with no images, or full featured, offering diverse layouts and customization options.
I have checked many of those programs, but I am going to show you my current choices both for my Android device and my Linux computer
This is my current choice for android devices. It is completely open source and quite simple to use. It is fairly functional, and I love that it can fetch full websites, even when their RSS are incomplete.
This is how it’s interface looks like, I have the dark AMOLED theme enabled.
The app allows the creation of groups, which helps to categorize stuff according to your needs. This app has a few caveats tho, since sometimes reloading feeds can be a bit of a chore, but, it mostly works correctly. Flym has the basic exporting and importing features too, so it’s a very nice and tidy application. Time to talk about my desktop feed reader.
The website sums everything up
Newsboat is an RSS/Atom feed reader for the text console. It’s an actively maintained fork of Newsbeuter.
So, it is a fork the now dead Newsbeuter, and it offers a fairly similar functionality. Being a terminal based reader, it is keyboard driven, and its great at that. The config file is fairly customizable, although I haven’t played too much with it.
Honestly these puns are kind of cringe. Anyways, Syncthing, is such a wonderful tool. Ever since I figured out how to use it, I really loved it with all my heart. The same goes to KDE Connect, which, despite it’s name, works on my window manager wonderfully.
The only relatively bad thing is that I have to press “Export” e “Import” (or input the command), but the good thing is, that I will know for sure that I will get the latest OPML I saved.
This a little screenshot that hopefully helps you understand how it works. I can go into more detail in a later blog if you so wish.
Depending on your feed reader of choice, you will have to setup up some things. In my case, I just have an alias for Newsboat in my .bashrc.
alias syncboat="newsboat --export-from-opml /path/to/opml.opml"
And in Flym’s case, well, I can’t do much with it. There are applications that allow you to create shortcuts to certain parts of it. Android has some of this built-in, if you keep pressed the Flym icon on your phone home screen, you can see some shortcuts to open Favorites, Unreads, etc.
Using Nova Launcher, I can have an Activity shortcut, which allows me to do a similar thing, but it is a bit more complicated. Sadly, Flym only has a Main Activity, so no way to import OPMLs from there, I think I can talk about Nova’s Activites later.
As of now, I think it would be nice if the developer added a way to open those files directly from my file manager, be it with the Share menu, or showing up in the Open With options, since I am aware that AntennaPod, a podcast app, shows up there. That way, I can just create a shortcut to the folder, or even the file, and it would be easier to setup.
This is my second blog, in my #100DaysToOffload challenge. After reading Marc’s post about why he is still using RSS, I decided to do my take on the matter. He goes to different places on his blog, so you should check it out too!
Let me know how do you manage your feeds by @ me on Mastodon, maybe you got a better solution to manage your feeds.
]]>