Changelog History
Page 4
-
v1.12 Changes
๐ Released 2020-12-13
- โ Add the
limit
andstarting_after
arguments to :meth:~Reader.get_feeds
, :meth:~Reader.get_entries
, and :meth:~Reader.search_entries
, allowing them to be used in a paginated fashion. (:issue:196
) - โ Add the :attr:
~Entry.object_id
property that allows getting the unique identifier of a data object in a uniform way. (:issue:196
) - ๐ In the web application, add links to toggle feed/entry counts. (:issue:
185
)
- โ Add the
-
v1.11 Changes
November 28, 2020๐ Released 2020-11-28
- ๐ Allow disabling feed updates for specific feeds. (:issue:
187
) - โ Add methods to get aggregated feed and entry counts. (:issue:
185
) - ๐ In the web application:
allow disabling feed updates for a feed;
allow filtering feeds by whether they have updates enabled;
do not show feed update errors for feeds that have updates disabled.
(:issue:
187
) - ๐ In the web application,
show feed and entry counts when
?counts=yes
is used. (:issue:185
) - ๐ In the web application, use YAML instead of JSON for the tags and metadata fields.
- ๐ Allow disabling feed updates for specific feeds. (:issue:
-
v1.10 Changes
November 20, 2020๐ Released 2020-11-20
- ๐ Use indexes for :meth:
~Reader.get_entries()
(recent order); should make calls 10-30% faster. (:issue:134
) - ๐ Allow sorting :meth:
~Reader.search_entries
results randomly. Allow sorting search results randomly in the web application. (:issue:200
) - ๐ Reraise unexpected errors caused by parser bugs
instead of replacing them with an :exc:
AssertionError
. - โ Add the
sqlite_releases
custom parser plugin. - ๐จ Refactor the HTTP feed sub-parser to allow reuse by custom parsers.
- โ Add a user guide, and improve other parts of the documentation.
(:issue:
194
)
- ๐ Use indexes for :meth:
-
v1.9 Changes
October 28, 2020๐ Released 2020-10-28
- ๐ Support Python 3.9. (:issue:
199
) - ๐ Support Windows (requires Python >= 3.9). (:issue:
163
) - ๐ Use GitHub Actions to do macOS and Windows CI builds. (:issue:
199
) - Rename the
cloudflare_ua_fix
plugin toua_fallback
. Retry any feed that gets a 403, not just those served by Cloudflare. (:issue:181
) - ๐ Fix type annotation to avoid mypy 0.790 errors. (:issue:
198
)
- ๐ Support Python 3.9. (:issue:
-
v1.8 Changes
October 02, 2020๐ Released 2020-10-02
- โฌ๏ธ Drop feedparser 5.x support (deprecated in 1.7);
use feedparser 6.x instead.
(:issue:
190
) - ๐ Make the string representation of :exc:
ReaderError
and its subclasses more consistent; add error messages and improve the existing ones. (:issue:173
) - Add method :meth:
~Reader.change_feed_url
to change the URL of a feed. (:issue:149
) - ๐ Allow changing the URL of a feed in the web application.
(:issue:
149
) - โ Add more tag navigation links to the web application.
(:issue:
184
) - In the
feed_entry_dedupe
plugin, copy the important flag from the old entry to the new one. (:issue:140
)
- โฌ๏ธ Drop feedparser 5.x support (deprecated in 1.7);
use feedparser 6.x instead.
(:issue:
-
v1.7 Changes
September 19, 2020๐ Released 2020-09-19
- Add new methods to support feed tags: :meth:
~Reader.add_feed_tag
, :meth:~Reader.remove_feed_tag
, and :meth:~Reader.get_feed_tags
. Allow filtering feeds and entries by their feed tags. (:issue:184
) - โ Add the
broken
argument to :meth:~Reader.get_feeds
, which allows getting only feeds that failed / did not fail during the last update. (:issue:189
) - ๐ feedparser 5.x support is deprecated in favor of feedparser 6.x.
Using feedparser 5.x will raise a deprecation warning in version 1.7,
and support will be removed the following version.
(:issue:
190
) - ๐ท Tag-related web application features:
show tags in the feed list;
allow adding/removing tags;
allow filtering feeds and entries by their feed tag;
add a page that lists all tags.
(:issue:
184
) - ๐ In the web application, allow showing only feeds that failed / did not fail.
(:issue:
189
) - In the
preview_feed_list
plugin, add<meta>
tags as a feed detection heuristic. - โ Add a few property-based tests. (:issue:
188
)
- Add new methods to support feed tags: :meth:
-
v1.6 Changes
September 04, 2020๐ Released 2020-09-04
- Add the
feed_root
argument to :func:make_reader
, which allows limiting local feed parsing to a specific directory or disabling it altogether. Using it is recommended, since by default reader will access any local feed path (in 2.0, local file parsing will be disabled by default). (:issue:155
) - ๐ Support loading CLI and web application settings from a
:doc:
configuration file <config>
. (:issue:177
) - Fail fast for feeds that return HTTP 4xx or 5xx status codes,
instead of (likely) failing later with an ambiguous XML parsing error.
The cause of the raised :exc:
ParseError
is now an instance of :exc:requests.HTTPError
. (:issue:182
) - Add
cloudflare_ua_fix
plugin (work around Cloudflare sometimes blocking requests). (:issue:181
) - ๐ feedparser 6.0 (beta) compatibility fixes.
- ๐ Internal parser API changes to support alternative parsers, pre-request hooks,
and making arbitrary HTTP requests using the same logic :class:
Reader
uses. (:issue:155
) - In the /preview page and the
preview_feed_list
plugin, use the same plugins the main :class:Reader
does. (enabled by :issue:155
)
- Add the
-
v1.5 Changes
July 30, 2020๐ Released 2020-07-30
- ๐ Use rowid when deleting from the search index, instead of the entry id.
Previously, each :meth:
~Reader.update_search
call would result in a full scan, even if there was nothing to update/delete. This should reduce the amount of reads significantly (deleting 4 entries from a database with 10k entries resulted in an 1000x decrease in bytes read). (:issue:178
) - ๐ Require at least SQLite 3.18 (released 2017-03-30) for the current
:meth:
~Reader.update_search
implementation; all other reader features continue to work with SQLite >= 3.15. (:issue:178
) - โก๏ธ Run
PRAGMA optimize
on :meth:~Reader.close()
. This should increase the performance of all methods. As an example, in :issue:178
it was found that :meth:~Reader.update_search
resulted in a full scan of the entries table, even if there was nothing to update; this change should prevent this from happening. (:issue:143
)
.. note::
PRAGMA optimize
is a no-op in SQLite versions earlier than 3.18. In order to avoid the case described above, you should runANALYZE
_ regularly (e.g. every few days)... _ANALYZE: https://www.sqlite.org/lang_analyze.html
- ๐ Use rowid when deleting from the search index, instead of the entry id.
Previously, each :meth:
-
v1.4 Changes
July 13, 2020๐ Released 2020-07-13
โก๏ธ Work to reduce the likelihood of "database is locked" errors during updates (:issue:
175
):- Prepare entries to be added to the search index
(:meth:
~Reader.update_search
) outside transactions. - Fix bug causing duplicate rows in the search index when an entry changes while updating the search index.
- Update the search index only when the indexed values change (details below).
- Use SQLite WAL (details below).
- Prepare entries to be added to the search index
(:meth:
โก๏ธ Update the search index only when the indexed values change. Previously, any change on a feed would result in all its entries being re-indexed, even if the feed title or the entry content didn't change. This should reduce the :meth:
~Reader.update_search
run time significantly.๐ฒ Use SQLite's
write-ahead logging
_ to increase concurrency. At the moment there is no way to disable WAL. This change may be reverted in the future. (:issue:169
)Require at least click 7.0 for the
cli
extra.Do not fail for feeds with incorrectly-declared media types, if feedparser can parse the feed; this is similar to the current behavior for incorrectly-declared encodings. (:issue:
171
)โก๏ธ Raise :exc:
ParseError
during update for feeds feedparser can't detect the type of, instead of silently returning an empty feed. (:issue:171
)โ Add
sort
argument to :meth:~Reader.search_entries
. Allow sorting search results by recency in addition to relevance (the default). (:issue:176
)๐ In the web application, display a nice error message for invalid search queries instead of returning an HTTP 500 Internal Server Error.
๐ Other minor web application improvements.
๐ฒ Minor CLI logging improvements.
๐ฒ .. _write-ahead logging: https://www.sqlite.org/wal.html
-
v1.3 Changes
June 23, 2020๐ Released 2020-06-23
- โก๏ธ If a feed failed to update, provide details about the error
in :attr:
Feed.last_exception
. (:issue:68
) - โก๏ธ Show details about feed update errors in the web application. (:issue:
68
) - โก๏ธ Expose the :attr:
~Feed.added
and :attr:~Feed.last_updated
Feed attributes. - โก๏ธ Expose the :attr:
~Entry.last_updated
Entry attribute. - โก๏ธ Raise :exc:
ParseError
/ log during update if an entry has no id, instead of unconditionally raising :exc:AttributeError
. (:issue:170
) - Fall back to as entry id if an entry in an RSS feed has no ;
previously, feeds like this would fail on update. (:issue:
170
) - โก๏ธ Minor web application improvements (show feed added/updated date).
- ๐ In the web application, handle previewing an invalid feed nicely
instead of returning an HTTP 500 Internal Server Error. (:issue:
172
) - ๐ Internal API changes to support multiple storage implementations
in the future. (:issue:
168
)
- โก๏ธ If a feed failed to update, provide details about the error
in :attr: