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}....
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):

View file

@ -8,6 +8,7 @@ import logging
import time
import requests
from six import string_types
from .exceptions import HTTPException
@ -188,7 +189,7 @@ class HTTP(object):
if isinstance(value, dict):
self._process_params(value)
if isinstance(value, str):
if isinstance(value, string_types):
params[key] = self._replace_user_info(value)
def _get_header(self, data):

View file

@ -344,7 +344,7 @@ class ABNF(object):
def _get_masked(self, mask_key):
s = ABNF.mask(mask_key, self.data)
return mask_key + "".join(s)
return mask_key + b"".join(s)
@staticmethod
def mask(mask_key, data):
@ -602,7 +602,7 @@ class WebSocket(object):
def send_binary(self, payload):
return self.send(payload, ABNF.OPCODE_BINARY)
def ping(self, payload=""):
def ping(self, payload=b""):
"""
send ping data.
@ -784,7 +784,7 @@ class WebSocket(object):
_bytes = self._recv(shortage)
self._recv_buffer.append(_bytes)
shortage -= len(_bytes)
unified = "".join(self._recv_buffer)
unified = b"".join(self._recv_buffer)
if shortage == 0:
self._recv_buffer = []
return unified
@ -799,7 +799,7 @@ class WebSocket(object):
line.append(c)
if c == "\n":
break
return "".join(line)
return b"".join(line)
class WebSocketApp(object):

View file

@ -5,6 +5,7 @@ from __future__ import division, absolute_import, print_function, unicode_litera
import logging
from six.moves.urllib.parse import urlencode
from kodi_six.utils import py2_encode
import downloader as server
from .obj import Objects
@ -178,7 +179,7 @@ class Movies(KodiDb):
else:
obj['Path'] = "plugin://plugin.video.jellyfin/%s/" % obj['LibraryId']
params = {
'filename': obj['Filename'],
'filename': py2_encode(obj['Filename'], 'utf-8'),
'id': obj['Id'],
'dbid': obj['MovieId'],
'mode': "play"

View file

@ -7,6 +7,7 @@ import datetime
import logging
import re
from six.moves.urllib.parse import urlencode
from kodi_six.utils import py2_encode
from .obj import Objects
from .kodi import MusicVideos as KodiDb, queries as QU
@ -166,7 +167,7 @@ class MusicVideos(KodiDb):
else:
obj['Path'] = "plugin://plugin.video.jellyfin/%s/" % obj['LibraryId']
params = {
'filename': obj['Filename'],
'filename': py2_encode(obj['Filename'], 'utf-8'),
'id': obj['Id'],
'dbid': obj['MvideoId'],
'mode': "play"

View file

@ -8,6 +8,7 @@ import sqlite3
from ntpath import dirname
from six.moves.urllib.parse import urlencode
from kodi_six.utils import py2_encode
from .obj import Objects
from .kodi import TVShows as KodiDb, queries as QU
@ -394,7 +395,7 @@ class TVShows(KodiDb):
else:
obj['Path'] = "plugin://plugin.video.jellyfin/%s/" % obj['SeriesId']
params = {
'filename': obj['Filename'],
'filename': py2_encode(obj['Filename'], 'utf-8'),
'id': obj['Id'],
'dbid': obj['EpisodeId'],
'mode': "play"