diff options
| author | Omar Roth <omarroth@hotmail.com> | 2018-08-13 14:17:20 -0500 |
|---|---|---|
| committer | Omar Roth <omarroth@hotmail.com> | 2018-08-13 14:17:20 -0500 |
| commit | 324cdf545e11ba7e7808a9020772504c0b8a13b5 (patch) | |
| tree | 4faf8b9fcf041a1d7f849097330c35656caa5a30 | |
| parent | e2f27794fdf6497a558b8ca6c4e903b12af19fad (diff) | |
| download | invidious-324cdf545e11ba7e7808a9020772504c0b8a13b5.tar.gz invidious-324cdf545e11ba7e7808a9020772504c0b8a13b5.tar.bz2 invidious-324cdf545e11ba7e7808a9020772504c0b8a13b5.zip | |
Add option to import data from FreeTube
| -rw-r--r-- | src/invidious.cr | 15 | ||||
| -rw-r--r-- | src/invidious/views/data_control.ecr | 7 |
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"> |
