akrennmair / newsbeuter

Newsbeuter is an open-source RSS/Atom feed reader for text terminals.
http://www.newsbeuter.org/
MIT License
780 stars 97 forks source link

"unseen" attribute, apart from "unread" #457

Open timkuijsten opened 7 years ago

timkuijsten commented 7 years ago

I haven't looked at the code yet, but I was wondering if an "unseen" attribute would be welcome and feasible without too much refactoring. A feature that is a bit like the O(ld) status flag in mutt. The use case is as follows:

When following a lot of feeds (like 200+) most articles pass by unread. With only an "unread" attribute it's a bit of a sport to quickly skim through new articles, especially with high volume feeds like the ones from news sites. One way to keep track of which titles are new and which you have already seen is to systematically mark all articles as read after reading the titles (and possibly articles, of course). Since not all articles are read, this feels like a tedious and repeating workaround. Furthermore you loose the ability to keep track of what you've actually read.

A possible fix would be to introduce an "unseen" attribute. While in the feed list and whenever new articles have been fetched in the background, a U would appear next to the N to indicate new unseen articles are available for that feed[1]. The attribute would be cleared automatically as soon as the user opens the article list of that feed and sees all the new titles. The new titles in the article list should be marked on first sight (i.e. U or a bold typeface) until you open the article or quit that list and go back to the feed list.

This way it doesn't require any manual intervention or bookkeeping to keep track of the articles you haven't seen before, like constantly marking everything as read.

Example feed list:

1        (0/11) Feed A
2 N     (15/15) Feed B
3 N U (450/532) Feed C
4 N U (158/158) Feed D

This would mean

When opening Feed D the U flag in the feed list of Feed D is cleared. The article list of Feed D could look like:

  1 N U Dec 22  7.2K  Article s
  2 N U Dec 15  1.2K  Article r
  3 N   Nov 10  6.7K  Article q
  4 N   Oct 20  8.7K  Article p
  ...
158 N   Oct 20  8.7K  Article n

This means that all articles are unread, but only article 1 and 2 are new since the last time this article list is shown. As soon as an article is openen it's N and U flag are cleared, but the U flag of all the articles are cleared as well as soon as this view is closed and the user navigates back to the feed list.

Hope this is clear :)

[1] Of course there are multiple ways to visualize this, maybe it would be more clear to print the feed title in bold or give it another color instead of printing a U left of it's name.

tsipinakis commented 7 years ago

I have a similar workflow, my newsbeuter feeds are basically divided into two big sections, there is low volume stuff I read most of(podcasts, blogs etc) and high volume news that get a crazy amount of articles each day, and I also stumbled on this same problem when I first started using newsbeuter.

How I solved it is that I defined a macro that toggled mark-as-read-on-hover and every time I want to go through my high volume feed I turn that on and simply scan the titles, opening up what I find interesting along the way. The one problem that I have with this is that I sometimes forget to turn it off and if I decide to go into one of my low volume feeds with that on without noticing I mark things I actually want to read as read.

I asked on IRC yesterday if there was a way to change the color scheme with a macro in an attempt make it more apparent when mark-as-read-on-hover is on but apparently there isn't.

That said, I see two problems with this suggestion:

Minoru commented 7 years ago

This is a big chunk of work. Adding a flag and couple more columns to feed- and articlelist is okay; but that doesn't make this flag a first-class feature. Things that reasonable user might wish to have in addition to what @timkuijsten already describes:

Don't mean to discourage you here; just want to inform of the scope of the feature. It touches a lot of Newsbeuter's parts (no refactorings required as far as I can see).

I'd like to think a bit about alternative solutions that might be simpler. (I welcome other opinions as well!) I'll get back to you in one week.

Minoru commented 7 years ago

One assumption I'd like to challenge is that users distinguish between stuff they've seen and stuff they've read. One could just mark feed's items read when done looking through them, or even when there's no time to work through them (busy day, not interested in any news). Memorable stuff can be flagged. How does that fit your use patterns?

