From 80ec0e42c23884ce94b3280aa2ae2d04c3ee9bf4 Mon Sep 17 00:00:00 2001 From: Luigi311 Date: Thu, 16 Mar 2023 14:57:57 -0600 Subject: [PATCH 1/4] Dockerfile: Add sync directions to ENV --- Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Dockerfile b/Dockerfile index bee126d..c59692d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,11 @@ ENV PLEX_SERVERNAME '' ENV JELLYFIN_BASEURL '' ENV JELLYFIN_TOKEN '' +ENV SYNC_FROM_PLEX_TO_JELLYFIN 'True' +ENV SYNC_FROM_JELLYFIN_TO_PLEX 'True' +ENV SYNC_FROM_PLEX_TO_PLEX 'True' +ENV SYNC_FROM_JELLYFIN_TO_JELLYFIN 'True' + ENV BLACKLIST_LIBRARY '' ENV WHITELIST_LIBRARY '' ENV BLACKLIST_LIBRARY_TYPE '' From 3627dde64d96aed5e176c7ec642725a363f47002 Mon Sep 17 00:00:00 2001 From: Luigi311 Date: Sat, 18 Mar 2023 11:56:56 -0600 Subject: [PATCH 2/4] Plex: Do not error if user has no access --- src/plex.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/plex.py b/src/plex.py index 205d3ac..192b83a 100644 --- a/src/plex.py +++ b/src/plex.py @@ -307,10 +307,19 @@ class Plex: if self.admin_user == user: user_plex = self.plex else: - user_plex = self.login( - self.plex._baseurl, - user.get_token(self.plex.machineIdentifier), - ) + token = user.get_token(self.plex.machineIdentifier) + if token: + user_plex = self.login( + self.plex._baseurl, + user.get_token(self.plex.machineIdentifier), + ) + else: + logger( + f"Plex: Failed to get token for {user.title}, skipping", + 2, + ) + users_watched[user.title] = {} + continue libraries = user_plex.library.sections() From a8edee0354118c1cce5f73e4cc76871dec25f502 Mon Sep 17 00:00:00 2001 From: Luigi311 Date: Sat, 18 Mar 2023 12:12:12 -0600 Subject: [PATCH 3/4] Jellyfin: Fix user_watched_temp overwrite issues. --- src/jellyfin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/jellyfin.py b/src/jellyfin.py index 166818b..9cc7b38 100644 --- a/src/jellyfin.py +++ b/src/jellyfin.py @@ -460,8 +460,8 @@ class Jellyfin: watched = await asyncio.gather(*watched, return_exceptions=True) for user_watched in watched: - user_watched_temp = combine_watched_dicts(user_watched) - for user, user_watched_temp in user_watched_temp.items(): + user_watched_combine = combine_watched_dicts(user_watched) + for user, user_watched_temp in user_watched_combine.items(): if user not in users_watched: users_watched[user] = {} users_watched[user].update(user_watched_temp) From 962b1149ad0741a1a2dfdc8040dc479fc4b70eaa Mon Sep 17 00:00:00 2001 From: Luigi311 Date: Sat, 18 Mar 2023 12:15:59 -0600 Subject: [PATCH 4/4] Plex: Use token, Check for token on mark --- src/plex.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/plex.py b/src/plex.py index 192b83a..f902742 100644 --- a/src/plex.py +++ b/src/plex.py @@ -311,7 +311,7 @@ class Plex: if token: user_plex = self.login( self.plex._baseurl, - user.get_token(self.plex.machineIdentifier), + token, ) else: logger( @@ -389,11 +389,19 @@ class Plex: ) user = self.plex.myPlexAccount().user(user) - user_plex = PlexServer( - self.plex._baseurl, - user.get_token(self.plex.machineIdentifier), - session=self.session, - ) + token = user.get_token(self.plex.machineIdentifier) + if token: + user_plex = PlexServer( + self.plex._baseurl, + token, + session=self.session, + ) + else: + logger( + f"Plex: Failed to get token for {user.title}, skipping", + 2, + ) + continue for library, videos in libraries.items(): library_other = None