1pav
0d935a863f
Make web app display mode configurable
...
The change is visible after reinstalling the web app.
It's not compatible with all browsers.
See https://developer.mozilla.org/en-US/docs/Web/Manifest/display
2021-02-28 13:29:51 -08:00
Frédéric Guillot
ec3c604a83
Add option to allow self-signed or invalid certificates
2021-02-21 13:58:52 -08:00
Frédéric Guillot
e3c28a6c96
Improve health check endpoint to test database connection
2021-02-19 19:32:13 -08:00
Rogier Lommers
421bb467d0
Show Postgres version in about page
2021-02-16 07:37:24 -08:00
Frédéric Guillot
f29940d784
Rename storage certificate cache
...
This cache is used only for ACME certificates.
Being explicit is always better.
2021-02-13 14:16:30 -08:00
Frédéric Guillot
9a9a271b1f
Limit full-text search indexation to first 500K characters
...
tsvector has a size limit of 1MB. See https://www.postgresql.org/docs/13/textsearch-limitations.html
Input text is now truncated to avoid this error:
"pq: string is too long for tsvector (1057834 bytes, max 1048575 bytes)"
2021-02-06 14:10:45 -08:00
Dave Marquard
0bece2df7d
Database backed LetsEncrypt certificate cache ( #993 )
2021-01-29 18:44:40 -08:00
Ilya Mateyko
4464802947
Reformat some Go files
...
When working on #994 I noticed that some Go files are not formatted with
`gofmt`.
This PR fixes this.
2021-01-27 18:13:58 -08:00
Shizun Ge
7c44238bae
Add global option POLLING_PARSING_ERROR_LIMIT
2021-01-25 21:41:36 -08:00
Shizun Ge
02a4c9db53
Create feed query builder
2021-01-18 13:22:09 -08:00
Frédéric Guillot
4468ef1410
Refactor category validation
2021-01-03 22:50:24 -08:00
Frédéric Guillot
e45cc2d2aa
Refactor user validation
...
Validate each user field for creation/modification via API and web UI
2021-01-03 21:36:35 -08:00
Frédéric Guillot
f0610bdd9c
Refactor feed creation to allow setting most fields via API
...
Allow API clients to create disabled feeds or define field like "ignore_http_cache".
2021-01-02 16:48:22 -08:00
Frédéric Guillot
d3cfa6396d
Improve user mass delete
2020-12-22 21:02:10 -08:00
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