162 lines
10 KiB
Markdown
162 lines
10 KiB
Markdown
# Changelog
|
||
|
||
## v0.5.0
|
||
|
||
- **arr-tui on the TV:** `webos/` is an app for LG webOS TVs (webOS 5, 2020 models, and newer)
|
||
with the same views, driven by the remote: Movies and Series with the Trakt lists, Library with
|
||
its filters and download marks, seasons and episodes, release search and grab, Downloads,
|
||
Calendar, Settings and Log. It talks to the services directly, is built with your config baked
|
||
in and installed in the TV's Developer Mode; see `webos/README.md`. (Service addresses must not
|
||
redirect, e.g. from http to https: browsers do not follow that.)
|
||
- **`nix develop`:** a Nix flake with every tool the project uses (Go, shellcheck, Node.js,
|
||
Python, the screenshot tools, Chromium).
|
||
- **Filter dialog** (Library and release list): Language comes right after Quality, so the two
|
||
most used filters are at the top.
|
||
- **Downloading episodes in a series' seasons and episodes:** like the Library, the drill-down
|
||
marks episodes in Sonarr's download queue with a blue dot and "downloading 45%" as their status
|
||
(details: "Downloading 45% · 0:01:40 left"), and seasons with such episodes with a blue dot.
|
||
When an episode has been imported, its status changes to downloaded by itself.
|
||
- **Moving through lists is quick again with real-image posters:** scaling and encoding a poster
|
||
for the terminal (about 200 ms since posters are sent at the size of their box) now happens in
|
||
the background; the poster appears when it is ready, and the selection never waits for it.
|
||
- **Trakt lists show faster after a restart:** the Radarr/Sonarr lookups of their titles are kept
|
||
on disk too (3 days, `lookups.json`), so a list takes one request to Trakt and a quick library
|
||
check per title instead of a lookup (about a second each) per title. Whether a title is in the
|
||
library is always asked afresh.
|
||
- **Posters of titles not in the library load faster:** they are fetched from TheMovieDB at the
|
||
size shown (780 pixels wide for real images) instead of the original Radarr names, which is often
|
||
2000×3000 and over 2 MB: about a tenth of the download and a sixth of the decoding time.
|
||
- **Real-image posters fill their box in every terminal:** they are scaled to the exact pixel size
|
||
of their cells before they are sent. Ghostty shows an image that is smaller than its place at its
|
||
own size, so library posters (Radarr's copy is only 333×500, not 500×750 as assumed in 0.4.0)
|
||
came out smaller than the others. Library titles now also use the original poster for real
|
||
images. The disk cache keeps posters at the size shown, not as downloaded
|
||
(in a new folder; posters stored by the previous way are deleted at startup).
|
||
- **Posters all the same size:** the details pane always shows a poster in a 2:3 box. Images
|
||
slightly off that shape (some Radarr/Sonarr hand out) fill it, trimmed at the long sides; images
|
||
far from it (square, landscape) are shown whole and centred. Before, such posters came out
|
||
smaller than the others in the same list.
|
||
- **Posters and casts are kept between runs** (in `~/.cache/arr-tui`; posters 30 days and at
|
||
most 200 MB, casts 7 days), so they show at once after a restart and are not downloaded again.
|
||
- **Downloading titles in the Library:** the dot before a movie or series turns blue while it is in
|
||
the Radarr/Sonarr download queue, and its details say how far ("Downloading 45% · 0:06:12 left").
|
||
- **After a grab** the release list closes and you are back where the search started.
|
||
- **Season posters** in the series drill-down: a season and its episodes show the season's poster
|
||
(from TheTVDB, via Sonarr), the series poster where a season has none or it cannot be loaded.
|
||
- **Cast in the details pane:** with a Trakt client ID, the details of a movie or series list its
|
||
director (or creators) and cast with their roles below the plot, in every view.
|
||
- **Enter adds** a title in Movies and Series; `a` no longer does (the status bar only ever named
|
||
Enter, and the hint for searching releases of a title not in the library now says Enter too).
|
||
- **Trending, most watched and anticipated** movies and series from Trakt: with an empty search
|
||
box, Movies and Series show trending now, most watched this week, anticipated, popular and (movies)
|
||
the US box office, each title with its number ("1.2k watching", "on 18k lists", "$48M last
|
||
weekend") right-aligned in grey; `[` `]` switch lists, `r` reloads. Titles in the library are ticked, the others
|
||
can be added and searched like search results. Needs a free Trakt client ID, set in the new Trakt
|
||
section of the Config view (`trakt.client_id`, `ARR_TUI_TRAKT_CLIENT_ID`).
|
||
|
||
## v0.4.1
|
||
|
||
- The README shows screenshots of every view (a made-up library). No changes to the program.
|
||
|
||
## v0.4.0
|
||
|
||
New:
|
||
|
||
- **First start without a config file:** arr-tui creates the file (private, with its directory)
|
||
and opens the Config view to enter the services, instead of refusing to start.
|
||
- **Services may be left out:** one without address and key is not used (e.g. no SABnzbd); its
|
||
indicator stays grey and its lists say "not configured" instead of showing errors.
|
||
|
||
Fixed:
|
||
|
||
- Library posters shown as real images (kitty, Ghostty) were soft: they used Radarr's/Sonarr's
|
||
250×375 copy, enlarged to up to 640 pixels. Real images now use the 500×750 copy; block-character
|
||
posters keep the small one.
|
||
|
||
## v0.3.0
|
||
|
||
New:
|
||
|
||
- **Config (F6):** the default quality profile and root folder are picked from the lists Radarr and
|
||
Sonarr have, loaded with the address and API key in the fields (when the view opens, and again
|
||
shortly after either is changed, before saving). A configured value the server does not have
|
||
stays selectable and is marked "(not on the server)".
|
||
|
||
Changed:
|
||
|
||
- **Library:** long titles are cut with "…" to the width of the list, so the movies and series
|
||
lists never scroll sideways and status and size stay in view; the cut follows the window size.
|
||
- **Library:** after removing a title the selection stays at its place (on the title that moved up
|
||
into it, or the new last one) instead of jumping to the top of the list.
|
||
|
||
Fixed:
|
||
|
||
- Help over the Config view: after moving through the fields with the arrow keys, F9 left the field
|
||
in use focused behind the help, so its cursor showed through the window, the help did not scroll,
|
||
and closing it returned to the wrong field.
|
||
- Library titles with square brackets (e.g. "[Rec]") were read as color tags.
|
||
|
||
## v0.2.0
|
||
|
||
New:
|
||
|
||
- **Calendar (F5):** two weeks of movie releases and airing episodes grouped by day, with poster
|
||
and plot; move by weeks with `[` and `]`, include unmonitored items, release search and automatic
|
||
search.
|
||
- **Config (F6):** edit the config file inside the program (addresses, API keys, add-form defaults,
|
||
refresh interval, posters, theme, notifications) in one list you move through with the arrow
|
||
keys, test the connections, and save; everything takes effect at once. Values from `ARR_TUI_*`
|
||
environment variables are never written to the file.
|
||
- **Dark and light themes** with fixed colors that look the same in every terminal, whatever its
|
||
color theme (`ui.theme`: `auto`, `dark`, `light`; switchable live in the Config view). `auto`
|
||
asks the terminal for its background color. Before, the panes used the terminal's palette color
|
||
0, which many color themes set to a grey that is not their background.
|
||
- **Posters as real images** in kitty and Ghostty (Kitty graphics protocol with Unicode
|
||
placeholders) at the terminal's full resolution, used only when the terminal confirms the
|
||
protocol at startup. Elsewhere the block-character posters remain; `auto` now also picks sextants
|
||
when fontconfig finds a font with them, and plain colored cells in macOS Terminal, whose half
|
||
blocks do not line up. `ui.cover_style` gains `kitty` and `cells`.
|
||
- **Series drill-down** shows the series poster and the details of the selected season or episode,
|
||
including its plot.
|
||
- **Download notifications:** popup and log entry when a SABnzbd download finishes or fails, in the
|
||
background (`ui.notify_downloads`, optional `ui.bell`).
|
||
- **Remove from the library** (`d`), with separate checkboxes for deleting the files and for the
|
||
import exclusion; both off by default.
|
||
|
||
Changed:
|
||
|
||
- Views: F5 Calendar, F6 Config, F7 Log (the Log was F5).
|
||
- **F9** is the help key; `?` is gone. **Ctrl+C** quits; `q` no longer does.
|
||
- Space presses buttons (Save, Revert, the buttons of dialogs), as the help says.
|
||
- On narrow terminals the connection indicators shrink to initials.
|
||
|
||
Fixed:
|
||
|
||
- Posters that Sonarr/Radarr store as WebP (or GIF) under a `.jpg` name failed with "unknown
|
||
format"; posters from instances behind a login page are fetched with the API key as a query
|
||
parameter, or from the metadata provider. The Log says why a poster could not be read.
|
||
- Moving through a list with a held arrow key lagged on very large terminals (zoomed far out): the
|
||
poster now waits until the selection rests.
|
||
|
||
## v0.1.0
|
||
|
||
First release.
|
||
|
||
- **Movies / Series:** search Radarr and Sonarr as you type, add titles with quality profile, root
|
||
folder, monitoring and optional automatic search ("Search now" is turned off when nothing would be
|
||
monitored, since Radarr/Sonarr skip unmonitored items).
|
||
- **Interactive release search:** list releases with approval/rejection reasons, sort, hide
|
||
rejected ones, filter by quality, codec (x265/x264/AV1), HDR/DV, audio format (Atmos, TrueHD, DTS,
|
||
DD+, ...) and language, and grab one. Series: pick a season or an episode.
|
||
- **Library:** movies and series side by side, each with its own status filter, text filter and
|
||
file-property filter (quality, codec, HDR/DV, audio, language). Filter dialog changes apply live
|
||
and only offer options that match something. Toggle monitoring, start automatic searches.
|
||
- **Series drill-down:** seasons and episodes with monitoring, automatic search and release search.
|
||
- **Downloads:** SABnzbd queue and history plus the Radarr and Sonarr queues; pause/resume, delete,
|
||
retry, remove and blocklist.
|
||
- **Posters:** a thumbnail at the top right of the detail panes with the text flowing around it (quadrant or, on capable terminals, sextant block rendering; `ui.cover_style`).
|
||
- **Log (F7) and popups:** feedback appears as fading popups; the log keeps the history.
|
||
- Connection indicators for all three services, context-sensitive key hints, a help screen (F9).
|
||
- JSON config with environment overrides (`ARR_TUI_*`), `--version`, cross-platform builds
|
||
(`make dist`).
|