From c572662112294f5653f57cc4552d929c314897be Mon Sep 17 00:00:00 2001 From: 0ihgk1uVBLlTBzVo7F9B <0ihgk1uVBLlTBzVo7F9B@protonmail.com> Date: Fri, 4 Sep 2020 14:42:35 +0200 Subject: [PATCH] add option to import newpipe subscriptions --- app/routes.py | 14 ++++++++++++-- app/templates/settings.html | 9 ++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/routes.py b/app/routes.py index 060af16..b496d88 100644 --- a/app/routes.py +++ b/app/routes.py @@ -441,12 +441,16 @@ def importdata(): flash('No selected file') return redirect(request.referrer) if file and allowed_file(file.filename): - importAccounts(file) + option = request.form['import_format'] + if option == 'yotter': + importYotterSubscriptions(file) + elif option == 'newpipe': + importNewPipeSubscriptions(file) return redirect(request.referrer) return redirect(request.referrer) -def importAccounts(file): +def importYotterSubscriptions(file): filename = secure_filename(file.filename) data = json.load(file) for acc in data['twitter']: @@ -455,6 +459,12 @@ def importAccounts(file): for acc in data['youtube']: r = followYoutubeChannel(acc['channelId']) +def importNewPipeSubscriptions(file): + filename = secure_filename(file.filename) + data = json.load(file) + for acc in data['subscriptions']: + r = followYoutubeChannel(re.search('(UC[a-zA-Z0-9_-]{22})|(?<=user\/)[a-zA-Z0-9_-]+', acc['url']).group()) + def allowed_file(filename): return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS diff --git a/app/templates/settings.html b/app/templates/settings.html index 70e02b3..d3d542f 100644 --- a/app/templates/settings.html +++ b/app/templates/settings.html @@ -40,7 +40,14 @@
-
+
+ + +
Import from JSON export.