(I myself was deleting all items once I'm done with them, but after this issue was opened I started emulating your approach to find out how it feels. Marking items read worked for me so far, but then again—I either process all items by reading or marking them read, or I let them be until I can process them. Got 191 feeds, but none of them are news sites; I get a few hundred new articles per day, tops.)

Minoru commented 7 years ago

I've been marking items read instead of deleted for this past week, and it seems to work pretty well. I kept scaling up the number of feeds gradually, but today my HDD died and I'll have to stop until I get a replacement.

Minoru commented 7 years ago

So I've got a new disk and continued marking my items read instead of deleting them. Also subscribed to Hacker News to get nice and powerful water-hose of articles aimed my way :) It's been working fine for me.

Maybe I'm still misunderstanding people's use cases, though, so I'll keep this issue open for now.

timkuijsten commented 7 years ago

So I've got a new disk and continued marking my items read instead of deleting them. Also subscribed to Hacker News to get nice and powerful water-hose of articles aimed my way :) It's been working fine for me.

Thanks for your time and investigation!

Not sure, but out of the 267 feeds I'm following a significant portion of them are high-volume news sites. I don't have the exact numbers, but I wouldn't be surprised if there are more than 1000 new articles each day. For me this manually "tagging as read" is too much work. Therefore, for now I just keep using Thunderbird since this is the only client I know that doesn't require manual steps to keep track of new headlines.

I'll leave it up to you to close this issue or keep it open :)

Minoru commented 7 years ago

"tagging as read" is too much work

Just in case, I'd like to point out that "Catchup all" means "mark everything as read".

Actually, if you didn't know that, I think I should change my stance on #216 and rename this key. So: did you know?

And thanks for mentioning Thunderbird! I tried it out and indeed, this is quite different from what I've been doing with Newsbeuter for these past few weeks. Let me sleep on it.

timkuijsten commented 7 years ago

Just in case, I'd like to point out that "Catchup all" means "mark everything as read".

Actually, if you didn't know that, I think I should change my stance on #216 and rename this key. So: did you know?

No I did not. But I read in the other thread that this feature is marking all articles of all feeds as read, whether or not you have seen the titles of a particular feed, right? That's still different from the use case I'm explaining here, which is a per feed thing and is about whether or not a title has been on your screen or not.

Since you're trying out Thunderbird, you can see something simple and seemingly subtle as marking feeds with new unseen titles blue until you click on the feed, can make or break the usability of the reader with lots and lots of feeds and new articles each day.

Minoru commented 7 years ago

But I read in the other thread that this feature is marking all articles of all feeds as read, whether or not you have seen the titles of a particular feed, right?

That's right; sorry, I totally forgot that it's named "Catchup all" in feedlist but "Mark all read" in articlelist—thought it's "Catchup all" everyone. One more reason to get rid of this name, I guess.

My original point was: tagging as "read" shouldn't be too much work because it's just one keypress per feed.

Minoru commented 7 years ago

Since you're trying out Thunderbird, you can see something simple and seemingly subtle as marking feeds with new unseen titles blue until you click on the feed, can make or break the usability of the reader with lots and lots of feeds and new articles each day.

Starting Thunderbird four months later, I see what you meant back then: the items that I hadn't read back then are clearly separated from new items that were fetched just now.

As for things mentioned by @tsipinakis, I guess they're solvable:

  1. "Last fetch brought new items" implies "has new items", so we can stack statuses: "unseen" means the feed title is blue, "unread" means it's bold, "all read" means it's normal. This way low-traffic feeds with unread items are still prominent (they're in bold, possibly bold blue), while high-traffic ones get more informative (bold vs. bold blue gives user more info). Users that don't care about "unseen" flag can change "bold blue" to "bold" (I'm not sure we should add a whole new status column yet). Or am I misunderstanding the point?

  2. We can make search not change the "unseen" flag. And if user prefers to perform his searches manually, opening feeds and flicking through them... Well, we got to draw the line somewhere.

Overall, I think the feature is worthwhile, so I'm removing "to-consider" tag and am ready to discuss this with whoever is willing to work on the implementation.