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 2021-10-27 17:54:40 -04:00 committed by Samantaz Fox
parent 7cbd79fee5
commit 43ff3be751
No known key found for this signature in database
GPG Key ID: F42821059186176E

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!