From 0a1c84ada18b9e8bdbfaf27abdc06b48bdd1fda9 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Thu, 8 Nov 2018 16:35:26 -0600 Subject: [PATCH] Add support for partial data restore --- src/invidious.cr | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/invidious.cr b/src/invidious.cr index 199ad602..3602ed70 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -1212,7 +1212,7 @@ post "/data_control" do |env| case part.name when "import_invidious" body = JSON.parse(body) - body["subscriptions"].as_a.each do |ucid| + body["subscriptions"]?.try &.as_a.each do |ucid| ucid = ucid.as_s if !user.subscriptions.includes? ucid @@ -1228,7 +1228,7 @@ post "/data_control" do |env| end end - body["watch_history"].as_a.each do |id| + body["watch_history"]?.try &.as_a.each do |id| id = id.as_s if !user.watched.includes? id @@ -1237,7 +1237,9 @@ post "/data_control" do |env| end end + if body["preferences"]? PG_DB.exec("UPDATE users SET preferences = $1 WHERE email = $2", body["preferences"].to_json, user.email) + end when "import_youtube" subscriptions = XML.parse(body) subscriptions.xpath_nodes(%q(//outline[@type="rss"])).each do |channel|