From 899de7adf532841e48b57ea184528ece20ad8a1a Mon Sep 17 00:00:00 2001 From: Tiberiu Chibici Date: Mon, 10 Dec 2018 23:23:00 +0200 Subject: [PATCH] Implemented first time setup wizard. There are still some problems to be solved. --- app/YtManagerApp/appmain.py | 12 +- .../dynamic_preferences_registry.py | 12 +- .../management/jobs/synchronize.py | 2 +- app/YtManagerApp/scheduler.py | 7 +- .../first_time/ytapi_create_credential.png | Bin 0 -> 11596 bytes .../ytapi_create_credential_options.png | Bin 0 -> 37770 bytes .../img/first_time/ytapi_create_project.png | Bin 0 -> 11048 bytes .../img/first_time/ytapi_done.png | Bin 0 -> 20957 bytes .../img/first_time/ytapi_enable_ytapi.png | Bin 0 -> 19310 bytes .../img/first_time/ytapi_goto_apis.png | Bin 0 -> 11096 bytes .../img/first_time/ytapi_goto_credentials.png | Bin 0 -> 7816 bytes .../img/first_time/ytapi_project_name.png | Bin 0 -> 22513 bytes .../img/first_time/ytapi_select_project.png | Bin 0 -> 4246 bytes .../img/first_time/ytapi_select_ytapi.png | Bin 0 -> 12595 bytes .../{9_done.html => done.html} | 2 +- .../{0_welcome.html => step0_welcome.html} | 0 .../first_time_setup/step1_apikey.html | 66 +++++++ .../first_time_setup/step2_admin.html | 15 ++ .../first_time_setup/step3_configure.html | 17 ++ app/YtManagerApp/urls.py | 8 + app/YtManagerApp/views/first_time.py | 184 ++++++++++++++---- app/YtManagerApp/views/index.py | 7 +- 22 files changed, 283 insertions(+), 49 deletions(-) create mode 100644 app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_create_credential.png create mode 100644 app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_create_credential_options.png create mode 100644 app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_create_project.png create mode 100644 app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_done.png create mode 100644 app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_enable_ytapi.png create mode 100644 app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_goto_apis.png create mode 100644 app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_goto_credentials.png create mode 100644 app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_project_name.png create mode 100644 app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_select_project.png create mode 100644 app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_select_ytapi.png rename app/YtManagerApp/templates/YtManagerApp/first_time_setup/{9_done.html => done.html} (72%) rename app/YtManagerApp/templates/YtManagerApp/first_time_setup/{0_welcome.html => step0_welcome.html} (100%) create mode 100644 app/YtManagerApp/templates/YtManagerApp/first_time_setup/step1_apikey.html create mode 100644 app/YtManagerApp/templates/YtManagerApp/first_time_setup/step2_admin.html create mode 100644 app/YtManagerApp/templates/YtManagerApp/first_time_setup/step3_configure.html diff --git a/app/YtManagerApp/appmain.py b/app/YtManagerApp/appmain.py index 5b7c449..f8397b8 100644 --- a/app/YtManagerApp/appmain.py +++ b/app/YtManagerApp/appmain.py @@ -7,7 +7,7 @@ from django.conf import settings as dj_settings from .management.appconfig import global_prefs from .management.jobs.synchronize import schedule_synchronize_global from .scheduler import initialize_scheduler - +from django.db.utils import OperationalError def __initialize_logger(): log_dir = os.path.join(dj_settings.DATA_DIR, 'logs') @@ -29,8 +29,12 @@ def __initialize_logger(): def main(): __initialize_logger() - if global_prefs['hidden__initialized']: - initialize_scheduler() - schedule_synchronize_global() + try: + if global_prefs['hidden__initialized']: + initialize_scheduler() + schedule_synchronize_global() + except OperationalError: + # Settings table is not created when running migrate or makemigrations, so just don't do anything in this case. + pass logging.info('Initialization complete.') diff --git a/app/YtManagerApp/dynamic_preferences_registry.py b/app/YtManagerApp/dynamic_preferences_registry.py index 13b0cdd..895f158 100644 --- a/app/YtManagerApp/dynamic_preferences_registry.py +++ b/app/YtManagerApp/dynamic_preferences_registry.py @@ -4,6 +4,8 @@ from dynamic_preferences.registries import global_preferences_registry from dynamic_preferences.users.registries import user_preferences_registry from YtManagerApp.models import VIDEO_ORDER_CHOICES +from django.conf import settings +import os # we create some section objects to link related preferences together @@ -83,7 +85,7 @@ class AutoDeleteWatched(BooleanPreference): @user_preferences_registry.register class AutoDownloadEnabled(BooleanPreference): section = downloader - name = 'download_enabled' + name = 'auto_enabled' default = True required = True @@ -91,7 +93,7 @@ class AutoDownloadEnabled(BooleanPreference): @user_preferences_registry.register class DownloadGlobalLimit(IntegerPreference): section = downloader - name = 'download_global_limit' + name = 'global_limit' default = None required = False @@ -107,7 +109,7 @@ class DownloadGlobalSizeLimit(IntegerPreference): @user_preferences_registry.register class DownloadSubscriptionLimit(IntegerPreference): section = downloader - name = 'download_limit_per_subscription' + name = 'limit_per_subscription' default = 5 required = False @@ -115,7 +117,7 @@ class DownloadSubscriptionLimit(IntegerPreference): @user_preferences_registry.register class DownloadMaxAttempts(IntegerPreference): section = downloader - name = 'download_max_attempts' + name = 'max_download_attempts' default = 3 required = True @@ -133,7 +135,7 @@ class DownloadOrder(ChoicePreference): class DownloadPath(StringPreference): section = downloader name = 'download_path' - default = None + default = os.path.join(settings.DATA_DIR, 'downloads') required = False diff --git a/app/YtManagerApp/management/jobs/synchronize.py b/app/YtManagerApp/management/jobs/synchronize.py index 04741b9..d55636a 100644 --- a/app/YtManagerApp/management/jobs/synchronize.py +++ b/app/YtManagerApp/management/jobs/synchronize.py @@ -149,7 +149,7 @@ def synchronize_subscription(subscription: Subscription): def schedule_synchronize_global(): - trigger = CronTrigger.from_crontab(global_prefs['synchronization_schedule']) + trigger = CronTrigger.from_crontab(global_prefs['scheduler__synchronization_schedule']) job = scheduler.scheduler.add_job(synchronize, trigger, max_instances=1, coalesce=True) log.info('Scheduled synchronize job job=%s', job.id) diff --git a/app/YtManagerApp/scheduler.py b/app/YtManagerApp/scheduler.py index 4863835..ca6958e 100644 --- a/app/YtManagerApp/scheduler.py +++ b/app/YtManagerApp/scheduler.py @@ -1,7 +1,8 @@ import logging -import sys + from apscheduler.schedulers.background import BackgroundScheduler -from django.conf import settings + +from YtManagerApp.management.appconfig import global_prefs scheduler: BackgroundScheduler = None @@ -13,7 +14,7 @@ def initialize_scheduler(): executors = { 'default': { 'type': 'threadpool', - 'max_workers': settings.SCHEDULER_CONCURRENCY + 'max_workers': global_prefs['scheduler__concurrency'] } } job_defaults = { diff --git a/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_create_credential.png b/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_create_credential.png new file mode 100644 index 0000000000000000000000000000000000000000..2977be543be38e273cff0ba50524c29a50a5a737 GIT binary patch literal 11596 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 NROW+prKC~de*+gb{&@fZ literal 0 HcmV?d00001 diff --git a/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_create_credential_options.png b/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_create_credential_options.png new file mode 100644 index 0000000000000000000000000000000000000000..57e59604ec43d6f44413071a6dd2fd2e85e786dc GIT binary patch literal 37770 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 literal 0 HcmV?d00001 diff --git a/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_create_project.png b/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_create_project.png new file mode 100644 index 0000000000000000000000000000000000000000..45e147137eba717ff34cb566f54caaaa7703b5a4 GIT binary patch literal 11048 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 Y-ca8>@>2(ys@DkUXd1#W8jjKb0n)Zc8~^|S literal 0 HcmV?d00001 diff --git a/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_enable_ytapi.png b/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_enable_ytapi.png new file mode 100644 index 0000000000000000000000000000000000000000..236688cd90118d10900100e8a5e4e5359a0357a3 GIT binary patch literal 19310 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 literal 0 HcmV?d00001 diff --git a/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_goto_apis.png b/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_goto_apis.png new file mode 100644 index 0000000000000000000000000000000000000000..bb92bdb020378c340d8db0b2315ce69bc057f617 GIT binary patch literal 11096 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 literal 0 HcmV?d00001 diff --git a/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_goto_credentials.png b/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_goto_credentials.png new file mode 100644 index 0000000000000000000000000000000000000000..9e78e53db3fbe32fe587d6d974e6533853ad254c GIT binary patch literal 7816 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 literal 0 HcmV?d00001 diff --git a/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_project_name.png b/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_project_name.png new file mode 100644 index 0000000000000000000000000000000000000000..ca38d6dfac5537befa2563366501a27677b3943c GIT binary patch literal 22513 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 fFaM_#!w_uSR6h7&Vax@T3vdh?5 literal 0 HcmV?d00001 diff --git a/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_select_project.png b/app/YtManagerApp/static/YtManagerApp/img/first_time/ytapi_select_project.png new file mode 100644 index 0000000000000000000000000000000000000000..fcae29faaf5c301696fd1bb054a33185679ad388 GIT binary patch literal 4246 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

