From 1a6d78352c2d5c2d827aac2a7ea516768157861b Mon Sep 17 00:00:00 2001 From: Harvey Tindall Date: Sun, 21 Mar 2021 22:50:33 +0000 Subject: [PATCH] add comments, fix user expiry log spam now actually removes the already deleted user from the expiry list. --- main.go | 2 +- mediabrowser/mediabrowser.go | 10 +++++++--- mediabrowser/models.go | 4 +++- userdaemon.go | 1 + 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index db8ae7e..6ede57a 100644 --- a/main.go +++ b/main.go @@ -79,7 +79,7 @@ type appContext struct { configBase settings dataPath string webFS httpFS - cssClass string + cssClass string // Default theme, "light-theme"|"dark-theme". jellyfinLogin bool users []User invalidTokens []string diff --git a/mediabrowser/mediabrowser.go b/mediabrowser/mediabrowser.go index 08a3b4c..8104fe9 100644 --- a/mediabrowser/mediabrowser.go +++ b/mediabrowser/mediabrowser.go @@ -1,3 +1,6 @@ +// Mediabrowser provides user-related bindings to the Jellyfin & Emby APIs. +// Some data aren't bound to structs as jfa-go doesn't need to interact with them, for example DisplayPreferences. +// See Jellyfin/Emby swagger docs for more info on them. package mediabrowser import ( @@ -21,7 +24,8 @@ const ( EmbyServer ) -type serverInfo struct { +// ServerInfo stores info about the server. +type ServerInfo struct { LocalAddress string `json:"LocalAddress"` Name string `json:"ServerName"` Version string `json:"Version"` @@ -39,7 +43,7 @@ type MediaBrowser struct { useragent string auth string header map[string]string - ServerInfo serverInfo + ServerInfo ServerInfo Username string password string Authenticated bool @@ -56,7 +60,7 @@ type MediaBrowser struct { timeoutHandler common.TimeoutHandler } -// NewServer returns a new Jellyfin object. +// NewServer returns a new Mediabrowser object. func NewServer(st serverType, server, client, version, device, deviceID string, timeoutHandler common.TimeoutHandler, cacheTimeout int) (*MediaBrowser, error) { mb := &MediaBrowser{} mb.serverType = st diff --git a/mediabrowser/models.go b/mediabrowser/models.go index 9ff5365..2b7afdd 100644 --- a/mediabrowser/models.go +++ b/mediabrowser/models.go @@ -11,6 +11,7 @@ type magicParse struct { Parsed time.Time `json:"parseme"` } +// Time embeds time.Time with a custom JSON Unmarshal method to work with Jellyfin & Emby's time formatting. type Time struct { time.Time } @@ -62,7 +63,8 @@ type User struct { LastLoginDate Time `json:"LastLoginDate"` LastActivityDate Time `json:"LastActivityDate"` Configuration Configuration `json:"Configuration"` - Policy Policy `json:"Policy"` + // Policy stores the user's permissions. + Policy Policy `json:"Policy"` } type SessionInfo struct { diff --git a/userdaemon.go b/userdaemon.go index 099bb2f..944e2b6 100644 --- a/userdaemon.go +++ b/userdaemon.go @@ -76,6 +76,7 @@ func (app *appContext) checkUsers() { } if !found { app.info.Printf("Expired user already deleted, ignoring.") + delete(app.storage.users, id) continue } app.info.Printf("%s expired user \"%s\"", termPlural, user.Name)