Commit Graph

184 Commits

Author SHA1 Message Date
Frédéric Guillot 60a7362327 Use SQL transaction when creating user sessions 2020-12-22 20:28:34 -08:00
Frédéric Guillot 7be9f5989e Use a SQL transaction when creating users 2020-12-22 15:47:35 -08:00
Frédéric Guillot 83f3ccab0e Remove extra column from users table (HSTORE field)
Migrated key/value pairs to specific columns.
2020-12-21 21:35:03 -08:00
Frédéric Guillot a026efce6e Use created_at instead of published_at for archiving entries 2020-12-02 21:08:55 -08:00
Ben Congdon 49feb1958c
Add created_at field for entries 2020-11-29 17:04:18 -08:00
Frédéric Guillot de7a613098 Calculate reading time during feed processing
The goal is to speed up the user interface.

Detecting the language based on the content is pretty slow.
2020-11-18 17:43:24 -08:00
Manuel Garrido 84b83fc3c8
Add feed filters (Keeplist and Blocklist) 2020-10-16 14:40:56 -07:00
Tony Wang 37bc451741
Remove plaintext Fever password from database 2020-10-06 21:22:24 -07:00
Philipp Rempe 7da72cf89a Add setting for swipe gesture on entries on mobile 2020-10-04 17:45:18 -07:00
Frédéric Guillot c394a61a4e Add Prometheus exporter 2020-09-27 20:04:48 -07:00
Frédéric Guillot 0d0395b4e3 Do not try to update a duplicated feed after a refresh 2020-09-20 23:42:18 -07:00
Frédéric Guillot e6c6ee441a Use a transaction to refresh and create entries
Also includes few database improvements:

