Fixes for Kodi 18.5 (and Python2)

This commit is contained in:
Odd Stråbø 2020-01-04 05:17:51 +01:00
parent a51bf9c2cc
commit 933a31ac23
6 changed files with 13 additions and 9 deletions

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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"

View file

@ -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"

View file

@ -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"