Big refactor
This commit is contained in:
@ -1,4 +1,67 @@
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
|
||||
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)
|
||||
|
||||
@staticmethod
|
||||
def find_by_user(user: User):
|
||||
result = UserSettings.objects.filter(user=user)
|
||||
if len(result) > 0:
|
||||
return result.first()
|
||||
return None
|
||||
|
||||
def __str__(self):
|
||||
return str(self.user)
|
||||
|
||||
def to_dict(self):
|
||||
ret = {}
|
||||
|
||||
if self.mark_deleted_as_watched is not None:
|
||||
ret['MarkDeletedAsWatched'] = self.mark_deleted_as_watched
|
||||
if self.delete_watched is not None:
|
||||
ret['DeleteWatched'] = self.delete_watched
|
||||
if self.auto_download is not None:
|
||||
ret['AutoDownload'] = self.auto_download
|
||||
if self.download_global_limit is not None:
|
||||
ret['DownloadGlobalLimit'] = self.download_global_limit
|
||||
if self.download_subscription_limit is not None:
|
||||
ret['DownloadSubscriptionLimit'] = self.download_subscription_limit
|
||||
if self.download_order is not None:
|
||||
ret['DownloadOrder'] = self.download_order
|
||||
if self.download_path is not None:
|
||||
ret['DownloadPath'] = self.download_path
|
||||
if self.download_file_pattern is not None:
|
||||
ret['DownloadFilePattern'] = self.download_file_pattern
|
||||
if self.download_format is not None:
|
||||
ret['DownloadFormat'] = self.download_format
|
||||
if self.download_subtitles is not None:
|
||||
ret['DownloadSubtitles'] = self.download_subtitles
|
||||
if self.download_autogenerated_subtitles is not None:
|
||||
ret['DownloadAutogeneratedSubtitles'] = self.download_autogenerated_subtitles
|
||||
if self.download_subtitles_all is not None:
|
||||
ret['DownloadSubtitlesAll'] = self.download_subtitles_all
|
||||
if self.download_subtitles_langs is not None:
|
||||
ret['DownloadSubtitlesLangs'] = self.download_subtitles_langs
|
||||
if self.download_subtitles_format is not None:
|
||||
ret['DownloadSubtitlesFormat'] = self.download_subtitles_format
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
class SubscriptionFolder(models.Model):
|
||||
@ -52,6 +115,13 @@ class Subscription(models.Model):
|
||||
channel = models.ForeignKey(Channel, on_delete=models.CASCADE)
|
||||
icon_default = models.TextField()
|
||||
icon_best = models.TextField()
|
||||
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
|
||||
# overrides
|
||||
auto_download = models.BooleanField(null=True)
|
||||
download_limit = models.IntegerField(null=True)
|
||||
download_order = models.TextField(null=True)
|
||||
manager_delete_after_watched = models.BooleanField(null=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
Reference in New Issue
Block a user