summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/invidious/user/imports.cr42
1 files changed, 24 insertions, 18 deletions
diff --git a/src/invidious/user/imports.cr b/src/invidious/user/imports.cr
index 2ae1dcb1..c8580038 100644
--- a/src/invidious/user/imports.cr
+++ b/src/invidious/user/imports.cr
@@ -1,27 +1,33 @@
require "csv"
-def parse_subscription_export_csv(csv_content : String)
- rows = CSV.new(csv_content, headers: true)
- subscriptions = Array(String).new
+struct Invidious::User
+ module Import
+ extend self
- # Counter to limit the amount of imports.
- # This is intended to prevent DoS.
- row_counter = 0
+ # Parse a youtube CSV subscription file
+ def parse_subscription_export_csv(csv_content : String)
+ rows = CSV.new(csv_content, headers: true)
+ subscriptions = Array(String).new
- rows.each do |row|
- # Limit to 1200
- row_counter += 1
- break if row_counter > 1_200
+ # Counter to limit the amount of imports.
+ # This is intended to prevent DoS.
+ row_counter = 0
- # Channel ID is the first column in the csv export we can't use the header
- # name, because the header name is localized depending on the
- # language the user has set on their account
- channel_id = row[0].strip
+ rows.each do |row|
+ # Limit to 1200
+ row_counter += 1
+ break if row_counter > 1_200
- next if channel_id.empty?
+ # Channel ID is the first column in the csv export we can't use the header
+ # name, because the header name is localized depending on the
+ # language the user has set on their account
+ channel_id = row[0].strip
- subscriptions << channel_id
- end
+ next if channel_id.empty?
+ subscriptions << channel_id
+ end
- return subscriptions
+ return subscriptions
+ end
+ end
end