Repository navigation
Releases: Minimaxpower/ArtLayerr
Release list
3.5.0
What’s new
New
Global search. A search box in the top bar, next to Activity, searches the titles of all your movie and show libraries at once. Press / on any page to jump to it.
The search ignores case and accents (amelie finds Amélie) and also looks at the original title and the year (dark 2017 finds the show Dark from 2017). Titles that start with your search come first.
Results are grouped by library, with the same P / B (and L / Q when switched on) chips as the lists, and open the item page. At most 120 titles are shown, shared between the libraries so that a big one does not hide the others.
The search uses the libraries already loaded in memory (up to six hours old), so it is quick. After a restart, the first search loads every library from Plex and can take a moment.
Available in English and French.
v3.4.3
What’s new
Changes
Back buttons. The ← Dashboard button of the Activity page now also appears on the Items pages (the list of a library) and on Mediux Check.
The item page has a ← Items button that goes back to the Items list of its library, keeping the letter and the “Missing” filter you were on (the same destination as the library name in the title). It stays on the right even with a long title.
French: “← Dashboard” shows as “← Tableau de bord” and “← Items” as “← Éléments”.
v3.4.2
What’s new
Changes
Faster navigation on big libraries. Every page of the items list and of the item pages used to ask Plex for the whole library and rebuild an object for every title, several seconds for a few thousand titles, again at each click. The list of titles is now kept in memory for 5 minutes and reused by the items list, the item pages, the exports and the missing / has filters.
The dashboard refresh (manual or automatic) fills this cache at no extra cost, so the library lists are quick right after it.
The Update button of a library empties its cache: titles added to or removed from Plex show up right after an Update, or after the delay at most.
ArtLayerr now reuses its connection to Plex for ten minutes instead of opening a new one for every page.
Several pages opened at the same time on a library that is not in memory yet load it from Plex only once. Each request works on its own copies of the titles, so parallel requests do not interfere.
New optional setting ITEMS_CACHE_SECONDS (empty = 300, 0 turns the cache off). The cache is capped at 20,000 titles in total; the least recently used libraries are dropped first. Titles are kept in memory, a few MB per thousand.
v3.4.0
What’s new
French translation. The interface is now available in English (default) and French. Pick the language in Settings → Language; the choice is kept in your browser, and nothing switches on its own. Dates in the browser follow the chosen language.
Every screen is translated: the dashboard, the items list, the item page, Activity, Mediux Check, the connection and sign-in pages, and the messages shown after an action. Plurals are handled (“1 show” / “2 shows”).
Translations are plain files in the translations/ folder (fr.po, standard gettext format), editable with any text editor, Poedit or Weblate. A language appears in the picker as soon as its .po file exists, and a text missing from a language simply shows in English.
tools/translations.py checks the translations against the code: check lists the missing texts and any placeholder or HTML tag that differs from the English text, pot rebuilds translations/messages.pot, and sync adds new texts to every .po file. The README explains how to add a language.
v3.3.0
What’s new
Activity page (button at the top, next to Mediux Check), with two tabs:
Progress: a curve of how each kind of art (posters, backgrounds, seasons, episodes, and logos / square when switched on) has progressed over time. Pick 30 days, 90 days, a year or everything, as a percentage or a count, and hover the curve for the values of a day. One point is saved per day: each Update (manual or automatic) and each image you save count. The curve starts the day you first run this version and cannot be rebuilt for the past. Libraries ignored on the dashboard are left out.
Journal: every image saved from ArtLayerr (download, pasted URL, file upload), newest first, with the item, kind of image, season / episode, file, size, and whether it replaced an existing file. Filter by library, kind of image or title.
History panel on the item page: a collapsed panel under the Plex / Assets panel lists the earlier saves of the image you are browsing.
Download again: fetches an image again from its original source (Plex, or the URL you pasted) and replaces the current file. It only works while that source still has the image, and images uploaded from a file cannot be fetched again.
The Color mode and Visual cues settings apply to the curve too: with Patterns, each line gets its own dash style.
Changes
The journal and the curve are stored in a SQLite file, .artlayerr.db, next to the state file in the assets folder, so they survive updates of the image. It uses Python’s built-in sqlite3: no new dependency.
Nothing keeps a copy of the images you replace: the journal stores text only, so it takes almost no space.
If the assets folder is not writable, the history database cannot be opened: downloads and the rest of the app keep working, and the Activity page shows a warning.
v3.2.0
Changes
- ArtLayerr now runs with gunicorn instead of the Flask development server. The “development server, do not use in production” warning is gone from the logs, and connection handling is more robust, which matters most if ArtLayerr is exposed behind a reverse proxy.
- It runs with a single worker and 8 threads, on purpose. The assets scan, the dashboard numbers and the Plex / Assets / Both results are kept in the memory of the process, so several workers would each hold their own copy and overwrite the state file. The threads handle concurrent requests, including the background poster checks on the items list.
- The Dockerfile start command is now gunicorn --workers 1 --threads 8 --timeout 300 --worker-tmp-dir /dev/shm --access-logfile - --bind 0.0.0.0:5000 app:app. Requests are still written to the container logs as before.
gunicorn==26.2.0 is added to requirements.txt.
v2.7.0
What's new
- "Has" filters on the library list. A new Has row of chips sits under Missing and does the opposite: it lists only the items that already have a poster, a background, a logo or a square art (the last two when switched on in Settings). For shows, Seasons and Episodes keep the shows that have at least one season poster / episode image.
- Each chip shows how many items match. The active chip turns green, and a click on it clears the filter.
- It combines with search, the alphabet filter, sorting and items per page. Previous / Next on the item page stay within the filtered list.
Changes
- Export always covers what is missing: with a Has filter active, the Export menu exports everything missing in the library.
- When a filter no longer matches any item, it is now actually removed (the message already said so, but the empty list stayed).
v2.6.0
What's new
Dashboard counters
- After a download or an import (URL or file), the bars and rings
update immediately, without calling Plex. - Totals (movies, seasons, episodes) still come from the last
Update: a title added in Plex only shows up after an Update. ⚠️ After upgrading the app, run an Update once to initialize
the counters.
Faster downloads
- Before: every download rescanned the entire
assetsfolder twice.
Now: only the downloaded item's folder is re-read. - Tested on a fake folder: the result is identical to a full scan.
- "Last checked" no longer changes on each download, since no full
scan takes place.
Item list
- A Plex, Assets or Both badge appears next to each card's
title, with a small legend above the grid. - Cost: one folder listing per card that has a poster in assets, so
at most 96 per page. - The status is an estimate: the file date is compared with the
date Plex reports for its current poster. Plex may also change that
date when it refreshes its metadata. Tooltips and the README say so.
Item page
- New panel showing the Plex image and the assets-folder image side
by side, with file name, date and the same status. - For logos and squares, Plex provides no date, so the panel only
indicates whether a file exists. - Clicking either image opens it full size, as with the candidates.
Documentation
- The README now covers the dashboard, the badge and the panel.
Upgrade notes
After installing, run an Update once.
v2.5.1
What's new
Changes
Dashboard rings: the totals rings (posters, seasons, backgrounds, episodes, plus logos and square when switched on) are now compact. Each card shows the ring and a single done / total line; the missing count and the full detail are in the tooltip. They are always laid out in two columns (Posters / Seasons, Backgrounds / Episodes, Logos / Square), with cards wide enough that titles such as “Backgrounds” are no longer cut off.
“Square art” is now simply “Square” everywhere it is shown: dashboard, filters, exports, tooltips, the image picker’s Art Type list, the Settings switch and the README.
v2.5.0
What's new
Changes
Dashboard rings: the totals rings (posters, seasons, backgrounds, episodes, plus logos and square art when switched on) are now compact. Each card shows the ring and a single done / total line; the missing count and the full detail are in the tooltip. The layout is responsive: 2 rings per row on phones, 3 on tablets, 2 on large screens and 3 on extra-large screens (1400 px and up), so the whole column fits without scrolling.
Dashboard: the “Totals leave out N ignored libraries” note is now centered and sits below the rings instead of above them.
Logos now use a distinct orange (
#f26a21) instead of a yellow close to the posters’ color, on the library cards and on the totals ring.
Art colors (poster, background, logo, square art, seasons, episodes) are now CSS variables instead of values hard-coded in the dashboard template, so a palette can replace them in one place.
New
Color mode (Settings → Display): Default, Red-green colorblind (Okabe-Ito palette) or Blue-yellow colorblind. It recolors the dashboard bars and rings, and the “complete / partial” chips and badges on the lists and item pages.
Visual cues (Settings → Display): None, Icons or Patterns, so that color is never the only signal. Icons add a small symbol per art type on the dashboard (▯ poster, ▭ background, ◆ logo, ■ square art, ▤ seasons, ● episodes) and ✓ / ◐ / ✕ on the status chips. Patterns give each art type its own hatching on the bars and rings, and add a texture to the “partial” and “missing” chips. Cues work with any color mode.
Both choices are kept in your browser (cookies), like the other display options.
The README documents the new Settings options.