jf-roku/source/migrations.bs

71 lines
3.0 KiB
Plaintext

import "pkg:/source/utils/misc.bs"
' Functions that update the registry based on the last run version and the currently running version
' Run all necessary registry mirations on the "global" Jellyfin registry section
sub runGlobalMigrations()
' Global registry migrations
if isValid(m.global.app.lastRunVersion) and not versionChecker(m.global.app.lastRunVersion, "2.0.0")
' last app version used was less than 2.0.0
print "Running 2.0.0 global registry migrations"
' no longer saving raw password to registry
' auth token and username are now stored in user settings and not global settings
savedUserId = get_setting("active_user")
if isValid(savedUserId)
registry_write("serverId", m.global.session.server.id, savedUserId)
' copy saved credentials to user block
savedUsername = get_setting("username")
if isValid(savedUsername)
registry_write("username", savedUsername, savedUserId)
end if
savedToken = get_setting("token")
if isValid(savedToken)
registry_write("token", savedToken, savedUserId)
end if
end if
unset_setting("port")
unset_setting("token")
unset_setting("username")
unset_setting("password")
' remove saved credentials from saved_servers
saved = get_setting("saved_servers")
if isValid(saved)
savedServers = ParseJson(saved)
if isValid(savedServers.serverList) and savedServers.serverList.Count() > 0
newServers = { serverList: [] }
for each item in savedServers.serverList
item.Delete("username")
item.Delete("password")
newServers.serverList.Push(item)
end for
set_setting("saved_servers", FormatJson(newServers))
end if
end if
end if
if m.global.app.lastRunVersion <> invalid
runRegistryUserMigrations(m.global.app.lastRunVersion)
end if
end sub
sub runRegistryUserMigrations(version as string)
regSections = getRegistrySections()
for each section in regSections
if LCase(section) <> "jellyfin"
if version = "2.0.0"
print "Running User Registry Migration for 2.0.0"
' now saving LastRunVersion globally and per user so that we can run user specific registry migrations
' duplicate LastRunVersion to all user settings in the registry so that we can run user specific migrations
'
' now saving LastRunVersion per user in addition to globally
registry_write("LastRunVersion", m.global.app.version, section)
' no longer saving password to registry
registry_delete("password", section)
' av1 playback no longer hidden behind user setting
registry_delete("playback.av1", section)
end if
end if
end for
end sub