mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2025-06-01 22:06:13 +00:00
Begin restructing, fixed some issues related to movement
This commit is contained in:
parent
6be8213b34
commit
84b8093171
72 changed files with 16 additions and 34 deletions
84
jellyfin_kodi/jellyfin/client.py
Normal file
84
jellyfin_kodi/jellyfin/client.py
Normal file
|
@ -0,0 +1,84 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
#################################################################################################
|
||||
|
||||
import logging
|
||||
|
||||
import core.api as api
|
||||
from core.configuration import Config
|
||||
from core.http import HTTP
|
||||
from core.ws_client import WSClient
|
||||
from core.connection_manager import ConnectionManager, CONNECTION_STATE
|
||||
|
||||
#################################################################################################
|
||||
|
||||
LOG = logging.getLogger('JELLYFIN.' + __name__)
|
||||
|
||||
#################################################################################################
|
||||
|
||||
|
||||
def callback(message, data):
|
||||
|
||||
''' Callback function should received message, data
|
||||
message: string
|
||||
data: json dictionary
|
||||
'''
|
||||
pass
|
||||
|
||||
|
||||
class JellyfinClient(object):
|
||||
|
||||
logged_in = False
|
||||
|
||||
def __init__(self):
|
||||
LOG.debug("JellyfinClient initializing...")
|
||||
|
||||
self.config = Config()
|
||||
self.http = HTTP(self)
|
||||
self.wsc = WSClient(self)
|
||||
self.auth = ConnectionManager(self)
|
||||
self.jellyfin = api.API(self.http)
|
||||
self.callback_ws = callback
|
||||
self.callback = callback
|
||||
|
||||
def set_credentials(self, credentials=None):
|
||||
self.auth.credentials.set_credentials(credentials or {})
|
||||
|
||||
def get_credentials(self):
|
||||
return self.auth.credentials.get_credentials()
|
||||
|
||||
def authenticate(self, credentials=None, options=None):
|
||||
|
||||
self.set_credentials(credentials or {})
|
||||
state = self.auth.connect(options or {})
|
||||
|
||||
if state['State'] == CONNECTION_STATE['SignedIn']:
|
||||
|
||||
LOG.info("User is authenticated.")
|
||||
self.logged_in = True
|
||||
self.callback("ServerOnline", {'Id': self.auth.server_id})
|
||||
|
||||
state['Credentials'] = self.get_credentials()
|
||||
|
||||
return state
|
||||
|
||||
def start(self, websocket=False, keep_alive=True):
|
||||
|
||||
if not self.logged_in:
|
||||
raise ValueError("User is not authenticated.")
|
||||
|
||||
self.http.start_session()
|
||||
|
||||
if keep_alive:
|
||||
self.http.keep_alive = True
|
||||
|
||||
if websocket:
|
||||
self.start_wsc()
|
||||
|
||||
def start_wsc(self):
|
||||
self.wsc.start()
|
||||
|
||||
def stop(self):
|
||||
|
||||
self.wsc.stop_client()
|
||||
self.http.stop_session()
|
Loading…
Add table
Add a link
Reference in a new issue