commit
8aa511a3d3
7 changed files with 36 additions and 18 deletions
|
@ -1,5 +1,5 @@
|
||||||
[![stable version](https://img.shields.io/badge/stable_version-2.8.3-blue.svg?maxAge=60&style=flat) ](https://github.com/croneter/binary_repo/raw/master/stable/repository.plexkodiconnect/repository.plexkodiconnect-1.0.2.zip)
|
[![stable version](https://img.shields.io/badge/stable_version-2.8.4-blue.svg?maxAge=60&style=flat) ](https://github.com/croneter/binary_repo/raw/master/stable/repository.plexkodiconnect/repository.plexkodiconnect-1.0.2.zip)
|
||||||
[![beta version](https://img.shields.io/badge/beta_version-2.8.3-red.svg?maxAge=60&style=flat) ](https://github.com/croneter/binary_repo/raw/master/beta/repository.plexkodiconnectbeta/repository.plexkodiconnectbeta-1.0.2.zip)
|
[![beta version](https://img.shields.io/badge/beta_version-2.8.4-red.svg?maxAge=60&style=flat) ](https://github.com/croneter/binary_repo/raw/master/beta/repository.plexkodiconnectbeta/repository.plexkodiconnectbeta-1.0.2.zip)
|
||||||
|
|
||||||
[![Installation](https://img.shields.io/badge/wiki-installation-brightgreen.svg?maxAge=60&style=flat)](https://github.com/croneter/PlexKodiConnect/wiki/Installation)
|
[![Installation](https://img.shields.io/badge/wiki-installation-brightgreen.svg?maxAge=60&style=flat)](https://github.com/croneter/PlexKodiConnect/wiki/Installation)
|
||||||
[![FAQ](https://img.shields.io/badge/wiki-FAQ-brightgreen.svg?maxAge=60&style=flat)](https://github.com/croneter/PlexKodiConnect/wiki/faq)
|
[![FAQ](https://img.shields.io/badge/wiki-FAQ-brightgreen.svg?maxAge=60&style=flat)](https://github.com/croneter/PlexKodiConnect/wiki/faq)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<addon id="plugin.video.plexkodiconnect" name="PlexKodiConnect" version="2.8.3" provider-name="croneter">
|
<addon id="plugin.video.plexkodiconnect" name="PlexKodiConnect" version="2.8.4" provider-name="croneter">
|
||||||
<requires>
|
<requires>
|
||||||
<import addon="xbmc.python" version="2.1.0"/>
|
<import addon="xbmc.python" version="2.1.0"/>
|
||||||
<import addon="script.module.requests" version="2.9.1" />
|
<import addon="script.module.requests" version="2.9.1" />
|
||||||
|
@ -77,7 +77,12 @@
|
||||||
<summary lang="uk_UA">Нативна інтеграція Plex в Kodi</summary>
|
<summary lang="uk_UA">Нативна інтеграція Plex в Kodi</summary>
|
||||||
<description lang="uk_UA">Підключає Kodi до серверу Plex. Цей плагін передбачає, що ви керуєте всіма своїми відео за допомогою Plex (і ніяк не Kodi). Ви можете втратити дані, які вже зберігаються у відео та музичних БД Kodi (оскільки цей плагін безпосередньо їх змінює). Використовуйте на свій страх і ризик!</description>
|
<description lang="uk_UA">Підключає Kodi до серверу Plex. Цей плагін передбачає, що ви керуєте всіма своїми відео за допомогою Plex (і ніяк не Kodi). Ви можете втратити дані, які вже зберігаються у відео та музичних БД Kodi (оскільки цей плагін безпосередньо їх змінює). Використовуйте на свій страх і ризик!</description>
|
||||||
<disclaimer lang="uk_UA">Використовуйте на свій ризик</disclaimer>
|
<disclaimer lang="uk_UA">Використовуйте на свій ризик</disclaimer>
|
||||||
<news>version 2.8.3:
|
<news>version 2.8.4:
|
||||||
|
- Fix for Kodi 17 Krypton TypeError on playback start: 'offscreen' is an invalid keyword argument for this function
|
||||||
|
- Fix widgets not being populated after very first PlexKodiConnect library sync without a restart of Kodi
|
||||||
|
- Don't restart Kodi if user chose to enter PKC settings on install
|
||||||
|
|
||||||
|
version 2.8.3:
|
||||||
- Versions 2.8.1-2.8.2 for everyone
|
- Versions 2.8.1-2.8.2 for everyone
|
||||||
|
|
||||||
version 2.8.2 (beta only):
|
version 2.8.2 (beta only):
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
version 2.8.4:
|
||||||
|
- Fix for Kodi 17 Krypton TypeError on playback start: 'offscreen' is an invalid keyword argument for this function
|
||||||
|
- Fix widgets not being populated after very first PlexKodiConnect library sync without a restart of Kodi
|
||||||
|
- Don't restart Kodi if user chose to enter PKC settings on install
|
||||||
|
|
||||||
version 2.8.3:
|
version 2.8.3:
|
||||||
- Versions 2.8.1-2.8.2 for everyone
|
- Versions 2.8.1-2.8.2 for everyone
|
||||||
|
|
||||||
|
|
|
@ -693,14 +693,12 @@ class InitialSetup(object):
|
||||||
# Open Settings page now? You will need to restart!
|
# Open Settings page now? You will need to restart!
|
||||||
goto_settings = utils.yesno_dialog(utils.lang(29999),
|
goto_settings = utils.yesno_dialog(utils.lang(29999),
|
||||||
utils.lang(39017))
|
utils.lang(39017))
|
||||||
|
# New installation - make sure we start with a clean slate
|
||||||
|
utils.wipe_database(reboot=False)
|
||||||
if goto_settings:
|
if goto_settings:
|
||||||
|
LOG.info('User chose to go to the PKC settings - suspending PKC')
|
||||||
app.APP.stop_pkc = True
|
app.APP.stop_pkc = True
|
||||||
executebuiltin(
|
executebuiltin(
|
||||||
'Addon.OpenSettings(plugin.video.plexkodiconnect)')
|
'Addon.OpenSettings(plugin.video.plexkodiconnect)')
|
||||||
# New installation - make sure we start with a clean slate
|
return
|
||||||
# Will trigger a reboot, usually
|
utils.reboot_kodi()
|
||||||
utils.wipe_database()
|
|
||||||
# Reload relevant settings if that is not the case
|
|
||||||
app.CONN.load()
|
|
||||||
app.ACCOUNT.load()
|
|
||||||
app.SYNC.load()
|
|
||||||
|
|
|
@ -184,6 +184,9 @@ class Sync(backgroundthread.KillableThread):
|
||||||
install_sync_done = True
|
install_sync_done = True
|
||||||
initial_sync_done = True
|
initial_sync_done = True
|
||||||
utils.settings('dbCreatedWithVersion', v.ADDON_VERSION)
|
utils.settings('dbCreatedWithVersion', v.ADDON_VERSION)
|
||||||
|
# Reload skin in order to ensure items showing up on Kodi
|
||||||
|
# Homescreen
|
||||||
|
xbmc.executebuiltin('ReloadSkin()')
|
||||||
if library_sync.PLAYLIST_SYNC_ENABLED:
|
if library_sync.PLAYLIST_SYNC_ENABLED:
|
||||||
playlist_monitor = playlists.kodi_playlist_monitor()
|
playlist_monitor = playlists.kodi_playlist_monitor()
|
||||||
self.start_fanart_download(refresh=False)
|
self.start_fanart_download(refresh=False)
|
||||||
|
|
|
@ -16,6 +16,7 @@ WINDOW = xbmcgui.Window(10000)
|
||||||
WINDOW_UPSTREAM = 'plexkodiconnect.result.upstream'.encode('utf-8')
|
WINDOW_UPSTREAM = 'plexkodiconnect.result.upstream'.encode('utf-8')
|
||||||
WINDOW_DOWNSTREAM = 'plexkodiconnect.result.downstream'.encode('utf-8')
|
WINDOW_DOWNSTREAM = 'plexkodiconnect.result.downstream'.encode('utf-8')
|
||||||
WINDOW_COMMAND = 'plexkodiconnect.command'.encode('utf-8')
|
WINDOW_COMMAND = 'plexkodiconnect.command'.encode('utf-8')
|
||||||
|
KODIVERSION = int(xbmc.getInfoLabel("System.BuildVersion")[:2])
|
||||||
|
|
||||||
|
|
||||||
def cast(func, value):
|
def cast(func, value):
|
||||||
|
@ -145,10 +146,15 @@ def convert_pkc_to_listitem(pkc_listitem):
|
||||||
Insert a PKCListItem() and you will receive a valid XBMC listitem
|
Insert a PKCListItem() and you will receive a valid XBMC listitem
|
||||||
"""
|
"""
|
||||||
data = pkc_listitem.data
|
data = pkc_listitem.data
|
||||||
listitem = xbmcgui.ListItem(label=data.get('label'),
|
if KODIVERSION >= 18:
|
||||||
label2=data.get('label2'),
|
listitem = xbmcgui.ListItem(label=data.get('label'),
|
||||||
path=data.get('path'),
|
label2=data.get('label2'),
|
||||||
offscreen=True)
|
path=data.get('path'),
|
||||||
|
offscreen=True)
|
||||||
|
else:
|
||||||
|
listitem = xbmcgui.ListItem(label=data.get('label'),
|
||||||
|
label2=data.get('label2'),
|
||||||
|
path=data.get('path'))
|
||||||
if data['info']:
|
if data['info']:
|
||||||
listitem.setInfo(**data['info'])
|
listitem.setInfo(**data['info'])
|
||||||
for stream in data['stream_info']:
|
for stream in data['stream_info']:
|
||||||
|
|
|
@ -539,7 +539,7 @@ def create_kodi_db_indicees():
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
|
||||||
def wipe_database():
|
def wipe_database(reboot=True):
|
||||||
"""
|
"""
|
||||||
Deletes all Plex playlists as well as video nodes, then clears Kodi as well
|
Deletes all Plex playlists as well as video nodes, then clears Kodi as well
|
||||||
as Plex databases completely.
|
as Plex databases completely.
|
||||||
|
@ -585,10 +585,11 @@ def wipe_database():
|
||||||
settings('sections_asked_for_machine_identifier', value='')
|
settings('sections_asked_for_machine_identifier', value='')
|
||||||
init_dbs()
|
init_dbs()
|
||||||
LOG.info('Wiping done')
|
LOG.info('Wiping done')
|
||||||
if settings('kodi_db_has_been_wiped_clean') != 'true':
|
no_reboot = settings('kodi_db_has_been_wiped_clean') == 'true' or not reboot
|
||||||
|
settings('kodi_db_has_been_wiped_clean', value='true')
|
||||||
|
if not no_reboot:
|
||||||
# Root cause is sqlite WAL mode - Kodi might still have DB access open
|
# Root cause is sqlite WAL mode - Kodi might still have DB access open
|
||||||
LOG.warn('Need to restart Kodi before filling Kodi DB again')
|
LOG.warn('Need to restart Kodi before filling Kodi DB again')
|
||||||
settings('kodi_db_has_been_wiped_clean', value='true')
|
|
||||||
reboot_kodi()
|
reboot_kodi()
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue