spacecowboy / Feeder

Android RSS reader app
GNU General Public License v3.0
1.63k stars 99 forks source link

Manual refresh leads to unconditional request #412

Open sjaeckel opened 2 weeks ago

sjaeckel commented 2 weeks ago

Checklist

App version

2.6.{31,32,33}

Where did you get the app from

F-Droid

Android version

iodé 5.6 - Android 14

Device model

No response

First occurred

No response

Steps to reproduce

  1. Subscribe to a feed
  2. Do a manual refresh

Expected behaviour

The request to the feed should be conditional.

Current behaviour

The request to the feed is unconditional.

Logs

I can provide logs privately.

Comments

I'm participating in the feed reader summary of https://rachelbythebay.com/ and rachel contacted me about weird behavior of Feeder that she couldn't explain. You can read some of her write-ups here: ^0 ^2

I realized that all those unwanted requests happen, when someone does a manual refresh of the subscribed feeds.

spacecowboy commented 2 weeks ago

This is working as designed.

When a user manually refreshes a feed, that is an indication that the user really really wants the latest updates NOW.

Hence, a request is made to server to check for new content.

Automatic sync uses conditional requests and respects all cache headers.

My advice is to never manually refresh Rachel's feed.

sjaeckel commented 2 weeks ago

Automatic sync uses conditional requests and respects all cache headers.

Indeed, that works as expected FMU.

My advice is to never manually refresh Rachel's feed.

I'd say her feed reader survey has less to do with "Rachel's feed", but more about making feed reader software well behave.

After reading up about what should be done in which way and how clients and servers should behave, I gave up on trying to reason myself who's right and who's wrong (or if there's even right and wrong in this discussion, or merely better and worse...).

So I'm simply leaving https://rachelbythebay.com/fs/help.html here, which contains her PoV on this subject. Maybe there's some middle ground to meet, so all of us are happy.

Btw. did I already say thanks for this great piece of software? I guess I forgot that :) Thanks!

spacecowboy commented 2 weeks ago

Btw. did I already say thanks for this great piece of software? I guess I forgot that :) Thanks!

Thanks!

I can mention that I have been in correspondance with Rachel 1 or 2 years ago. Her feedback helped fix the conditional logic which Feeder uses.

It's not possible (I think) to make her 100% happy becuase of behavior implemented in the http library which feeder users (OkHttp)

sjaeckel commented 1 week ago

It's not possible (I think) to make her 100% happy becuase of behavior implemented in the http library which feeder users (OkHttp)

Did you try to open an issue with OkHttp?

Would it maybe be an option to have a setting that disables those unconditional requests? Have a global setting "Never send unconditional requests", then a setting per Feed "Allow unconditional requests". For the global setting I see two options, the hard way and enabling it per default, which will most likely result in a mass of bug reports against broken feeds, or the soft way and disabling it per default...

spacecowboy commented 6 days ago

It's not possible (I think) to make her 100% happy becuase of behavior implemented in the http library which feeder users (OkHttp)

Did you try to open an issue with OkHttp?

Would it maybe be an option to have a setting that disables those unconditional requests? Have a global setting "Never send unconditional requests", then a setting per Feed "Allow unconditional requests". For the global setting I see two options, the hard way and enabling it per default, which will most likely result in a mass of bug reports against broken feeds, or the soft way and disabling it per default...

I would be against such a setting. It's an internal implementation detail users should not be concerned with.

OkHttp isn't broken. This is simply a choice. 99.9999% of web site owners of the world are not concerned about some extra kilobytes being sent