- Speed up entries clean up with an index and a goroutine
- Avoid the accumulation of enclosures for some feeds
2020-09-20 23:12:23 -07:00
Frédéric Guillot ad66250734 Archive older entries first 2020-09-14 20:21:38 -07:00
Frédéric Guillot 55fad7ea27 Avoid duplication between get feed entries and get entries API endpoints 2020-09-13 21:57:55 -07:00
Frédéric Guillot 04c4890124 API: Add the possibility to filter entries by a list of statuses 2020-09-12 21:35:18 -07:00
Frédéric Guillot 13c89c29c5 Add option to archive unread entries 2020-09-12 20:17:52 -07:00
Kebin Liu cf7712acea
Add HTTP proxy option for subscriptions 2020-09-09 23:28:54 -07:00
Frédéric Guillot 8fb71366f8 API: Delete users asynchronously
Deleting large users might lock the tables in the hosted offering
2020-07-28 20:39:10 -07:00
Maxime Bailleul ee5a8a05c9 Add reading time for entries 2020-07-16 19:47:41 -07:00
logan 5f266319a3 Add option to change the number of entries per page (fixes #40) 2020-07-08 20:14:31 -07:00
Shizun Ge e32fa059e5
Do not archive shared items 2020-07-01 20:11:36 -07:00
Sergei O. Udalov c0e407e156
Display recent entries first in search results 2020-06-30 20:50:34 -07:00
Frédéric Guillot f52f00abcf Fix regression: the entire hstore field is replaced when updating settings 2020-06-16 20:02:13 -07:00
Frédéric Guillot 6c6ca69141 Add feed option to ignore HTTP cache 2020-06-05 22:04:52 -07:00
Frédéric Guillot 7e5157f218 Rename alternative scheduler to entry_frequency 2020-05-25 15:12:47 -07:00
Shizun Ge cead85b165
Add alternative scheduler based on the number of entries 2020-05-25 14:06:56 -07:00
Frédéric Guillot 4cdfd64db0 Speed up feed list page rendering 2020-05-22 18:02:49 -07:00
Frédéric Guillot 70c2568af8 Add index to speed up slow query 2020-05-20 18:19:35 -07:00
Frédéric Guillot eb8d8e84f2 Updating custom css field should also happen when updating the password
Bug introduced in PR #627
2020-04-25 20:26:02 -07:00
Alex McGrath 7accdc4416 Add the ability to use custom css 2020-04-22 20:53:09 -07:00
Frédéric Guillot 9871e4f5d0 Add page to list and remove shared entries 2020-03-22 19:53:44 -07:00
Frédéric Guillot 59c8dac851 Display Feed URL on shared page instead of user feed entries 2020-03-17 20:28:53 -07:00
Lesterpig 41a2b7e58e Add "Share article" feature
A new "shareCode" field is generated for each entry, and allows
unlogged users to access the entry through the /shared endpoint.
This feature is particularly useful to share articles from miniflux
to third-party users without having them to visit the original source.

The image proxy is disabled and special cache headers are proposed in
the shared page to avoid denial of service.
2020-03-17 20:09:46 -07:00
Frédéric Guillot 1b86913c00 Fix SQL injection in full-text search rank ordering
Introduced in commit 267b706544
2020-03-10 21:12:28 -07:00
Frédéric Guillot 25cc0d2447 Add per-application API Keys 2020-03-01 18:22:45 -08:00
Peter De Wachter 2570c3410b
History: show entries in the order in which they were read
Add a changed_at timestamp to the entries table. This field is updated
whenever the entry's metadata changes.
2020-02-10 20:20:03 -08:00
Frédéric Guillot 997e9422eb Ignore enclosures without URL 2020-01-30 21:18:49 -08:00
Benjamin Barenblat cb494ac416 Correct spelling of “toggle” 2020-01-29 18:36:09 -08:00
Frédéric Guillot 69aa650203 Add the possibility to add rules during feed creation 2019-11-29 11:27:58 -08:00
Frédéric Guillot 7b995044b4 Make sure to remove integration settings when removing a user 2019-11-17 23:11:59 -08:00
Frédéric Guillot e878dca3d7 Add API parameter to filter entries by category 2019-11-17 23:05:22 -08:00
Frédéric Guillot fad9ad2be4 Display list of feeds per category 2019-11-17 20:10:44 -08:00
Frédéric Guillot d3883126bf Improve storage module 2019-10-29 22:59:00 -07:00
Maxim Baz e38333e272 Show unread counters on feeds page 2019-10-29 21:44:35 -07:00
Tony Wang 7409bba0d8 Compare Fever token case-insensitively 2019-10-21 20:00:16 -07:00
Frédéric Guillot d610d091fe Avoid constraint error when having duplicate entries
During feed creation, duplicated entries will generate an SQL contraint error.

This change ignore the duplicated entry to avoid showing an error.
2019-09-18 22:53:47 -07:00
Ty Cobb 3a60abbac0 Make configurable the number of days to remove old sessions 2019-09-11 20:10:33 -07:00
Frédéric Guillot 3d19313a7f Add option to disable feeds 2019-07-26 21:24:15 -07:00
Frédéric Guillot 0dff432337 Remove debug timer from most storage functions 2019-04-28 20:21:31 -07:00
Frédéric Guillot 4295a86e55 Add option to enable/disable keyboard shortcuts 2019-04-28 18:35:58 -07:00
Jacob Wahlgren 22b68eefd8 Allow users to disable auto-remove
Adds ARCHIVE_READ_DAYS="-1"
2019-03-10 10:51:21 -07:00
Frédéric Guillot f3fc8b7072 Use feed ID instead of user ID to check entry URLs presence 2019-02-28 20:43:33 -08:00
Jebbs 267b706544 Sort search results by relevance 2019-02-11 22:20:07 -08:00
Frédéric Guillot 7897d8a8ad Handle the case when application session is expired and not user session 2019-01-21 20:21:05 -08:00
Peter De Wachter 27e79a4693 Make the feed list order case-insensitive 2019-01-07 17:55:57 -08:00
Frédéric Guillot 012138179c Add function storage.UpdateFeedError() 2018-12-15 13:04:38 -08:00
Jebbs 87648490fd Make configurable the number of days to archive read items 2018-12-05 20:35:30 -08:00
Frédéric Guillot cb037910df Archive more read entries 2018-11-25 15:01:01 -08:00
Frédéric Guillot f6028f3863 Improve Fever middleware and handle groupID=0 2018-10-26 19:49:49 -07:00
Frédéric Guillot 74c35ad000 Add more details in feed storage errors to facilitate debugging 2018-10-21 11:48:29 -07:00
Frédéric Guillot a614f98063 Set arbitrary maximum size for tsvector column
- The max size for tsvector is 1 MiB
- We index only the first million of characters,
  it should be enough for most feed entries.
2018-10-19 21:40:59 -07:00
Frédéric Guillot 778346b0b0 Simplify feed fetcher
- Add browser package to handle HTTP errors
- Reduce code duplication
2018-10-14 21:43:48 -07:00
Frédéric Guillot 11dfcdd3d6 Fix typo in license header 2018-10-08 15:50:15 -07:00
Frédéric Guillot ddfe969d6c Improve Fever API performances when marking a feed or group as read 2018-10-07 12:50:59 -07:00
Patrick 2538eea177 Add the possibility to override default user agent for each feed 2018-09-19 18:19:24 -07:00
Dave Z 9169fbafb2 Show count of feeds with permanent errors in header menu
Only for feeds that reach `maxParsingError` are counted (so transient errors do not trigger counter).
2018-08-26 16:18:07 -07:00
Frédéric Guillot dbcc5d8a97 Use canonical imports 2018-08-24 21:56:39 -07:00
Frédéric Guillot cf03e0e338 Create database package (refactoring) 2018-08-01 20:28:45 -07:00
Frédéric Guillot 6d0dc451e4 Add search form 2018-07-04 22:05:19 -07:00
Frédéric Guillot af15412954 Add full-text search for entries and add search parameter to the API 2018-07-04 17:40:03 -07:00
Frédéric Guillot 5cf504745b Add cli flag to reset all feed errors 2018-06-30 14:22:45 -07:00
Frédéric Guillot dd78fb4340 Do not ignore errored feeds when a user refresh feeds manually 2018-06-26 23:02:41 -07:00
Frédéric Guillot bddca15b69 Add new fields for feed username/password 2018-06-19 22:58:29 -07:00
Frédéric Guillot c5373ff2bf Rewrite individual entry pagination SQL queries 2018-06-09 13:40:20 -07:00
Frédéric Guillot bd70640794 Simplify entry query builder 2018-06-08 18:24:41 -07:00
Frédéric Guillot cf7a7e25fb Convert IP field from text to inet type 2018-05-21 19:58:36 -04:00
Allan Reyes 0f3f5e442f Add Pocket integration 2018-05-20 13:31:56 -07:00
Frédéric Guillot f19ab21b7d Archive read entries automatically after 60 days 2018-05-19 16:45:27 -07:00
Frédéric Guillot 31da4db14f Do not show save link if no integration is configured 2018-04-29 17:43:40 -07:00
Frédéric Guillot b166ceaea7 Avoid people to unlink their OAuth2 account without having a local password 2018-04-29 17:04:43 -07:00
Frédéric Guillot f49b42f70f Use vanilla HTTP handlers (refactoring) 2018-04-29 16:35:04 -07:00
Frédéric Guillot 15202b8675 Do not return an error if the user session is not found 2018-04-09 21:52:24 -07:00
Ben Brooks 538d08c16c Add CommentsURL to entry 2018-04-07 13:50:45 -07:00
Frédéric Guillot 482785c5e6 Convert enclosure size field to bigint 2018-03-14 20:09:06 -07:00
Frédéric Guillot a8be61cdbb Filter the list of timezones 2018-03-04 17:38:08 -08:00
Frédéric Guillot 609c57332e Show last login and session creation date in current timezone 2018-03-04 17:04:31 -08:00
Frédéric Guillot 0c7039de0e Entries date should contains user timezone (API) 2018-03-01 21:43:04 -08:00
Frédéric Guillot 953d0a2dc0 Support localized feed errors generated by background workers 2018-02-27 21:08:32 -08:00
Nicolas Carlier 34ce114231 Add Nunux Keeper integration 2018-02-25 11:49:08 -08:00
Frédéric Guillot a006a93a04 Add indexes 2018-02-10 22:30:43 -08:00
Frédéric Guillot b0442e0277 Do not update entry date while refreshing a feed
We do not update the published date because some feeds do not contains any date,
in this case it default to time.Now(), which could change the order of items on
the history page.
2018-01-29 21:07:55 -08:00
Frédéric Guillot ffabb009b8 Do not override existing entries when the crawler is enabled 2018-01-20 14:04:19 -08:00
Frédéric Guillot 3b62f904d6 Do not crawl existing entry URLs 2018-01-20 13:25:20 -08:00
Frédéric Guillot 9652dfa1fe Add more comments (GoDoc) 2018-01-11 19:21:20 -08:00
Frédéric Guillot c57cafbef2 Add link to mark everything as read 2018-01-04 18:11:15 -08:00
Frédéric Guillot c39f2e1a8d Rename helper packages 2018-01-02 19:15:08 -08:00
Frédéric Guillot 747e3edab3 Make sure username are always lowercase 2017-12-29 14:55:16 -08:00
Frédéric Guillot 038ea790f7 Make sure people don't create duplicate Fever usernames 2017-12-29 14:38:43 -08:00
Frédéric Guillot 0f053b07a5 Improve user API responses 2017-12-29 13:53:02 -08:00
Frédéric Guillot a63105e13b Improve timezone handling 2017-12-28 19:20:14 -08:00