103 lines
4.2 KiB
Python
103 lines
4.2 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
from __future__ import absolute_import, division, unicode_literals
|
|
from builtins import str
|
|
from logging import getLogger
|
|
|
|
from . import variables as v
|
|
from . import utils
|
|
###############################################################################
|
|
|
|
LOG = getLogger('PLEX.migration')
|
|
|
|
|
|
def check_migration():
|
|
LOG.info('Checking whether we need to migrate something')
|
|
last_migration = utils.settings('last_migrated_PKC_version')
|
|
# Ensure later migration if user downgraded PKC!
|
|
utils.settings('last_migrated_PKC_version', value=v.ADDON_VERSION)
|
|
|
|
if last_migration == '':
|
|
LOG.info('New, clean PKC installation - no migration necessary')
|
|
return
|
|
elif last_migration == v.ADDON_VERSION:
|
|
LOG.info('Already migrated to PKC version %s' % v.ADDON_VERSION)
|
|
return
|
|
|
|
if not utils.compare_version(last_migration, '1.8.2'):
|
|
LOG.info('Migrating to version 1.8.1')
|
|
# Set the new PKC theMovieDB key
|
|
utils.settings('themoviedbAPIKey',
|
|
value='19c90103adb9e98f2172c6a6a3d85dc4')
|
|
|
|
if not utils.compare_version(last_migration, '2.0.25'):
|
|
LOG.info('Migrating to version 2.0.24')
|
|
# Need to re-connect with PMS to pick up on plex.direct URIs
|
|
utils.settings('ipaddress', value='')
|
|
utils.settings('port', value='')
|
|
|
|
if not utils.compare_version(last_migration, '2.7.6'):
|
|
LOG.info('Migrating to version 2.7.5')
|
|
from .library_sync.sections import delete_files
|
|
delete_files()
|
|
|
|
if not utils.compare_version(last_migration, '2.8.3'):
|
|
LOG.info('Migrating to version 2.8.2')
|
|
from .library_sync import sections
|
|
sections.clear_window_vars()
|
|
sections.delete_videonode_files()
|
|
|
|
if not utils.compare_version(last_migration, '2.8.7'):
|
|
LOG.info('Migrating to version 2.8.6')
|
|
# Need to delete the UNIQUE index that prevents creating several
|
|
# playlist entries with the same kodi_hash
|
|
from .plex_db import PlexDB
|
|
with PlexDB() as plexdb:
|
|
plexdb.cursor.execute('DROP INDEX IF EXISTS ix_playlists_3')
|
|
# Index will be automatically recreated on next PKC startup
|
|
|
|
if not utils.compare_version(last_migration, '2.8.9'):
|
|
LOG.info('Migrating to version 2.8.8')
|
|
from .library_sync import sections
|
|
sections.clear_window_vars()
|
|
sections.delete_videonode_files()
|
|
|
|
if not utils.compare_version(last_migration, '2.9.3'):
|
|
LOG.info('Migrating to version 2.9.2')
|
|
# Re-sync all playlists to Kodi
|
|
from .playlists import remove_synced_playlists
|
|
remove_synced_playlists()
|
|
|
|
if not utils.compare_version(last_migration, '2.9.7'):
|
|
LOG.info('Migrating to version 2.9.6')
|
|
# Allow for a new "Direct Stream" setting (number 2), so shift the
|
|
# last setting for "force transcoding"
|
|
current_playback_type = utils.cast(int, utils.settings('playType')) or 0
|
|
if current_playback_type == 2:
|
|
current_playback_type = 3
|
|
utils.settings('playType', value=str(current_playback_type))
|
|
|
|
if not utils.compare_version(last_migration, '2.9.8'):
|
|
LOG.info('Migrating to version 2.9.7')
|
|
# Force-scan every single item in the library - seems like we could
|
|
# loose some recently added items otherwise
|
|
# Caused by 65a921c3cc2068c4a34990d07289e2958f515156
|
|
from . import library_sync
|
|
library_sync.force_full_sync()
|
|
|
|
if not utils.compare_version(last_migration, '2.11.3'):
|
|
LOG.info('Migrating to version 2.11.2')
|
|
# Re-sync all playlists to Kodi
|
|
from .playlists import remove_synced_playlists
|
|
remove_synced_playlists()
|
|
|
|
if not utils.compare_version(last_migration, '2.12.2'):
|
|
LOG.info('Migrating to version 2.12.1')
|
|
# Sign user out to make sure he needs to sign in again
|
|
utils.settings('username', value='')
|
|
utils.settings('userid', value='')
|
|
utils.settings('plex_restricteduser', value='')
|
|
utils.settings('accessToken', value='')
|
|
utils.settings('plexAvatar', value='')
|
|
|
|
utils.settings('last_migrated_PKC_version', value=v.ADDON_VERSION)
|