Add private Jellystat viewing stats to Magent beta
This commit is contained in:
@@ -34,6 +34,7 @@ const SECTION_LABELS: Record<string, string> = {
|
||||
seerr: 'Seerr',
|
||||
jellyseerr: 'Seerr',
|
||||
jellyfin: 'Jellyfin',
|
||||
jellystat: 'Jellystat',
|
||||
artwork: 'Artwork cache',
|
||||
cache: 'Request cache',
|
||||
sonarr: 'Sonarr',
|
||||
@@ -98,6 +99,7 @@ const SECTION_DESCRIPTIONS: Record<string, string> = {
|
||||
seerr: 'Connect Seerr where users submit content requests.',
|
||||
jellyseerr: 'Connect Seerr where users submit content requests.',
|
||||
jellyfin: 'Jellyfin connection, public playback links, user sync, and availability checks.',
|
||||
jellystat: 'Connect Jellystat so users can see their personal viewing stats in Magent.',
|
||||
artwork: 'Cache posters/backdrops and review artwork coverage.',
|
||||
cache: 'Manage saved requests cache and refresh behavior.',
|
||||
sonarr: 'Sonarr connection and the default profile and library location for TV requests.',
|
||||
@@ -119,6 +121,7 @@ const SETTINGS_SECTION_MAP: Record<string, string | null> = {
|
||||
seerr: 'jellyseerr',
|
||||
jellyseerr: 'jellyseerr',
|
||||
jellyfin: 'jellyfin',
|
||||
jellystat: 'jellystat',
|
||||
artwork: null,
|
||||
sonarr: 'sonarr',
|
||||
radarr: 'radarr',
|
||||
@@ -305,6 +308,14 @@ const STANDARD_SECTION_GROUPS: Record<
|
||||
keys: ['jellyseerr_base_url', 'jellyseerr_api_key'],
|
||||
},
|
||||
],
|
||||
jellystat: [
|
||||
{
|
||||
key: 'jellystat-connection',
|
||||
title: 'Connection',
|
||||
description: 'Use the Jellystat instance connected to the same Jellyfin server as Magent. Create a Jellystat API key in its settings, then save and test the connection.',
|
||||
keys: ['jellystat_base_url', 'jellystat_api_key'],
|
||||
},
|
||||
],
|
||||
jellyfin: [
|
||||
{
|
||||
key: 'jellyfin-connection',
|
||||
@@ -483,6 +494,8 @@ const SETTING_LABEL_OVERRIDES: Record<string, string> = {
|
||||
magent_notify_webhook_url: 'Generic webhook URL',
|
||||
jellyfin_base_url: 'Internal server URL',
|
||||
jellyfin_api_key: 'Administrator API key',
|
||||
jellystat_base_url: 'Internal server URL',
|
||||
jellystat_api_key: 'Jellystat API key',
|
||||
jellyfin_public_url: 'Public playback URL',
|
||||
jellyfin_sync_to_arr: 'Reconcile Jellyfin with Sonarr and Radarr',
|
||||
sonarr_base_url: 'Sonarr server URL',
|
||||
@@ -578,6 +591,7 @@ type SectionFeedback = {
|
||||
const SERVICE_TEST_ENDPOINTS: Record<string, string> = {
|
||||
'seerr-connection': 'seerr',
|
||||
'jellyfin-connection': 'jellyfin',
|
||||
'jellystat-connection': 'jellystat',
|
||||
'sonarr-connection': 'sonarr',
|
||||
'radarr-connection': 'radarr',
|
||||
'bazarr-connection': 'bazarr',
|
||||
@@ -807,6 +821,7 @@ export default function SettingsPage({ section }: SettingsPageProps) {
|
||||
seerr: ['Seerr', 'Jellyseerr', 'Jellyseer'],
|
||||
jellyseerr: ['Seerr', 'Jellyseerr', 'Jellyseer'],
|
||||
jellyfin: ['Jellyfin'],
|
||||
jellystat: ['Jellystat'],
|
||||
sonarr: ['Sonarr'],
|
||||
radarr: ['Radarr'],
|
||||
bazarr: ['Bazarr'],
|
||||
@@ -995,6 +1010,8 @@ export default function SettingsPage({ section }: SettingsPageProps) {
|
||||
jellyfin_base_url:
|
||||
'Jellyfin server URL for logins and lookups (FQDN or IP). Scheme is optional.',
|
||||
jellyfin_api_key: 'Admin API key for syncing users and availability.',
|
||||
jellystat_base_url: 'Jellystat address reachable by Magent, including any base path. Example: http://jellystat:3000.',
|
||||
jellystat_api_key: 'API key created in Jellystat. Stored privately by Magent and never sent to users’ browsers.',
|
||||
jellyfin_public_url:
|
||||
'Public Jellyfin URL for the “Open in Jellyfin” button (FQDN or IP).',
|
||||
jellyfin_sync_to_arr: 'Auto-add items to Sonarr/Radarr when they already exist in Jellyfin.',
|
||||
@@ -1076,6 +1093,7 @@ export default function SettingsPage({ section }: SettingsPageProps) {
|
||||
magent_notify_webhook_url: 'https://automation.example.com/webhooks/magent',
|
||||
jellyseerr_base_url: 'https://requests.example.com or 10.30.1.81:5055',
|
||||
jellyfin_base_url: 'https://jelly.example.com or 10.40.0.80:8096',
|
||||
jellystat_base_url: 'http://jellystat:3000',
|
||||
jellyfin_public_url: 'https://jelly.example.com',
|
||||
sonarr_base_url: 'https://sonarr.example.com or 10.30.1.81:8989',
|
||||
bazarr_base_url: 'https://bazarr.example.com or 10.30.1.81:6767',
|
||||
|
||||
@@ -5,6 +5,7 @@ const ALLOWED_SECTIONS = new Set([
|
||||
'seerr',
|
||||
'jellyseerr',
|
||||
'jellyfin',
|
||||
'jellystat',
|
||||
'artwork',
|
||||
'sonarr',
|
||||
'radarr',
|
||||
|
||||
@@ -5,6 +5,7 @@ export const CONFIG_GROUPS: ConfigGroup[] = [
|
||||
{ title: 'Media services', description: 'Connect the services that collect, repair and play your content.', items: [
|
||||
{ href: '/admin/seerr', label: 'Seerr', description: 'Requests and approvals', symbol: 'SE', service: 'Seerr' },
|
||||
{ href: '/admin/jellyfin', label: 'Jellyfin', description: 'Playback and library availability', symbol: 'JF', service: 'Jellyfin' },
|
||||
{ href: '/admin/jellystat', label: 'Jellystat', description: 'Personal viewing statistics', symbol: 'JS', service: 'Jellystat' },
|
||||
{ href: '/admin/sonarr', label: 'Sonarr', description: 'TV collection and quality', symbol: 'SO', service: 'Sonarr' },
|
||||
{ href: '/admin/radarr', label: 'Radarr', description: 'Movie collection and quality', symbol: 'RA', service: 'Radarr' },
|
||||
{ href: '/admin/bazarr', label: 'Bazarr', description: 'Subtitle repairs', symbol: 'BA', service: 'Bazarr' },
|
||||
|
||||
Reference in New Issue
Block a user