Implemented user settings page.
This commit is contained in:
@ -8,8 +8,6 @@ from django.db import models
|
||||
from django.db.models.functions import Lower
|
||||
from YtManagerApp.utils.youtube import YoutubeAPI, YoutubeChannelInfo, YoutubePlaylistInfo
|
||||
|
||||
|
||||
|
||||
# help_text = user shown text
|
||||
# verbose_name = user shown name
|
||||
# null = nullable, blank = user is allowed to set value to empty
|
||||
@ -17,20 +15,87 @@ from YtManagerApp.utils.youtube import YoutubeAPI, YoutubeChannelInfo, YoutubePl
|
||||
|
||||
class UserSettings(models.Model):
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE)
|
||||
mark_deleted_as_watched = models.BooleanField(null=True)
|
||||
delete_watched = models.BooleanField(null=True)
|
||||
auto_download = models.BooleanField(null=True)
|
||||
download_global_limit = models.IntegerField(null=True)
|
||||
download_subscription_limit = models.IntegerField(null=True)
|
||||
download_order = models.TextField(null=True)
|
||||
download_path = models.TextField(null=True)
|
||||
download_file_pattern = models.TextField(null=True)
|
||||
download_format = models.TextField(null=True)
|
||||
download_subtitles = models.BooleanField(null=True)
|
||||
download_autogenerated_subtitles = models.BooleanField(null=True)
|
||||
download_subtitles_all = models.BooleanField(null=True)
|
||||
download_subtitles_langs = models.TextField(null=True)
|
||||
download_subtitles_format = models.TextField(null=True)
|
||||
|
||||
mark_deleted_as_watched = models.BooleanField(
|
||||
null=True, blank=True,
|
||||
help_text='When a downloaded video is deleted from the system, it will be marked as \'watched\'.')
|
||||
|
||||
delete_watched = models.BooleanField(
|
||||
null=True, blank=True,
|
||||
help_text='Videos marked as watched are automatically deleted.')
|
||||
|
||||
auto_download = models.BooleanField(
|
||||
null=True, blank=True,
|
||||
help_text='Enables or disables automatic downloading.')
|
||||
|
||||
download_global_limit = models.IntegerField(
|
||||
null=True, blank=True,
|
||||
help_text='Limits the total number of videos downloaded (-1 = no limit).')
|
||||
|
||||
download_subscription_limit = models.IntegerField(
|
||||
null=True, blank=True,
|
||||
help_text='Limits the number of videos downloaded per subscription (-1 = no limit). '
|
||||
' This setting can be overriden for each individual subscription in the subscription edit dialog.')
|
||||
|
||||
download_order = models.CharField(
|
||||
null=True, blank=True,
|
||||
max_length=100,
|
||||
help_text='The order in which videos will be downloaded.'
|
||||
)
|
||||
|
||||
download_path = models.CharField(
|
||||
null=True, blank=True,
|
||||
max_length=1024,
|
||||
help_text='Path on the disk where downloaded videos are stored. '
|
||||
' You can use environment variables using syntax: <code>${env:...}</code>'
|
||||
)
|
||||
|
||||
download_file_pattern = models.CharField(
|
||||
null=True, blank=True,
|
||||
max_length=1024,
|
||||
help_text='A pattern which describes how downloaded files are organized. Extensions are automatically appended.'
|
||||
' You can use the following fields, using the <code>${field}</code> syntax:'
|
||||
' channel, channel_id, playlist, playlist_id, playlist_index, title, id.'
|
||||
' Example: <code>${channel}/${playlist}/S01E${playlist_index} - ${title} [${id}]</code>')
|
||||
|
||||
download_format = models.CharField(
|
||||
null=True, blank=True,
|
||||
max_length=256,
|
||||
help_text='Download format that will be passed to youtube-dl. '
|
||||
' See the <a href="https://github.com/rg3/youtube-dl/blob/master/README.md#format-selection">'
|
||||
' youtube-dl documentation</a> for more details.')
|
||||
|
||||
download_subtitles = models.BooleanField(
|
||||
null=True, blank=True,
|
||||
help_text='Enable downloading subtitles for the videos.'
|
||||
' The flag is passed directly to youtube-dl. You can find more information'
|
||||
' <a href="https://github.com/rg3/youtube-dl/blob/master/README.md#subtitle-options">here</a>.')
|
||||
|
||||
download_autogenerated_subtitles = models.BooleanField(
|
||||
null=True, blank=True,
|
||||
help_text='Enables downloading the automatically generated subtitle.'
|
||||
' The flag is passed directly to youtube-dl. You can find more information'
|
||||
' <a href="https://github.com/rg3/youtube-dl/blob/master/README.md#subtitle-options">here</a>.')
|
||||
|
||||
download_subtitles_all = models.BooleanField(
|
||||
null=True, blank=True,
|
||||
help_text='If enabled, all the subtitles in all the available languages will be downloaded.'
|
||||
' The flag is passed directly to youtube-dl. You can find more information'
|
||||
' <a href="https://github.com/rg3/youtube-dl/blob/master/README.md#subtitle-options">here</a>.')
|
||||
|
||||
download_subtitles_langs = models.CharField(
|
||||
null=True, blank=True,
|
||||
max_length=250,
|
||||
help_text='Comma separated list of languages for which subtitles will be downloaded.'
|
||||
' The flag is passed directly to youtube-dl. You can find more information'
|
||||
' <a href="https://github.com/rg3/youtube-dl/blob/master/README.md#subtitle-options">here</a>.')
|
||||
|
||||
download_subtitles_format = models.CharField(
|
||||
null=True, blank=True,
|
||||
max_length=100,
|
||||
help_text='Subtitles format preference. Examples: srt/ass/best'
|
||||
' The flag is passed directly to youtube-dl. You can find more information'
|
||||
' <a href="https://github.com/rg3/youtube-dl/blob/master/README.md#subtitle-options">here</a>.')
|
||||
|
||||
@staticmethod
|
||||
def find_by_user(user: User):
|
||||
|
Reference in New Issue
Block a user