mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-12-25 02:06:09 +00:00
Fixes for Kodi 18.5 (and Python2)
This commit is contained in:
parent
a51bf9c2cc
commit
933a31ac23
6 changed files with 13 additions and 9 deletions
|
@ -263,7 +263,7 @@ def values(item, keys):
|
||||||
''' Grab the values in the item for a list of keys {key},{key1}....
|
''' Grab the values in the item for a list of keys {key},{key1}....
|
||||||
If the key has no brackets, the key will be passed as is.
|
If the key has no brackets, the key will be passed as is.
|
||||||
'''
|
'''
|
||||||
return (item[key.replace('{', "").replace('}', "")] if type(key) == str and key.startswith('{') else key for key in keys)
|
return (item[key.replace('{', "").replace('}', "")] if isinstance(key, text_type) and key.startswith('{') else key for key in keys)
|
||||||
|
|
||||||
|
|
||||||
def indent(elem, level=0):
|
def indent(elem, level=0):
|
||||||
|
|
|
@ -8,6 +8,7 @@ import logging
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
from six import string_types
|
||||||
|
|
||||||
from .exceptions import HTTPException
|
from .exceptions import HTTPException
|
||||||
|
|
||||||
|
@ -188,7 +189,7 @@ class HTTP(object):
|
||||||
if isinstance(value, dict):
|
if isinstance(value, dict):
|
||||||
self._process_params(value)
|
self._process_params(value)
|
||||||
|
|
||||||
if isinstance(value, str):
|
if isinstance(value, string_types):
|
||||||
params[key] = self._replace_user_info(value)
|
params[key] = self._replace_user_info(value)
|
||||||
|
|
||||||
def _get_header(self, data):
|
def _get_header(self, data):
|
||||||
|
|
|
@ -344,7 +344,7 @@ class ABNF(object):
|
||||||
|
|
||||||
def _get_masked(self, mask_key):
|
def _get_masked(self, mask_key):
|
||||||
s = ABNF.mask(mask_key, self.data)
|
s = ABNF.mask(mask_key, self.data)
|
||||||
return mask_key + "".join(s)
|
return mask_key + b"".join(s)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def mask(mask_key, data):
|
def mask(mask_key, data):
|
||||||
|
@ -602,7 +602,7 @@ class WebSocket(object):
|
||||||
def send_binary(self, payload):
|
def send_binary(self, payload):
|
||||||
return self.send(payload, ABNF.OPCODE_BINARY)
|
return self.send(payload, ABNF.OPCODE_BINARY)
|
||||||
|
|
||||||
def ping(self, payload=""):
|
def ping(self, payload=b""):
|
||||||
"""
|
"""
|
||||||
send ping data.
|
send ping data.
|
||||||
|
|
||||||
|
@ -784,7 +784,7 @@ class WebSocket(object):
|
||||||
_bytes = self._recv(shortage)
|
_bytes = self._recv(shortage)
|
||||||
self._recv_buffer.append(_bytes)
|
self._recv_buffer.append(_bytes)
|
||||||
shortage -= len(_bytes)
|
shortage -= len(_bytes)
|
||||||
unified = "".join(self._recv_buffer)
|
unified = b"".join(self._recv_buffer)
|
||||||
if shortage == 0:
|
if shortage == 0:
|
||||||
self._recv_buffer = []
|
self._recv_buffer = []
|
||||||
return unified
|
return unified
|
||||||
|
@ -799,7 +799,7 @@ class WebSocket(object):
|
||||||
line.append(c)
|
line.append(c)
|
||||||
if c == "\n":
|
if c == "\n":
|
||||||
break
|
break
|
||||||
return "".join(line)
|
return b"".join(line)
|
||||||
|
|
||||||
|
|
||||||
class WebSocketApp(object):
|
class WebSocketApp(object):
|
||||||
|
|
|
@ -5,6 +5,7 @@ from __future__ import division, absolute_import, print_function, unicode_litera
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from six.moves.urllib.parse import urlencode
|
from six.moves.urllib.parse import urlencode
|
||||||
|
from kodi_six.utils import py2_encode
|
||||||
|
|
||||||
import downloader as server
|
import downloader as server
|
||||||
from .obj import Objects
|
from .obj import Objects
|
||||||
|
@ -178,7 +179,7 @@ class Movies(KodiDb):
|
||||||
else:
|
else:
|
||||||
obj['Path'] = "plugin://plugin.video.jellyfin/%s/" % obj['LibraryId']
|
obj['Path'] = "plugin://plugin.video.jellyfin/%s/" % obj['LibraryId']
|
||||||
params = {
|
params = {
|
||||||
'filename': obj['Filename'],
|
'filename': py2_encode(obj['Filename'], 'utf-8'),
|
||||||
'id': obj['Id'],
|
'id': obj['Id'],
|
||||||
'dbid': obj['MovieId'],
|
'dbid': obj['MovieId'],
|
||||||
'mode': "play"
|
'mode': "play"
|
||||||
|
|
|
@ -7,6 +7,7 @@ import datetime
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
from six.moves.urllib.parse import urlencode
|
from six.moves.urllib.parse import urlencode
|
||||||
|
from kodi_six.utils import py2_encode
|
||||||
|
|
||||||
from .obj import Objects
|
from .obj import Objects
|
||||||
from .kodi import MusicVideos as KodiDb, queries as QU
|
from .kodi import MusicVideos as KodiDb, queries as QU
|
||||||
|
@ -166,7 +167,7 @@ class MusicVideos(KodiDb):
|
||||||
else:
|
else:
|
||||||
obj['Path'] = "plugin://plugin.video.jellyfin/%s/" % obj['LibraryId']
|
obj['Path'] = "plugin://plugin.video.jellyfin/%s/" % obj['LibraryId']
|
||||||
params = {
|
params = {
|
||||||
'filename': obj['Filename'],
|
'filename': py2_encode(obj['Filename'], 'utf-8'),
|
||||||
'id': obj['Id'],
|
'id': obj['Id'],
|
||||||
'dbid': obj['MvideoId'],
|
'dbid': obj['MvideoId'],
|
||||||
'mode': "play"
|
'mode': "play"
|
||||||
|
|
|
@ -8,6 +8,7 @@ import sqlite3
|
||||||
from ntpath import dirname
|
from ntpath import dirname
|
||||||
|
|
||||||
from six.moves.urllib.parse import urlencode
|
from six.moves.urllib.parse import urlencode
|
||||||
|
from kodi_six.utils import py2_encode
|
||||||
|
|
||||||
from .obj import Objects
|
from .obj import Objects
|
||||||
from .kodi import TVShows as KodiDb, queries as QU
|
from .kodi import TVShows as KodiDb, queries as QU
|
||||||
|
@ -394,7 +395,7 @@ class TVShows(KodiDb):
|
||||||
else:
|
else:
|
||||||
obj['Path'] = "plugin://plugin.video.jellyfin/%s/" % obj['SeriesId']
|
obj['Path'] = "plugin://plugin.video.jellyfin/%s/" % obj['SeriesId']
|
||||||
params = {
|
params = {
|
||||||
'filename': obj['Filename'],
|
'filename': py2_encode(obj['Filename'], 'utf-8'),
|
||||||
'id': obj['Id'],
|
'id': obj['Id'],
|
||||||
'dbid': obj['EpisodeId'],
|
'dbid': obj['EpisodeId'],
|
||||||
'mode': "play"
|
'mode': "play"
|
||||||
|
|
Loading…
Reference in a new issue