parent
aef884523b
commit
bf5d875079
|
|
@ -38,6 +38,7 @@ def setup_black_white_lists(
|
||||||
whitelist_users,
|
whitelist_users,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def setup_x_lists(
|
def setup_x_lists(
|
||||||
xlist_library,
|
xlist_library,
|
||||||
xlist_library_type,
|
xlist_library_type,
|
||||||
|
|
@ -89,42 +90,3 @@ def setup_x_lists(
|
||||||
logger(f"{xlist_type}list Users: {xlist_users}", 1)
|
logger(f"{xlist_type}list Users: {xlist_users}", 1)
|
||||||
|
|
||||||
return xlist_library, xlist_library_type, xlist_users
|
return xlist_library, xlist_library_type, xlist_users
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,8 +88,12 @@ class Jellyfin:
|
||||||
|
|
||||||
self.users = asyncio.run(self.get_users())
|
self.users = asyncio.run(self.get_users())
|
||||||
|
|
||||||
async def query(self, query, query_type, session, identifiers=None):
|
async def query(self, query, query_type, session=None, identifiers=None):
|
||||||
try:
|
try:
|
||||||
|
if not session:
|
||||||
|
async with aiohttp.ClientSession(timeout=self.timeout) as session:
|
||||||
|
return await self.query(query, query_type, session, identifiers)
|
||||||
|
|
||||||
results = None
|
results = None
|
||||||
headers = {"Accept": "application/json", "X-Emby-Token": self.token}
|
headers = {"Accept": "application/json", "X-Emby-Token": self.token}
|
||||||
authorization = (
|
authorization = (
|
||||||
|
|
@ -134,6 +138,21 @@ class Jellyfin:
|
||||||
logger(f"Jellyfin: Query {query_type} {query}\nResults {results}\n{e}", 2)
|
logger(f"Jellyfin: Query {query_type} {query}\nResults {results}\n{e}", 2)
|
||||||
raise Exception(e)
|
raise Exception(e)
|
||||||
|
|
||||||
|
def info(self) -> str:
|
||||||
|
try:
|
||||||
|
query_string = "/System/Info/Public"
|
||||||
|
|
||||||
|
response = asyncio.run(self.query(query_string, "get"))
|
||||||
|
|
||||||
|
if response:
|
||||||
|
return f"{response['ServerName']}: {response['Version']}"
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger(f"Jellyfin: Get server name failed {e}", 2)
|
||||||
|
raise Exception(e)
|
||||||
|
|
||||||
async def get_users(self):
|
async def get_users(self):
|
||||||
try:
|
try:
|
||||||
users = {}
|
users = {}
|
||||||
|
|
|
||||||
|
|
@ -304,6 +304,9 @@ def main_loop():
|
||||||
|
|
||||||
# Start server_2 at the next server in the list
|
# Start server_2 at the next server in the list
|
||||||
for server_2 in servers[servers.index(server_1) + 1 :]:
|
for server_2 in servers[servers.index(server_1) + 1 :]:
|
||||||
|
logger(f"Server 1: {server_1[0].capitalize()}: {server_1[1].info()}", 0)
|
||||||
|
logger(f"Server 2: {server_2[0].capitalize()}: {server_2[1].info()}", 0)
|
||||||
|
|
||||||
# Create users list
|
# Create users list
|
||||||
logger("Creating users list", 1)
|
logger("Creating users list", 1)
|
||||||
server_1_users, server_2_users = setup_users(
|
server_1_users, server_2_users = setup_users(
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import re, requests, os, traceback
|
import re, requests, traceback
|
||||||
from urllib3.poolmanager import PoolManager
|
from urllib3.poolmanager import PoolManager
|
||||||
from math import floor
|
from math import floor
|
||||||
|
|
||||||
|
|
@ -173,9 +173,7 @@ def get_user_library_watched(user, user_plex, library):
|
||||||
for show in library_videos.search(inProgress=True):
|
for show in library_videos.search(inProgress=True):
|
||||||
args.append([get_user_library_watched_show, show])
|
args.append([get_user_library_watched_show, show])
|
||||||
|
|
||||||
for show_guids, episode_guids in future_thread_executor(
|
for show_guids, episode_guids in future_thread_executor(args, threads=4):
|
||||||
args, threads=4
|
|
||||||
):
|
|
||||||
if show_guids and episode_guids:
|
if show_guids and episode_guids:
|
||||||
# append show, season, episode
|
# append show, season, episode
|
||||||
if show_guids not in user_watched[user_name][library.title]:
|
if show_guids not in user_watched[user_name][library.title]:
|
||||||
|
|
@ -414,6 +412,9 @@ class Plex:
|
||||||
logger(f"Plex: Failed to login, Error: {e}", 2)
|
logger(f"Plex: Failed to login, Error: {e}", 2)
|
||||||
raise Exception(e)
|
raise Exception(e)
|
||||||
|
|
||||||
|
def info(self) -> str:
|
||||||
|
return f"{self.plex.friendlyName}: {self.plex.version}"
|
||||||
|
|
||||||
def get_users(self):
|
def get_users(self):
|
||||||
try:
|
try:
|
||||||
users = self.plex.myPlexAccount().users()
|
users = self.plex.myPlexAccount().users()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue