Merge branch 'master' of github.com:jellyfin/jellyfin-kodi into file-default-encoding

This commit is contained in:
TrueTechy 2019-09-29 23:45:04 +01:00
commit 286e765a33
2 changed files with 19 additions and 11 deletions

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.jellyfin" <addon id="plugin.video.jellyfin"
name="Jellyfin" name="Jellyfin"
version="0.3.1" version="0.3.2"
provider-name="Jellyfin Contributors, angelblue05"> provider-name="Jellyfin Contributors, angelblue05">
<requires> <requires>
<import addon="xbmc.python" version="2.25.0"/> <import addon="xbmc.python" version="2.25.0"/>
@ -36,9 +36,9 @@
<summary lang="en"></summary> <summary lang="en"></summary>
<description lang="en">Welcome to Jellyfin for Kodi!&#10;A whole new way to manage and view your media library. The Jellyfin addon for Kodi combines the best of Kodi - ultra smooth navigation, beautiful UIs and playback of any file under the sun, and Jellyfin - the most powerful fully open source multi-client media metadata indexer and server.&#10;&#10;Jellyfin for Kodi is the absolute best way to enjoy the incredible Kodi playback engine combined with the power of Jellyfin's centralized database. Features:&#10;* Direct integration with the Kodi library for native Kodi speed&#10;* Instant synchronization with the Jellyfin server&#10;* Full support for Movie, TV and Music collections&#10;* Jellyfin Server direct stream and transcoding support - use Kodi when you are away from home!</description> <description lang="en">Welcome to Jellyfin for Kodi!&#10;A whole new way to manage and view your media library. The Jellyfin addon for Kodi combines the best of Kodi - ultra smooth navigation, beautiful UIs and playback of any file under the sun, and Jellyfin - the most powerful fully open source multi-client media metadata indexer and server.&#10;&#10;Jellyfin for Kodi is the absolute best way to enjoy the incredible Kodi playback engine combined with the power of Jellyfin's centralized database. Features:&#10;* Direct integration with the Kodi library for native Kodi speed&#10;* Instant synchronization with the Jellyfin server&#10;* Full support for Movie, TV and Music collections&#10;* Jellyfin Server direct stream and transcoding support - use Kodi when you are away from home!</description>
<news> <news>
v0.3.1 (2019-09-28) v0.3.2 (2019-09-28)
#90 Fix incremental sync never finishing #94 Improve address normalization in connection manager
#89 Make basic auth login case insensitive #93 Remove stray single quote resulting in crash
</news> </news>
<assets> <assets>
<icon>resources/icon.png</icon> <icon>resources/icon.png</icon>

View file

@ -4,12 +4,13 @@
import json import json
import logging import logging
import hashlib
import socket import socket
import time import time
from datetime import datetime from datetime import datetime
from distutils.version import LooseVersion from distutils.version import LooseVersion
import urllib3
from credentials import Credentials from credentials import Credentials
from http import HTTP from http import HTTP
@ -134,6 +135,8 @@ class ConnectionManager(object):
if not address: if not address:
return False return False
address = self._normalize_address(address)
def _on_fail(): def _on_fail():
LOG.error("connectToAddress %s failed", address) LOG.error("connectToAddress %s failed", address)
return self._resolve_failure() return self._resolve_failure()
@ -470,13 +473,18 @@ class ConnectionManager(object):
def _normalize_address(self, address): def _normalize_address(self, address):
# Attempt to correct bad input # Attempt to correct bad input
address = address.strip() url = urllib3.util.parse_url(address.strip())
address = address.lower()
if 'http' not in address: if url.scheme is None:
address = "http://%s" % address url = url._replace(scheme='http')
return address if url.scheme == 'http' and url.port == 80:
url = url._replace(port=None)
if url.scheme == 'https' and url.port == 443:
url = url._replace(port=None)
return url.url
def _save_user_info_into_credentials(self, server, user): def _save_user_info_into_credentials(self, server, user):