Fixes cleanup unused logos.

This commit is contained in:
SergeantPanda 2025-07-15 22:00:18 -05:00
parent fa470bee35
commit 3949a2ed5c
3 changed files with 13 additions and 7 deletions

View file

@ -7,6 +7,7 @@ from .api_views import (
BulkDeleteStreamsAPIView,
BulkDeleteChannelsAPIView,
BulkDeleteLogosAPIView,
CleanupUnusedLogosAPIView,
LogoViewSet,
ChannelProfileViewSet,
UpdateChannelMembershipAPIView,
@ -30,7 +31,7 @@ urlpatterns = [
path('streams/bulk-delete/', BulkDeleteStreamsAPIView.as_view(), name='bulk_delete_streams'),
path('channels/bulk-delete/', BulkDeleteChannelsAPIView.as_view(), name='bulk_delete_channels'),
path('logos/bulk-delete/', BulkDeleteLogosAPIView.as_view(), name='bulk_delete_logos'),
path('logos/cleanup/', BulkDeleteLogosAPIView.as_view(), {'action': 'cleanup_unused_logos'}, name='cleanup_unused_logos'),
path('logos/cleanup/', CleanupUnusedLogosAPIView.as_view(), name='cleanup_unused_logos'),
path('channels/<int:channel_id>/streams/', GetChannelStreamsAPIView.as_view(), name='get_channel_streams'),
path('profiles/<int:profile_id>/channels/<int:channel_id>/', UpdateChannelMembershipAPIView.as_view(), name='update_channel_membership'),
path('profiles/<int:profile_id>/channels/bulk-update/', BulkUpdateChannelMembershipAPIView.as_view(), name='bulk_update_channel_membership'),

View file

@ -1074,13 +1074,21 @@ class BulkDeleteLogosAPIView(APIView):
status=status.HTTP_204_NO_CONTENT
)
class CleanupUnusedLogosAPIView(APIView):
def get_permissions(self):
try:
return [
perm() for perm in permission_classes_by_method[self.request.method]
]
except KeyError:
return [Authenticated()]
@swagger_auto_schema(
method="post",
operation_description="Delete all logos that are not used by any channels",
responses={200: "Cleanup completed"},
)
@action(detail=False, methods=["post"], url_path="cleanup")
def cleanup_unused_logos(self, request):
def post(self, request):
"""Delete all logos with no channel associations"""
unused_logos = Logo.objects.filter(channels__isnull=True)
deleted_count = unused_logos.count()

View file

@ -1332,9 +1332,6 @@ export default class API {
method: 'POST',
});
// Refresh logos to update the UI
await this.fetchLogos();
return response;
} catch (e) {
errorNotification('Failed to cleanup unused logos', e);