github ZL154/AchievementBadges_for_Jellyfin v1.7.5
v1.7.5 - data-loss recovery chain + friends visibility + admin i18n

latest releases: v2.4.0, v2.3.1, v2.3.0...
5 months ago

Fixes for everything you flagged

💾 Badges RESET AGAIN root cause + recovery chain

v1.7.2 quarantined a bad primary file and refused to save. Problem: in-session play progress was then never persisted anywhere, so every Jellyfin restart looked like a fresh reset. This was happening to you on v1.7.4.

New: Load() walks a 3-stage recovery chain:

  1. Primary badges.json
  2. badges.json.bak (rolling backup, written before every successful Save since v1.7.3)
  3. badges.json.recovery (in-session state written while quarantined)

Only if ALL three fail does the plugin quarantine and give up. Users with a flaky primary but a healthy .bak silently recover and carry on.

Save() while quarantined now writes to .recovery instead of skipping. So even in the worst case — primary + bak both unreadable — your play progress this session still persists to disk and gets picked up on next restart.

Admins can see load status (LastLoadSummary) via the /test endpoint.

👥 Friends button visibility

  • Hides on /dashboard and /plugins hash paths (admin screens have their own crowded UI).
  • Hides during media playback — detected via a playing <video> element or body.playingVideo.
  • Reappears automatically when you leave either state. Polled every 500ms + hashchange listener.
  • Drawer closes cleanly if it was open when you started playback.

🌍 Admin page translation finally works

  • waitForApiClient(2500ms) before querying user prefs. Jellyfin's ApiClient can be late-mount on admin iframe loads — previously we read userId='', skipped the prefs fetch, and fell back to browser language (usually English even for French users).
  • Optimistic first paint: loads translations from localStorage immediately, then upgrades to server-authoritative language once ApiClient mounts.
  • Same textContent guard as standalone.js: admin containers with rendered content (badge catalog, custom badges list, audit log) no longer get wiped when translations apply.

MD5: 6517B33B00010C7AE6987B2E098FB5E9

Don't miss a new AchievementBadges_for_Jellyfin release

NewReleases is sending notifications on new releases.