don't process body of feed if it's null
Co-authored-by: Sean Molenaar <SMillerDev@users.noreply.github.com>
Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>
* Use Feed Link as GUID when Feed omits Guid.
As noted in nextcloud/news#1702 some feeds omit the GUID and are
therefore not a valid RSS feed.
nextcloud/news#1738 resolved the issue to allow valid feeds to
update correctly when an invalid feed is present.
This commit allows parsing of the invalid feed as well by assuming
that the item link of the feed is unique to the feed and using
it in place of the GUID when the feed omits the GUID.
This will allow NextCloud News to accept and behave like many other
popular feed aggregators when presented with such an invalid feed.
Signed-off-by: Accalia <Accalia@Elementia.me>
* Add basic Logging when using fallback guid
Signed-off-by: Accalia <Accalia@Elementia.me>
* Add basic Logging when using fallback guid - Fix Fatfinger Typo
Signed-off-by: Accalia <Accalia@Elementia.me>
* Add basic Logging when using fallback guid - Update tests to account for additional logging
Signed-off-by: Accalia <Accalia@Elementia.me>
Display the message instead of the response when catching an exception
during feed logo fetching. As there is no response and thus no method
`getResponse()` in `ConnectException`, this fixes a "call to undefined
method"-error that prevented feeds from fetching if fetching the logo
resulted in a `ConnectException`.
Signed-off-by: Michael Hamann <michael@content-space.de>
The logo of the feed is prefered if it is a square picture,
else the favicon is returned.
Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>
Co-authored-by: Sean Molenaar <SMillerDev@users.noreply.github.com>
We remove the call to readSince() as some feeds push new articles with
pubDate prior to the lastModified time stored for these feeds (e.g.
lemonde.fr). As we go through all items of a feed again and again, we
prevent the constant update of an item's lastModified timestamp by
keeping the previous one if its fingerprint does not change.
Fixes#921
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
LastModified is used (in a feed context to see if a user edited a feed). httpLastModified to store the last-modified response from the source.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
* replaced old status with 2 flags for unread and starred
* add fields to db, replace int(1,0) with booleans in sql queries, removed StatusFlags class + refactor code relying to it
* add repair step for migration
* again use integer(1,0) instead of bool in sql queries, because of sqlite doesn't support true/false
* add/fix unit tests for new boolean status
* set unread/starred flags as statements in sql
* fixed mysql unknown column items.unread, fixed marking of read items on repair step
* remove unnecessary bool casts
* add empty checks to Items::is* methods
* update migration to use native sql instead of the querybuilder
* don't cast the flags manually, let the api do the work