0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Command line utility to mark items older than specified time as read in Miniflux.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 13.0
~> 0.39.15

Runtime

~> 2.7
~> 0.18.1
 Project Readme

miniflux-sanity

Download counter for the RubyGem

👩‍💻 A Ruby command-line utility to mark older entries as read on your Miniflux app. Defaults to items older than a conservative 30 days.

🚀 Switch to 1 day and run daily to wake up to a fresh feed.

⭐ Please star the project if you like it or use it -- and want to send some internet support. 🥰

A screenshot from my Terminal showcasing the utility in action

Motivation

If I haven't read something in the preceding week, it's unlikely I ever will. Miniflux doesn't offer an archive option so we mark entries as read instead. All it really does is offer me a saner overview of "unread" items at the top.

As is usually the case for me, I wanted to build something meaningful as I pick up Ruby again. This was a small use-case that was a good first challenge to tackle.

The code is admittedly not perfect. I welcome any constructive criticism or feedback, more so if you are a Ruby enthusiast.

Feature-set

  • Uses token authentication
  • Supports cloud and self-hosted Miniflux apps
  • Configurable number of days before which to mark items as read
  • Resumes marking as read if interrupted

Note: A common concern might be if this muddies your actual read history. Thanks to the way Miniflux works, this surprisingly does not meddle with your history. It only marks items as read. That is it! This was untrue, my apologies!

Usage

You must have Ruby available on your system/shell.

Install by running gem install miniflux_sanity.

All command line options can be viewed by running miniflux_sanity --help.

To-do

  • Unit testing
  • Resume fetching if command crashes in between
  • Optionally, if an item is starred and unread, don't mark it as read.
    • This could lend itself to a nice workflow where my "to-read" can be starred while scanning through items.

Goals

  • Get comfortable with Ruby's syntax
  • Work with Class, Module, dotenv etc.
  • Work with JSON
  • Work with Ruby's File API
  • Interact with an API using an HTTP library

Development

The Ruby version is specified in .ruby-version. rbenv is able to read and set the correct local version in your shell.

  • git clone git@github.com:hirusi/miniflux-sanity.git
  • cd miniflux-sanity
  • Install the dependencies: bundle
  • After making desired changes, install locally without publishing to RubyGems: bundle exec rake install
    • I don't know a better workflow at the moment, sorry. 🤷‍♀️
  • Run the utility: miniflux_sanity
    • You'll need a token from your Miniflux app under Settings > API Keys -> Create a new API key

If you have a Docker setup to contribute using Alpine OS as its base, I'd be very happy to merge your PR.

Publishing

  • Test changes locally with an install: bundle exec rake install
  • Update version in gemspec, commit
  • Publish when happy: bundle exec rake release