Done!

-

The application is now ready to use!

+

The setup is finished, and the application is now ready to use!

{% crispy form %} diff --git a/app/YtManagerApp/templates/YtManagerApp/first_time_setup/0_welcome.html b/app/YtManagerApp/templates/YtManagerApp/first_time_setup/step0_welcome.html similarity index 100% rename from app/YtManagerApp/templates/YtManagerApp/first_time_setup/0_welcome.html rename to app/YtManagerApp/templates/YtManagerApp/first_time_setup/step0_welcome.html diff --git a/app/YtManagerApp/templates/YtManagerApp/first_time_setup/step1_apikey.html b/app/YtManagerApp/templates/YtManagerApp/first_time_setup/step1_apikey.html new file mode 100644 index 0000000..9ee5997 --- /dev/null +++ b/app/YtManagerApp/templates/YtManagerApp/first_time_setup/step1_apikey.html @@ -0,0 +1,66 @@ +{% extends "YtManagerApp/master_default.html" %} +{% load crispy_forms_tags %} +{% load static %} + +{% block body %} + +
+ +

Step 1: Set up YouTube API key (optional)

+

This program uses the YouTube API in order to obtain information about videos, channels and playlists. + In order to access this API, YouTube requires that we register on their site and request an API key. YouTube + uses this key in order to limit the number of requests made to their platform, in order to prevent abuses.

