Add options to import and export user data

This commit is contained in:
Omar Roth 2018-07-30 12:34:57 -05:00
parent 24c79a3554
commit b535a9d413
5 changed files with 252 additions and 3 deletions

View file

@ -0,0 +1,50 @@
<% content_for "header" do %>
<title>Import and Export Data - Invidious</title>
<% end %>
<div class="h-box">
<form class="pure-form pure-form-aligned" enctype="multipart/form-data" action="/data_control" method="post">
<fieldset>
<legend>Import</legend>
<div class="pure-control-group">
<label for="import_youtube">Import Invidious data</label>
<input type="file" id="import_invidious" name="import_invidious">
</div>
<div class="pure-control-group">
<label for="import_youtube">Import <a target="_blank" style="color: #0366d6"
href="https://support.google.com/youtube/answer/6224202?hl=en-GB">YouTube subscriptions</a></label>
<input type="file" id="import_youtube" name="import_youtube">
</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>
<div class="pure-control-group">
<label for="import_newpipe">Import NewPipe data (.zip)</label>
<input type="file" id="import_newpipe" name="import_newpipe">
</div>
<div class="pure-controls">
<button type="submit" class="pure-button pure-button-primary">Import</button>
</div>
<legend>Export</legend>
<div class="pure-control-group">
<a href="/subscription_manager?action_takeout=1">Export subscriptions as OPML</a>
</div>
<div class="pure-control-group">
<a href="/subscription_manager?action_takeout=1&format=newpipe">Export subscriptions as OPML (NewPipe)</a>
</div>
<div class="pure-control-group">
<a href="/subscription_manager?action_takeout=1&format=json">Export data as JSON</a>
</div>
</fieldset>
</form>
</div>

View file

@ -101,7 +101,13 @@ function update_value(element) {
<div class="pure-control-group">
<label>
<a href="/clear_watch_history">Clear watch history</a>
</labe>
</label>
</div>
<div class="pure-control-group">
<label>
<a href="/data_control">Import/Export data</a>
</label>
</div>
<div class="pure-controls">

View file

@ -2,7 +2,16 @@
<title>Subscription manager - Invidious</title>
<% end %>
<h1><%= subscriptions.size %> subscriptions</h1>
<div class="pure-g h-box">
<div class="pure-u-2-3">
<h3><%= subscriptions.size %> subscriptions</h3>
</div>
<div class="pure-u-1-3" style="text-align:right;">
<h3>
<a href="/data_control">Import/Export</a>
</h3>
</div>
</div>
<% subscriptions.each do |channel| %>
<h3 class="h-box">