removed plextv / pms, added TODO's for reimplementing Jellyfin
This commit is contained in:
@@ -27,7 +27,6 @@ from jellypy import datafactory
|
||||
from jellypy import helpers
|
||||
from jellypy import logger
|
||||
from jellypy import notification_handler
|
||||
from jellypy import pmsconnect
|
||||
|
||||
ACTIVITY_SCHED = None
|
||||
|
||||
@@ -60,27 +59,29 @@ class ActivityHandler(object):
|
||||
|
||||
def get_metadata(self, skip_cache=False):
|
||||
cache_key = None if skip_cache else self.get_session_key()
|
||||
pms_connect = pmsconnect.PmsConnect()
|
||||
metadata = pms_connect.get_metadata_details(rating_key=self.get_rating_key(), cache_key=cache_key)
|
||||
|
||||
if metadata:
|
||||
return metadata
|
||||
# TODO: Jellyfin
|
||||
# pms_connect = pmsconnect.PmsConnect()
|
||||
# metadata = pms_connect.get_metadata_details(rating_key=self.get_rating_key(), cache_key=cache_key)
|
||||
#
|
||||
# if metadata:
|
||||
# return metadata
|
||||
|
||||
return None
|
||||
|
||||
def get_live_session(self, skip_cache=False):
|
||||
pms_connect = pmsconnect.PmsConnect()
|
||||
session_list = pms_connect.get_current_activity(skip_cache=skip_cache)
|
||||
|
||||
if session_list:
|
||||
for session in session_list['sessions']:
|
||||
if int(session['session_key']) == self.get_session_key():
|
||||
# Live sessions don't have rating keys in sessions
|
||||
# Get it from the websocket data
|
||||
if not session['rating_key']:
|
||||
session['rating_key'] = self.get_rating_key()
|
||||
session['rating_key_websocket'] = self.get_rating_key()
|
||||
return session
|
||||
# TODO: Jellyfin
|
||||
# pms_connect = pmsconnect.PmsConnect()
|
||||
# session_list = pms_connect.get_current_activity(skip_cache=skip_cache)
|
||||
#
|
||||
# if session_list:
|
||||
# for session in session_list['sessions']:
|
||||
# if int(session['session_key']) == self.get_session_key():
|
||||
# # Live sessions don't have rating keys in sessions
|
||||
# # Get it from the websocket data
|
||||
# if not session['rating_key']:
|
||||
# session['rating_key'] = self.get_rating_key()
|
||||
# session['rating_key_websocket'] = self.get_rating_key()
|
||||
# return session
|
||||
|
||||
return None
|
||||
|
||||
@@ -390,11 +391,12 @@ class TimelineHandler(object):
|
||||
return None
|
||||
|
||||
def get_metadata(self):
|
||||
pms_connect = pmsconnect.PmsConnect()
|
||||
metadata = pms_connect.get_metadata_details(self.get_rating_key())
|
||||
|
||||
if metadata:
|
||||
return metadata
|
||||
# TODO: Jellyfin
|
||||
# pms_connect = pmsconnect.PmsConnect()
|
||||
# metadata = pms_connect.get_metadata_details(self.get_rating_key())
|
||||
#
|
||||
# if metadata:
|
||||
# return metadata
|
||||
|
||||
return None
|
||||
|
||||
@@ -522,9 +524,11 @@ class ReachabilityHandler(object):
|
||||
return False
|
||||
|
||||
def remote_access_enabled(self):
|
||||
pms_connect = pmsconnect.PmsConnect()
|
||||
pref = pms_connect.get_server_pref(pref='PublishServerOnPlexOnlineKey')
|
||||
return helpers.bool_true(pref)
|
||||
return False
|
||||
# TODO: Jellyfin
|
||||
# pms_connect = pmsconnect.PmsConnect()
|
||||
# pref = pms_connect.get_server_pref(pref='PublishServerOnPlexOnlineKey')
|
||||
# return helpers.bool_true(pref)
|
||||
|
||||
def on_down(self, server_response):
|
||||
jellypy.NOTIFY_QUEUE.put({'notify_action': 'on_extdown', 'remote_access_info': server_response})
|
||||
@@ -541,39 +545,40 @@ class ReachabilityHandler(object):
|
||||
if self.is_reachable() and jellypy.PLEX_REMOTE_ACCESS_UP:
|
||||
return
|
||||
|
||||
pms_connect = pmsconnect.PmsConnect()
|
||||
server_response = pms_connect.get_server_response()
|
||||
|
||||
if server_response:
|
||||
# Waiting for port mapping
|
||||
if server_response['mapping_state'] == 'waiting':
|
||||
logger.warn("Tautulli ReachabilityHandler :: Remote access waiting for port mapping.")
|
||||
|
||||
elif jellypy.PLEX_REMOTE_ACCESS_UP is not False and server_response['reason']:
|
||||
logger.warn("Tautulli ReachabilityHandler :: Remote access failed: %s" % server_response['reason'])
|
||||
logger.info("Tautulli ReachabilityHandler :: Plex remote access is down.")
|
||||
|
||||
jellypy.PLEX_REMOTE_ACCESS_UP = False
|
||||
|
||||
if not ACTIVITY_SCHED.get_job('on_extdown'):
|
||||
logger.debug("Tautulli ReachabilityHandler :: Schedule remote access down callback in %d seconds.",
|
||||
jellypy.CONFIG.NOTIFY_REMOTE_ACCESS_THRESHOLD)
|
||||
schedule_callback('on_extdown', func=self.on_down, args=[server_response],
|
||||
seconds=jellypy.CONFIG.NOTIFY_REMOTE_ACCESS_THRESHOLD)
|
||||
|
||||
elif jellypy.PLEX_REMOTE_ACCESS_UP is False and not server_response['reason']:
|
||||
logger.info("Tautulli ReachabilityHandler :: Plex remote access is back up.")
|
||||
|
||||
jellypy.PLEX_REMOTE_ACCESS_UP = True
|
||||
|
||||
if ACTIVITY_SCHED.get_job('on_extdown'):
|
||||
logger.debug("Tautulli ReachabilityHandler :: Cancelling scheduled remote access down callback.")
|
||||
schedule_callback('on_extdown', remove_job=True)
|
||||
else:
|
||||
self.on_up(server_response)
|
||||
|
||||
elif jellypy.PLEX_REMOTE_ACCESS_UP is None:
|
||||
jellypy.PLEX_REMOTE_ACCESS_UP = self.is_reachable()
|
||||
# TODO: Jellyfin
|
||||
# pms_connect = pmsconnect.PmsConnect()
|
||||
# server_response = pms_connect.get_server_response()
|
||||
#
|
||||
# if server_response:
|
||||
# # Waiting for port mapping
|
||||
# if server_response['mapping_state'] == 'waiting':
|
||||
# logger.warn("Tautulli ReachabilityHandler :: Remote access waiting for port mapping.")
|
||||
#
|
||||
# elif jellypy.PLEX_REMOTE_ACCESS_UP is not False and server_response['reason']:
|
||||
# logger.warn("Tautulli ReachabilityHandler :: Remote access failed: %s" % server_response['reason'])
|
||||
# logger.info("Tautulli ReachabilityHandler :: Plex remote access is down.")
|
||||
#
|
||||
# jellypy.PLEX_REMOTE_ACCESS_UP = False
|
||||
#
|
||||
# if not ACTIVITY_SCHED.get_job('on_extdown'):
|
||||
# logger.debug("Tautulli ReachabilityHandler :: Schedule remote access down callback in %d seconds.",
|
||||
# jellypy.CONFIG.NOTIFY_REMOTE_ACCESS_THRESHOLD)
|
||||
# schedule_callback('on_extdown', func=self.on_down, args=[server_response],
|
||||
# seconds=jellypy.CONFIG.NOTIFY_REMOTE_ACCESS_THRESHOLD)
|
||||
#
|
||||
# elif jellypy.PLEX_REMOTE_ACCESS_UP is False and not server_response['reason']:
|
||||
# logger.info("Tautulli ReachabilityHandler :: Plex remote access is back up.")
|
||||
#
|
||||
# jellypy.PLEX_REMOTE_ACCESS_UP = True
|
||||
#
|
||||
# if ACTIVITY_SCHED.get_job('on_extdown'):
|
||||
# logger.debug("Tautulli ReachabilityHandler :: Cancelling scheduled remote access down callback.")
|
||||
# schedule_callback('on_extdown', remove_job=True)
|
||||
# else:
|
||||
# self.on_up(server_response)
|
||||
#
|
||||
# elif jellypy.PLEX_REMOTE_ACCESS_UP is None:
|
||||
# jellypy.PLEX_REMOTE_ACCESS_UP = self.is_reachable()
|
||||
|
||||
|
||||
def del_keys(key):
|
||||
@@ -670,41 +675,42 @@ def clear_recently_added_queue(rating_key, title):
|
||||
|
||||
def on_created(rating_key, **kwargs):
|
||||
logger.debug("Tautulli TimelineHandler :: Library item %s added to Plex." % str(rating_key))
|
||||
pms_connect = pmsconnect.PmsConnect()
|
||||
metadata = pms_connect.get_metadata_details(rating_key)
|
||||
|
||||
if metadata:
|
||||
notify = True
|
||||
# now = helpers.timestamp()
|
||||
#
|
||||
# if helpers.cast_to_int(metadata['added_at']) < now - 86400: # Updated more than 24 hours ago
|
||||
# logger.debug("Tautulli TimelineHandler :: Library item %s added more than 24 hours ago. Not notifying."
|
||||
# % str(rating_key))
|
||||
# notify = False
|
||||
|
||||
data_factory = datafactory.DataFactory()
|
||||
if 'child_keys' not in kwargs:
|
||||
if data_factory.get_recently_added_item(rating_key):
|
||||
logger.debug("Tautulli TimelineHandler :: Library item %s added already. Not notifying again."
|
||||
% str(rating_key))
|
||||
notify = False
|
||||
|
||||
if notify:
|
||||
data = {'timeline_data': metadata, 'notify_action': 'on_created'}
|
||||
data.update(kwargs)
|
||||
jellypy.NOTIFY_QUEUE.put(data)
|
||||
|
||||
all_keys = [rating_key]
|
||||
if 'child_keys' in kwargs:
|
||||
all_keys.extend(kwargs['child_keys'])
|
||||
|
||||
for key in all_keys:
|
||||
data_factory.set_recently_added_item(key)
|
||||
|
||||
logger.debug("Added %s items to the recently_added database table." % str(len(all_keys)))
|
||||
|
||||
else:
|
||||
logger.error("Tautulli TimelineHandler :: Unable to retrieve metadata for rating_key %s" % str(rating_key))
|
||||
# TODO: Jellyfin
|
||||
# pms_connect = pmsconnect.PmsConnect()
|
||||
# metadata = pms_connect.get_metadata_details(rating_key)
|
||||
#
|
||||
# if metadata:
|
||||
# notify = True
|
||||
# # now = helpers.timestamp()
|
||||
# #
|
||||
# # if helpers.cast_to_int(metadata['added_at']) < now - 86400: # Updated more than 24 hours ago
|
||||
# # logger.debug("Tautulli TimelineHandler :: Library item %s added more than 24 hours ago. Not notifying."
|
||||
# # % str(rating_key))
|
||||
# # notify = False
|
||||
#
|
||||
# data_factory = datafactory.DataFactory()
|
||||
# if 'child_keys' not in kwargs:
|
||||
# if data_factory.get_recently_added_item(rating_key):
|
||||
# logger.debug("Tautulli TimelineHandler :: Library item %s added already. Not notifying again."
|
||||
# % str(rating_key))
|
||||
# notify = False
|
||||
#
|
||||
# if notify:
|
||||
# data = {'timeline_data': metadata, 'notify_action': 'on_created'}
|
||||
# data.update(kwargs)
|
||||
# jellypy.NOTIFY_QUEUE.put(data)
|
||||
#
|
||||
# all_keys = [rating_key]
|
||||
# if 'child_keys' in kwargs:
|
||||
# all_keys.extend(kwargs['child_keys'])
|
||||
#
|
||||
# for key in all_keys:
|
||||
# data_factory.set_recently_added_item(key)
|
||||
#
|
||||
# logger.debug("Added %s items to the recently_added database table." % str(len(all_keys)))
|
||||
#
|
||||
# else:
|
||||
# logger.error("Tautulli TimelineHandler :: Unable to retrieve metadata for rating_key %s" % str(rating_key))
|
||||
|
||||
|
||||
def delete_metadata_cache(session_key):
|
||||
|
Reference in New Issue
Block a user