+ +

To use this program, it is recommended that you create an API key for your own account. While a key + is already provided the developer, there is a chance that the quota limits will be reached, which will prevent + this program from reaching YouTube. Follow the steps below, or press Skip to use the provided key.

+ +

+ +

+ +
+
    +
  1. Visit https://developers.google.com/, log in or create an account, if necessary.
  2. +
  3. Go to , and click on the Create project button. + +
  4. +
  5. Give a name to the project, and then click on Create. Wait for a few seconds, until Google finishes creating the project. + +
  6. +
  7. Make sure the newly created project is selected in the top bar and then, in the left sidebar, + go to APIs & Services - Library. + +
  8. +
  9. Find and click on the YouTube Data API v3 from the list. + +
  10. +
  11. Click Enable to enable the YouTube API for your account. + +
  12. +
  13. In the navigation sidebar, go to the Credentials page. + +
  14. +
  15. Click on Create credentials. + +
  16. +
  17. Fill the requested information; we will need access to the YouTube Data v3, + we will be calling the API from a Web server, and we will access the Public data. + After filling the information, click on the What credentials do I need? button. + +
  18. +
  19. Copy the created key in the box below, and then hit Done. + +
  20. +
+
+ + {% crispy form %} + + Skip + +
+ +{% endblock body %} \ No newline at end of file diff --git a/app/YtManagerApp/templates/YtManagerApp/first_time_setup/step2_admin.html b/app/YtManagerApp/templates/YtManagerApp/first_time_setup/step2_admin.html new file mode 100644 index 0000000..b2cdfe4 --- /dev/null +++ b/app/YtManagerApp/templates/YtManagerApp/first_time_setup/step2_admin.html @@ -0,0 +1,15 @@ +{% extends "YtManagerApp/master_default.html" %} +{% load crispy_forms_tags %} +{% load static %} + +{% block body %} + +
+ +

Step 2: Create an administrator account

+ + {% crispy form %} + +
+ +{% endblock body %} \ No newline at end of file diff --git a/app/YtManagerApp/templates/YtManagerApp/first_time_setup/step3_configure.html b/app/YtManagerApp/templates/YtManagerApp/first_time_setup/step3_configure.html new file mode 100644 index 0000000..cec38dd --- /dev/null +++ b/app/YtManagerApp/templates/YtManagerApp/first_time_setup/step3_configure.html @@ -0,0 +1,17 @@ +{% extends "YtManagerApp/master_default.html" %} +{% load crispy_forms_tags %} +{% load static %} + +{% block body %} + +
+ +

