def get_file_path(instance, filename): if instance.library.actor.get_user(): return common_utils.ChunkedPath("tracks")(instance, filename) else: # we cache remote tracks in a different directory return common_utils.ChunkedPath("federation_cache/tracks")(instance, filename)
"label": "Manage instance-level settings", "help_text": "", "scopes": { "read:instance:settings", "write:instance:settings", "read:instance:users", "write:instance:users", "read:instance:invitations", "write:instance:invitations", }, }, } PERMISSIONS = sorted(PERMISSIONS_CONFIGURATION.keys()) get_file_path = common_utils.ChunkedPath("users/avatars", preserve_file_name=False) def get_default_instance_support_message_display_date(): return timezone.now() + datetime.timedelta( days=settings.INSTANCE_SUPPORT_MESSAGE_DELAY) def get_default_funkwhale_support_message_display_date(): return timezone.now() + datetime.timedelta( days=settings.FUNKWHALE_SUPPORT_MESSAGE_DELAY) class UserQuerySet(models.QuerySet): def for_auth(self): """Optimization to avoid additional queries during authentication"""
# use this flag to disable federation with a library federation_enabled = models.BooleanField() # should we mirror files locally or hotlink them? download_files = models.BooleanField() # should we automatically import new files from this library? autoimport = models.BooleanField() tracks_count = models.PositiveIntegerField(null=True, blank=True) follow = models.OneToOneField(Follow, related_name="library", null=True, blank=True, on_delete=models.SET_NULL) get_file_path = common_utils.ChunkedPath("federation_cache") class LibraryTrack(models.Model): url = models.URLField(unique=True, max_length=500) audio_url = models.URLField(max_length=500) audio_mimetype = models.CharField(max_length=200) audio_file = models.FileField(upload_to=get_file_path, null=True, blank=True) creation_date = models.DateTimeField(default=timezone.now) modification_date = models.DateTimeField(auto_now=True) fetched_date = models.DateTimeField(null=True, blank=True) published_date = models.DateTimeField(null=True, blank=True) library = models.ForeignKey(Library,