only trigger hook on playlists

This commit is contained in:
Petitminion 2025-04-27 20:21:31 +02:00
parent adbb84d9d5
commit ba7af9491e
3 changed files with 3 additions and 10 deletions

View File

@ -188,4 +188,5 @@ def filter_files(files, allowed_extensions):
def get_search_url(query, page_size, page): def get_search_url(query, page_size, page):
q = urllib.parse.urlencode({"q": query}) q = urllib.parse.urlencode({"q": query})
return f"https://archive.org/advancedsearch.php?{q}&sort[]=addeddate+desc&rows={page_size}&page={page}&output=json" return f"https://archive.org/advancedsearch.php?{q}&sort[]=addeddate+desc&rows={page_size}\
&page={page}&output=json&mediatype=audio"

View File

@ -130,7 +130,7 @@ class PlaylistViewSet(
plts = playlist.playlist_tracks.all().for_nested_serialization( plts = playlist.playlist_tracks.all().for_nested_serialization(
music_utils.get_actor_from_request(request) music_utils.get_actor_from_request(request)
) )
plts_without_upload = plts.filter(track__uploads__isnull=False) plts_without_upload = plts.filter(track__uploads__isnull=True)
for plt in plts_without_upload[: settings.THIRD_PARTY_UPLOAD_MAX_UPLOADS]: for plt in plts_without_upload[: settings.THIRD_PARTY_UPLOAD_MAX_UPLOADS]:
plugins.trigger_hook( plugins.trigger_hook(
plugins.TRIGGER_THIRD_PARTY_UPLOAD, plugins.TRIGGER_THIRD_PARTY_UPLOAD,

View File

@ -1,6 +1,5 @@
import pickle import pickle
from django.conf import settings
from django.contrib.auth.models import AnonymousUser from django.contrib.auth.models import AnonymousUser
from django.core.cache import cache from django.core.cache import cache
from django.db.models import Q from django.db.models import Q
@ -9,7 +8,6 @@ from rest_framework import mixins, status, viewsets
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.response import Response from rest_framework.response import Response
from config import plugins
from funkwhale_api.common import permissions as common_permissions from funkwhale_api.common import permissions as common_permissions
from funkwhale_api.music import utils as music_utils from funkwhale_api.music import utils as music_utils
from funkwhale_api.music.serializers import TrackSerializer from funkwhale_api.music.serializers import TrackSerializer
@ -54,14 +52,8 @@ class RadioViewSet(
def tracks(self, request, *args, **kwargs): def tracks(self, request, *args, **kwargs):
radio = self.get_object() radio = self.get_object()
tracks = radio.get_candidates().for_nested_serialization() tracks = radio.get_candidates().for_nested_serialization()
tracks_without_upload = tracks.filter(uploads__isnull=True)
actor = music_utils.get_actor_from_request(self.request) actor = music_utils.get_actor_from_request(self.request)
tracks = tracks.with_playable_uploads(actor) tracks = tracks.with_playable_uploads(actor)
for track in tracks_without_upload[: settings.THIRD_PARTY_UPLOAD_MAX_UPLOADS]:
plugins.trigger_hook(
plugins.TRIGGER_THIRD_PARTY_UPLOAD,
track=track,
)
tracks = tracks.playable_by(actor) tracks = tracks.playable_by(actor)
page = self.paginate_queryset(tracks) page = self.paginate_queryset(tracks)
if page is not None: if page is not None: