Test if body content is likely JSON, if so parse the json format of subscriptions export. If the content is anything else, assume it is CSV and parse

This commit is contained in:
bbielsa authored and Samantaz Fox committed 2022-01-08 18:07:06 +01:00
1 parent 7cbd79fee5
commit 43ff3be751
1 file changed
+4 -1
+4 -1
View File
@@ -821,11 +821,14 @@ post "/data_control" do |env|
user.subscriptions += subscriptions.xpath_nodes(%q(//outline[@type="rss"])).map do |channel|
channel["xmlUrl"].match(/UC[a-zA-Z0-9_-]{22}/).not_nil![0]
end
else
elsif body[0] == '['
subscriptions = JSON.parse(body)
user.subscriptions += subscriptions.as_a.compact_map do |entry|
entry["snippet"]["resourceId"]["channelId"].as_s
end
else
subscriptions = parse_subscription_export_csv(body)
user.subscriptions += subscriptions
end
user.subscriptions.uniq!