summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2018-08-13 14:17:20 -0500
committerOmar Roth <omarroth@hotmail.com>2018-08-13 14:17:20 -0500
commit324cdf545e11ba7e7808a9020772504c0b8a13b5 (patch)
tree4faf8b9fcf041a1d7f849097330c35656caa5a30
parente2f27794fdf6497a558b8ca6c4e903b12af19fad (diff)
downloadinvidious-324cdf545e11ba7e7808a9020772504c0b8a13b5.tar.gz
invidious-324cdf545e11ba7e7808a9020772504c0b8a13b5.tar.bz2
invidious-324cdf545e11ba7e7808a9020772504c0b8a13b5.zip
Add option to import data from FreeTube
-rw-r--r--src/invidious.cr15
-rw-r--r--src/invidious/views/data_control.ecr7
2 files changed, 21 insertions, 1 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 07f135d0..5d1b1797 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -1002,6 +1002,21 @@ post "/data_control" do |env|
end
end
end
+ when "import_freetube"
+ body.scan(/"channelId":"(?<channel_id>[a-zA-Z0-9_-]{24})"/).each do |md|
+ ucid = md["channel_id"]
+
+ if !user.subscriptions.includes? ucid
+ PG_DB.exec("UPDATE users SET subscriptions = array_append(subscriptions,$1) WHERE id = $2", ucid, user.id)
+
+ begin
+ client = make_client(YT_URL)
+ get_channel(ucid, client, PG_DB, false, false)
+ rescue ex
+ next
+ end
+ end
+ end
when "import_newpipe_subscriptions"
body = JSON.parse(body)
body["subscriptions"].as_a.each do |channel|
diff --git a/src/invidious/views/data_control.ecr b/src/invidious/views/data_control.ecr
index be896f86..97e4fafd 100644
--- a/src/invidious/views/data_control.ecr
+++ b/src/invidious/views/data_control.ecr
@@ -19,6 +19,11 @@
</div>
<div class="pure-control-group">
+ <label for="import_freetube">Import Freetube subscriptions (.db)</label>
+ <input type="file" id="import_freetube" name="import_freetube">
+ </div>
+
+ <div class="pure-control-group">
<label for="import_newpipe_subscriptions">Import NewPipe subscriptions (.json)</label>
<input type="file" id="import_newpipe_subscriptions" name="import_newpipe_subscriptions">
</div>
@@ -39,7 +44,7 @@
</div>
<div class="pure-control-group">
- <a href="/subscription_manager?action_takeout=1&format=newpipe">Export subscriptions as OPML (NewPipe)</a>
+ <a href="/subscription_manager?action_takeout=1&format=newpipe">Export subscriptions as OPML (for NewPipe & FreeTube)</a>
</div>
<div class="pure-control-group">