Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
975c953d78 | ||
|
|
9de1af4204 | ||
|
|
7b7502fa2f | ||
|
|
b565005219 | ||
|
|
68008c675e | ||
|
|
2cf86eb6ae | ||
|
|
b0a1f9a680 |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="plugin.video.jellycon"
|
||||
name="JellyCon"
|
||||
version="0.3.0"
|
||||
version="0.3.1"
|
||||
provider-name="Jellyfin Contributors">
|
||||
<requires>
|
||||
<import addon="xbmc.python" version="2.25.0"/>
|
||||
|
||||
@@ -11,7 +11,6 @@ import StringIO
|
||||
import gzip
|
||||
import json
|
||||
from urlparse import urlparse
|
||||
import urllib
|
||||
from base64 import b64encode
|
||||
from collections import defaultdict
|
||||
from traceback import format_exc
|
||||
@@ -561,8 +560,8 @@ class DownloadUtils:
|
||||
url = "{server}/Users/AuthenticateByName?format=json"
|
||||
|
||||
user_details = load_user_details(settings)
|
||||
user_name = urllib.quote(user_details.get("username", ""))
|
||||
pwd_text = urllib.quote(user_details.get("password", ""))
|
||||
user_name = user_details.get("username", "")
|
||||
pwd_text = user_details.get("password", "")
|
||||
|
||||
message_data = {'username': user_name, 'pw': pwd_text}
|
||||
|
||||
|
||||
@@ -853,12 +853,15 @@ def external_subs(media_source, list_item, item_id):
|
||||
source_id = media_source['Id']
|
||||
server = download_utils.get_server()
|
||||
token = download_utils.authenticate()
|
||||
language = stream.get('Language', '')
|
||||
codec = stream.get('Codec', '')
|
||||
|
||||
if stream.get('DeliveryUrl', '').lower().startswith('/videos'):
|
||||
url = "%s%s" % (server, stream.get('DeliveryUrl'))
|
||||
url_root = '{}/Videos/{}/{}/Subtitles/{}'.format(server, item_id, source_id, index)
|
||||
if language:
|
||||
url = '{}/Stream.{}.{}?api_key={}'.format(
|
||||
url_root, language, codec, token)
|
||||
else:
|
||||
url = ("%s/Videos/%s/%s/Subtitles/%s/Stream.%s?api_key=%s"
|
||||
% (server, item_id, source_id, index, stream['Codec'], token))
|
||||
url = '{}/Stream.{}?api_key={}'.format(url_root, codec, token)
|
||||
|
||||
default = ""
|
||||
if stream['IsDefault']:
|
||||
@@ -867,7 +870,7 @@ def external_subs(media_source, list_item, item_id):
|
||||
if stream['IsForced']:
|
||||
forced = "forced"
|
||||
|
||||
sub_name = stream.get('Language', "n/a") + " (" + stream.get('Codec', "n/a") + ") " + default + " " + forced
|
||||
sub_name = '{} ( {} ) {} {}'.format(language, codec, default, forced)
|
||||
|
||||
sub_names.append(sub_name)
|
||||
externalsubs.append(url)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
from __future__ import division, absolute_import, print_function, unicode_literals
|
||||
|
||||
import os
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
import xbmc
|
||||
import xbmcgui
|
||||
@@ -28,9 +29,6 @@ def clone_default_skin():
|
||||
set_skin_settings()
|
||||
update_kodi_settings()
|
||||
|
||||
# xbmc.executebuiltin("ReloadSkin()")
|
||||
# xbmc.executebuiltin("ActivateWindow(Home)")
|
||||
|
||||
|
||||
def walk_path(root_path, relative_path, all_files):
|
||||
files = xbmcvfs.listdir(root_path)
|
||||
@@ -82,17 +80,13 @@ def clone_skin():
|
||||
|
||||
# alter skin addon.xml
|
||||
addon_xml_path = os.path.join(kodi_skin_destination, "addon.xml")
|
||||
with open(addon_xml_path, "r") as addon_file:
|
||||
addon_xml_data = addon_file.read()
|
||||
addon_tree = ET.parse(addon_xml_path)
|
||||
addon_root = addon_tree.getroot()
|
||||
|
||||
addon_xml_data = addon_xml_data.replace("id=\"skin.estuary\"", "id=\"skin.estuary_jellycon\"")
|
||||
addon_xml_data = addon_xml_data.replace("name=\"Estuary\"", "name=\"Estuary JellyCon\"")
|
||||
addon_root.attrib['id'] = 'skin.estuary_jellycon'
|
||||
addon_root.attrib['name'] = 'Estuary JellyCon'
|
||||
|
||||
# log.debug("{0}", addon_xml_data)
|
||||
|
||||
# update the addon.xml
|
||||
with open(addon_xml_path, "w") as addon_file:
|
||||
addon_file.write(addon_xml_data)
|
||||
addon_tree.write(addon_xml_path)
|
||||
|
||||
# get jellycon path
|
||||
jellycon_path = os.path.join(kodi_home_path, "addons", "plugin.video.jellycon")
|
||||
@@ -105,6 +99,7 @@ def clone_skin():
|
||||
"DialogSeekBar.xml",
|
||||
"VideoOSD.xml"]
|
||||
|
||||
# Copy customized skin files from our addon into cloned skin
|
||||
for file_name in file_list:
|
||||
source = os.path.join(jellycon_path, "resources", "skins", "skin.estuary", ver, "xml", file_name)
|
||||
destination = os.path.join(kodi_skin_destination, "xml", file_name)
|
||||
|
||||
Reference in New Issue
Block a user