Step 3: Configure the server

+ +

Here you can customize some basic options for the application. There are many more options which can be changed in the settings page.

+ + {% crispy form %} + +
+ +{% endblock body %} \ No newline at end of file diff --git a/app/YtManagerApp/urls.py b/app/YtManagerApp/urls.py index a1c0aa3..ec60500 100644 --- a/app/YtManagerApp/urls.py +++ b/app/YtManagerApp/urls.py @@ -24,6 +24,7 @@ from .views.auth import ExtendedLoginView, RegisterView, RegisterDoneView from .views.index import index, ajax_get_tree, ajax_get_videos, CreateFolderModal, UpdateFolderModal, DeleteFolderModal, \ CreateSubscriptionModal, UpdateSubscriptionModal, DeleteSubscriptionModal, ImportSubscriptionsModal from .views.settings import SettingsView +from .views import first_time urlpatterns = [ # Authentication URLs @@ -59,4 +60,11 @@ urlpatterns = [ path('', index, name='home'), path('settings/', SettingsView.as_view(), name='settings'), + # First time setup + path('first_time/step0_welcome', first_time.Step0WelcomeView.as_view(), name='first_time_0'), + path('first_time/step1_apikey', first_time.Step1ApiKeyView.as_view(), name='first_time_1'), + path('first_time/step2_admin', first_time.Step2CreateAdminUserView.as_view(), name='first_time_2'), + path('first_time/step3_config', first_time.Step3ConfigureView.as_view(), name='first_time_3'), + path('first_time/done', first_time.DoneView.as_view(), name='first_time_done'), + ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/app/YtManagerApp/views/first_time.py b/app/YtManagerApp/views/first_time.py index f7a019b..aa32d2c 100644 --- a/app/YtManagerApp/views/first_time.py +++ b/app/YtManagerApp/views/first_time.py @@ -3,49 +3,165 @@ from crispy_forms.layout import Layout, HTML, Submit from django import forms from django.contrib.auth.mixins import LoginRequiredMixin from django.urls import reverse_lazy -from django.views.generic import UpdateView - +from django.views.generic import UpdateView, FormView +from django.shortcuts import render, redirect +from YtManagerApp.views.auth import RegisterView from YtManagerApp.models import UserSettings +from YtManagerApp.management.appconfig import global_prefs +from django.http import HttpResponseForbidden -class SettingsForm(forms.ModelForm): - class Meta: - model = UserSettings - exclude = ['user'] + +class ProtectInitializedMixin(object): + + def get(self, request, *args, **kwargs): + if global_prefs['hidden__initialized']: + return redirect('home') + return super().get(request, *args, **kwargs) + + def post(self, request, *args, **kwargs): + if global_prefs['hidden__initialized']: + return HttpResponseForbidden() + return super().post(request, *args, **kwargs) + + +# +# Step 0: welcome screen +# +class Step0WelcomeForm(forms.Form): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.layout = Layout( + Submit('submit', value='Continue') + ) + + +class Step0WelcomeView(ProtectInitializedMixin, FormView): + template_name = 'YtManagerApp/first_time_setup/step0_welcome.html' + form_class = Step0WelcomeForm + success_url = reverse_lazy('first_time_1') + + +# +# Step 1: setup API key +# +class Step1ApiKeyForm(forms.Form): + api_key = forms.CharField(label="YouTube API Key:") def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() - self.helper.form_class = 'form-horizontal' - self.helper.label_class = 'col-lg-3' - self.helper.field_class = 'col-lg-9' self.helper.layout = Layout( - 'mark_deleted_as_watched', - 'delete_watched', - HTML('

Download settings

'), - 'auto_download', - 'download_path', - 'download_file_pattern', - 'download_format', - 'download_order', - 'download_global_limit', - 'download_subscription_limit', - HTML('

Subtitles download settings

'), - 'download_subtitles', - 'download_subtitles_langs', - 'download_subtitles_all', - 'download_autogenerated_subtitles', - 'download_subtitles_format', - Submit('submit', value='Save') + 'api_key', + Submit('submit', value='Continue'), ) -class SettingsView(LoginRequiredMixin, UpdateView): - form_class = SettingsForm - model = UserSettings - template_name = 'YtManagerApp/settings.html' - success_url = reverse_lazy('home') +class Step1ApiKeyView(ProtectInitializedMixin, FormView): + template_name = 'YtManagerApp/first_time_setup/step1_apikey.html' + form_class = Step1ApiKeyForm + success_url = reverse_lazy('first_time_2') - def get_object(self, queryset=None): - obj, _ = self.model.objects.get_or_create(user=self.request.user) - return obj + def form_valid(self, form): + key = form.cleaned_data['api_key'] + # TODO: validate key + if key is not None and len(key) > 0: + global_prefs['general__youtube_api_key'] = key + + +# +# Step 2: create admin user +# +class Step2CreateAdminUserView(ProtectInitializedMixin, RegisterView): + template_name = 'YtManagerApp/first_time_setup/step2_admin.html' + success_url = reverse_lazy('first_time_3') + + +# +# Step 3: configure server +# +class Step3ConfigureForm(forms.Form): + + allow_registrations = forms.BooleanField( + label="Allow user registrations", + help_text="Disabling this option will prevent anyone from registering to the site.", + initial=True, + required=False + ) + + sync_schedule = forms.CharField( + label="Synchronization schedule", + help_text="How often should the application look for new videos.", + initial="5 * * * *", + required=True + ) + + auto_download = forms.BooleanField( + label="Download videos automatically", + required=False + ) + + download_location = forms.CharField( + label="Download location", + help_text="Location on the server where videos are downloaded.", + required=True + ) + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.layout = Layout( + HTML('

Server settings

'), + 'sync_schedule', + 'allow_registrations', + HTML('

User settings

'), + 'auto_download', + 'download_location', + Submit('submit', value='Continue'), + ) + + +class Step3ConfigureView(ProtectInitializedMixin, FormView): + template_name = 'YtManagerApp/first_time_setup/step3_configure.html' + form_class = Step3ConfigureForm + success_url = reverse_lazy('first_time_done') + + def form_valid(self, form): + allow_registrations = form.cleaned_data['allow_registrations'] + if allow_registrations is not None: + global_prefs['general__allow_registrations'] = allow_registrations + + sync_schedule = form.cleaned_data['sync_schedule'] + if sync_schedule is not None and len(sync_schedule) > 0: + global_prefs['scheduler__synchronization_schedule'] = sync_schedule + + auto_download = form.cleaned_data['auto_download'] + if auto_download is not None: + self.request.user.preferences['downloader__auto_enabled'] = auto_download + + download_location = form.cleaned_data['download_location'] + if download_location is not None and len(download_location) > 0: + self.request.user.preferences['downloader__download_path'] = download_location + + # Set initialized to true + global_prefs['hidden__initialized'] = True + + return super().form_valid(form) + +# +# Done screen +# +class DoneForm(forms.Form): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.layout = Layout( + Submit('submit', value='Finish') + ) + + +class DoneView(FormView): + template_name = 'YtManagerApp/first_time_setup/done.html' + form_class = DoneForm + success_url = reverse_lazy('home') diff --git a/app/YtManagerApp/views/index.py b/app/YtManagerApp/views/index.py index f7cfd7a..2a0c791 100644 --- a/app/YtManagerApp/views/index.py +++ b/app/YtManagerApp/views/index.py @@ -5,11 +5,12 @@ from django.contrib.auth.decorators import login_required from django.contrib.auth.mixins import LoginRequiredMixin from django.db.models import Q from django.http import HttpRequest, HttpResponseBadRequest, JsonResponse -from django.shortcuts import render +from django.shortcuts import render, redirect from django.views.generic import CreateView, UpdateView, DeleteView, FormView from django.views.generic.edit import FormMixin from django.conf import settings from YtManagerApp.management.videos import get_videos +from YtManagerApp.management.appconfig import global_prefs from YtManagerApp.models import Subscription, SubscriptionFolder, VIDEO_ORDER_CHOICES, VIDEO_ORDER_MAPPING from YtManagerApp.utils import youtube, subscription_file_parser from YtManagerApp.views.controls.modal import ModalMixin @@ -94,6 +95,10 @@ def __tree_sub_id(sub_id): def index(request: HttpRequest): + + if not global_prefs['hidden__initialized']: + return redirect('first_time_0') + context = { 'config_errors': settings.CONFIG_ERRORS, 'config_warnings': settings.CONFIG_WARNINGS,