Commit Graph

58 Commits

Author SHA1 Message Date
Frédéric Guillot
04b6eb509c Rename session cookies 2019-01-21 20:26:46 -08:00
Peter De Wachter
15505ee4a2 Make UTF-8 the default encoding for XML feeds
Consider the feed http://planet.haskell.org/atom.xml
- This is a UTF-8 encoded XML file
- No encoding declaration in the XML header
- No Unicode byte order mark
- Served with HTTP Content-Type "text/xml" (no charset parameter)

Miniflux lets charset.NewReader handle this. The charset package
implements the HTML5 character encoding algorithm, which, in this
situation, defaults to windows-1252 encoding if there are no UTF-8
characters in the first 1000 bytes. So for this feed, we get the wrong
encoding.

I inserted an explicit "utf8.Valid()" check, which fixes this problem.
2019-01-02 21:05:05 -08:00
Frédéric Guillot
6ae935309a Ignore JSON feeds from EnsureUnicode() 2018-12-12 21:37:39 -08:00
Frédéric Guillot
82e08d0f69 Update XML encoding regex to take single quotes into consideration 2018-12-12 21:13:06 -08:00
Frédéric Guillot
f3bff76aa1 Make sure slice is not out of range when reading XML prolog 2018-11-24 12:17:00 -08:00
Frédéric Guillot
9f85f67031 Make sure the remote address is populated even when using unix socket 2018-11-11 16:42:30 -08:00
Frédéric Guillot
1ff9950a55 Remove charset=utf-8 from JSON responses
See: https://www.iana.org/assignments/media-types/application/json
2018-11-03 12:03:06 -07:00
Frédéric Guillot
ae1dc1a91e Handle more encoding conversion edge cases 2018-10-29 23:00:03 -07:00
Frédéric Guillot
5870f04260 Simplify feed parser and format detection
- Avoid doing multiple buffer copies
- Move parser and format detection logic to its own package
2018-10-14 11:46:41 -07:00
Frédéric Guillot
9dc38a0803 Add missing package descriptions for GoDoc 2018-10-08 17:32:17 -07:00
Frédéric Guillot
11dfcdd3d6 Fix typo in license header 2018-10-08 15:50:15 -07:00
Frédéric Guillot
1f58b37a5e Refactor HTTP response builder 2018-10-08 15:31:58 -07:00
Frédéric Guillot
9d08139f43 Improve request package and add more unit tests 2018-09-23 21:02:26 -07:00
Patrick
2538eea177 Add the possibility to override default user agent for each feed 2018-09-19 18:19:24 -07:00
Frédéric Guillot
c9f9dd3262 Store client IP address in request context 2018-09-09 15:15:14 -07:00
Frédéric Guillot
c1e1506720 Revert cookie flag from strict to lax mode otherwise oauth2 won't work 2018-09-09 14:25:56 -07:00
Frédéric Guillot
eee1f31903 Refactor HTTP context handling 2018-09-03 14:26:40 -07:00
Frédéric Guillot
88e81d4d80 Set cookie attribute SameSite to strict mode 2018-08-29 21:17:19 -07:00
Frédéric Guillot
c327833314 Simplify context keys 2018-08-25 09:50:43 -07:00
Frédéric Guillot
dbcc5d8a97 Use canonical imports 2018-08-24 21:56:39 -07:00
Frédéric Guillot
17054b396e Update user agent with new website URL 2018-07-28 10:32:48 -07:00
Frédéric Guillot
9f6533ece9 Compress JSON, CSS and Javascript responses 2018-07-19 19:27:05 -07:00
Frédéric Guillot
a291d8a38b Improve themes handling
- Store user theme in session
- Logged out users will keep their theme
- Add theme background color to web manifest and meta tag
2018-07-18 22:30:05 -07:00
Frédéric Guillot
34a3fe426b Compress HTML responses to Gzip/Deflate if supported by browser 2018-07-06 20:39:28 -07:00
Frédéric Guillot
9c0f882ba0 Add specific 404 and 401 error messages 2018-06-30 12:42:12 -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
b5c317f971 Disable keep-alive for HTTP client 2018-06-19 20:21:24 -07:00
Frédéric Guillot
7914261437 Close HTTP response body even for failed requests 2018-06-19 20:13:13 -07:00
Frédéric Guillot
36dab8b518 Add more filters for API call /entries
New filters:

- before (unix timestamp)
- before_entry_id
- after
- after_entry_id
- starred (boolean)
2018-06-09 19:13:41 -07:00
Frédéric Guillot
3b39f0883c Rewrite RealIP() to avoid returning an empty string 2018-06-01 07:22:31 -07:00
Frédéric Guillot
7f2fd1fdd8 Add Pocket authorization flow in the user interface 2018-05-20 15:29:14 -07:00
Frédéric Guillot
2f4cd59ad9 Make sure to close request body in HTTP client 2018-04-29 23:11:10 -07:00
Frédéric Guillot
f49b42f70f Use vanilla HTTP handlers (refactoring) 2018-04-29 16:35:04 -07:00
Frédéric Guillot
1eba1730d1 Move HTTP client to its own package 2018-04-28 10:51:07 -07:00
Frédéric Guillot
04adf5fdf5 Add middleware to read X-Forwarded-Proto header 2018-04-27 22:25:00 -07:00
Frédéric Guillot
ddd3af4b85 Do not use shared variable to translate templates 2018-04-27 22:07:46 -07:00
Frédéric Guillot
6b360d08c1 Use Gorilla middleware (refactoring) 2018-04-27 20:38:46 -07:00
Frédéric Guillot
7640a8cbab Ignore caching headers for feeds that send "Expires: 0" 2018-04-09 20:18:54 -07:00
Nicolas Carlier
34ce114231 Add Nunux Keeper integration 2018-02-25 11:49:08 -08:00
Frédéric Guillot
dda9114692 Improve error handling for HTTP client 2018-02-08 18:16:54 -08:00
Frédéric Guillot
61bc012a62 Add support for HTTP Strict Transport Security header 2018-02-03 15:54:02 -08:00
Frédéric Guillot
9c42997209 Add support for base URLs with subfolders 2018-02-03 15:33:17 -08:00
Frédéric Guillot
577bcddb2a Change user agent 2018-01-22 20:43:03 -08:00
Frédéric Guillot
713b38e34c Handle more encoding edge cases
- Feeds with charset specified only in Content-Type header and not in XML document
- Feeds with charset specified in both places
- Feeds with charset specified only in XML document and not in HTTP header
2018-01-20 13:25:21 -08:00
Frédéric Guillot
bdcc4134fa Store language in session to show the login page translated 2018-01-20 13:25:20 -08:00
Rogier Lommers
4aec2453f4 Add API endpoint for OPML export 2018-01-12 13:42:36 -08:00
Frédéric Guillot
9652dfa1fe Add more comments (GoDoc) 2018-01-11 19:21:20 -08:00
Frédéric Guillot
7d278d49f1 Add content length check when refreshing feeds 2018-01-04 18:41:23 -08:00
Frédéric Guillot
320d1b0167 Refactor packages to have more idiomatic code base 2018-01-02 22:04:48 -08:00
Frédéric Guillot
c39f2e1a8d Rename helper packages 2018-01-02 19:15:08 -08:00