github SeaweedbrainCY/jellyfin-newsletter v1.0.0

8 hours ago

Very happy to release Jellyfin-Newsletter v1.0.0 ❤️
This version brings massive improvements, but has several breaking changes. Upgrade with care

Caution

This version includes breaking changes. Make sure to review it and adapt your configuration file before running it.

🐳 New docker images

This release is available in the following tags : latest, 1.0 and 1.0.0
Major release tag (recommended) :

  • ghcr.io/seaweedbraincy/jellyfin-newsletter:1.0

Latest tag :

  • ghcr.io/seaweedbraincy/jellyfin-newsletter:latest

Exact tag :

  • ghcr.io/seaweedbraincy/jellyfin-newsletter:1.0.0

💎 Major changes

Go engine

This version brings a full rewrite of the jellyfin-newsletter engine from python to Go. The full explanation is listed here.

The main impact for the user is about the performance that are tremendously improved.

Comparison of the 2 engines

Python Engine (version <1.0.0) Go engine (version >= 1.0.0) Improvement
Docker image size 810 Mo 29 Mo ✨ 27x lighter ✨
Memory usage 35 Mo 3.5 Mo ✨ Consume 10x less ✨

Overall, the Go engine brings a much cleaner architecture, more efficient and ready to have more features or plugin easily plugged.

Weblate localization

It is now easier than ever to contribute to Jellyfin-Newsletter localization ! Everyone can help translating the newsletter directly on weblate. Currently the supported languages are :

State of localization

⛓️‍💥 Breaking changes

Placeholders

Placeholders in config file

Placeholders are now parsed using Go built-in template package (pkg.go.dev/text/template). Therefore the old placeholders {variable_name} will not be recognized anymore and need to be replaced with the new syntax: {{.VariableName}}. Variables names also changed.
Here is a complete list of the old and new available placeholders :

Description Old placeholder (version <1.0.0) New placeholder (version >=1.0.0)
Date of the day. Format Y-m-d. {date} {{.Date}}
Today's day name, localized. {day_name} {{.DayName}}
Today's day number of the month. {day_number} {{DayNumber}}
Current month name, localized. {month_name} {{.MonthName}}
Current month number. {month_number} {{MonthNumber}}
Current year. {year} {{.Year}}
First date new addition are taken into account. Depends on observed_period_days config parameter. Format Y-m-d. {start_date} {{.StartDate}}
Day name of the first observed date. {start_day_name} {{.StartDayName}}
Day number of the first observed date. {start_day_number} {{.StartDayNumber}}
Month name of the first observed date. {start_month_name} {{.StartMonthName}}
Month number of the first observed date. {start_month_number} {{.StartMonthNumber}}
Year the first observed date. {start_year} {{.StartYear}}

Placeholders in template

Template have been entirely re-built to use the go template syntax. Please refer to themes for more informations

Dry run

When dry run is enabled, the key dry-run.output_directory is now mandatory.

✨ What's new

❤️ Special thanks

Special thanks to

Don't miss a new jellyfin-newsletter release

NewReleases is sending notifications on new releases.