No description
Find a file
Ztec 228bb62df4 Add Media Player and resume to last playback position
In order to ease podcast listening, the player can be put on top of the feed entry as main content.
Use the `Use podcast player` option to enable that. It works on audio and video.

Also, when playing audio or video, progression will be saved in order to be able to resume listening later.
This position saving is done using the original attachement/enclosures player AND podcast player and do not rely on
the podcast player option ti be enabled.

Additionally, I made the player fill the width with the entry container to ease seeking and have a bigger video.

updateEnclosures now keep existing enclosures based on URL

When feeds get updated, enclosures entries are always wiped and re-created. This cause two issue
 - enclosure progression get lost in the process
 - enclosure ID changes

I used the URL as identifier of an enclosure. Not perfect but hopefully should work.
When an enclosure already exist, I simply do nothing and leave the entry as is in the database.
If anyone is listening/watching to this enclosure during the refresh, the id stay coherent and progression saving still works.

The updateEnclosures function got a bit more complex. I tried to make it the more clear I could.
Some optimisation are possible but would make the function harder to read in my opinion.

I'm not sure if this is often the case, but some feeds may include tracking or simply change the url each
time we update the feed. In those situation, enclosures ids and progression will be lost.

I have no idea how to handle this last situation. Use the size instead/alongside url to define the identity of an enclosure ?

Translation: english as placeholder for every language except French

Aside, I tested a video feed and fixed a few things for it. In fact, the MimeType was not working
at all on my side, and found a pretty old stackoverflow discussion that suggest to use an Apple non-standard MimeType for
m4v video format. I only did one substitution because I only have one feed to test. Any new video feed can make this go away
or evolve depending on the situation. Real video feeds does not tend to be easy to find and test extensively this.

Co-authored-by: toastal
2023-06-04 14:49:46 -07:00
.devcontainer Preconfigure Miniflux for GitHub Codespaces 2022-11-17 03:49:05 +00:00
.github Increase golangci-lint timeout value 2023-05-09 19:06:36 -07:00
api Proxy support for several media types 2023-02-25 15:57:59 -08:00
cli Update golang.org/x/crypto 2022-08-13 21:58:45 -07:00
client Add swipe as option for gesture navigation between entries. 2023-03-28 18:00:57 -07:00
config Make sure PROXY_IMAGES option is backward compatible 2023-04-02 18:35:43 -07:00
contrib Set Prometheus as datasource everywhere 2023-03-24 20:12:13 -07:00
crypto Fix some linter issues 2022-08-08 22:06:38 -07:00
database Add Media Player and resume to last playback position 2023-06-04 14:49:46 -07:00
errors Fix some linter issues 2022-08-08 22:06:38 -07:00
fever Proxy support for several media types 2023-02-25 15:57:59 -08:00
googlereader Proxy support for several media types 2023-02-25 15:57:59 -08:00
http Avoid XSS when opening a broken image due to unescaped ServerError in proxy handler 2023-03-12 22:36:03 -07:00
integration Add default tag names for Linkding integration 2023-05-30 21:02:27 -07:00
locale Add Media Player and resume to last playback position 2023-06-04 14:49:46 -07:00
logger Fix some linter issues 2022-08-08 22:06:38 -07:00
metric Add database stats to Prometheus exporter 2021-05-22 20:31:49 -07:00
model Add Media Player and resume to last playback position 2023-06-04 14:49:46 -07:00
oauth2 Fix some linter issues 2022-08-08 22:06:38 -07:00
packaging Use $(...) notation instead of legacy backticked ... 2022-11-12 20:30:44 -08:00
proxy Proxy support for several media types 2023-02-25 15:57:59 -08:00
reader Update scraping rules for ilpost.it 2023-05-02 17:07:25 -07:00
service Use r.RemoteAddr to check /metrics endpoint network access 2023-03-11 20:53:12 -08:00
storage Add Media Player and resume to last playback position 2023-06-04 14:49:46 -07:00
systemd Add Systemd watchdog 2021-05-22 18:46:15 -07:00
template Add Media Player and resume to last playback position 2023-06-04 14:49:46 -07:00
tests Add swipe as option for gesture navigation between entries. 2023-03-28 18:00:57 -07:00
timer Fix some linter issues 2022-08-08 22:06:38 -07:00
timezone Fix some linter issues 2022-08-08 22:06:38 -07:00
ui Add Media Player and resume to last playback position 2023-06-04 14:49:46 -07:00
url feat: support searching well-known urls in subdirectory 2023-04-02 17:44:14 -07:00
validator Add swipe as option for gesture navigation between entries. 2023-03-28 18:00:57 -07:00
version Fix some linter issues 2022-08-08 22:06:38 -07:00
worker Fix some linter issues 2022-08-08 22:06:38 -07:00
.gitignore Add Google Reader API implementation (experimental) 2022-01-02 19:45:12 -08:00
ChangeLog Update ChangeLog 2023-05-06 14:09:45 -07:00
doc.go Fix some linter issues 2022-08-08 22:06:38 -07:00
go.mod Bump github.com/tdewolff/minify/v2 from 2.12.5 to 2.12.6 2023-05-26 16:13:54 -07:00
go.sum Bump github.com/tdewolff/minify/v2 from 2.12.5 to 2.12.6 2023-05-26 16:13:54 -07:00
LICENSE First commit 2017-11-19 22:01:46 -08:00
main.go Remove completely generated files 2021-02-18 21:50:27 -08:00
Makefile Disable CGO explicitly to make sure the binary is statically linked 2023-02-25 16:55:11 -08:00
miniflux.1 Add HTTP Basic authentication for /metrics endpoint 2023-03-11 20:13:52 -08:00
Procfile Make latest changes compatible with Heroku 2018-08-29 20:50:36 -07:00
README.md Update contributor link and Godoc badge for client 2020-10-18 21:53:07 -07:00
SECURITY.md Update Security policy 2023-03-13 19:56:47 -07:00

Miniflux 2

Miniflux is a minimalist and opinionated feed reader:

  • Written in Go (Golang)
  • Works only with Postgresql
  • Doesn't use any ORM
  • Doesn't use any complicated framework
  • Use only modern vanilla Javascript (ES6 and Fetch API)
  • Single binary compiled statically without dependency
  • The number of features is voluntarily limited

It's simple, fast, lightweight and super easy to install.

Official website: https://miniflux.app

Documentation

The Miniflux documentation is available here: https://miniflux.app/docs/ (Man page)

Screenshots

Default theme:

Default theme

Dark theme when using keyboard navigation:

Dark theme

Credits