diff --git a/django_code/apps/streaming/admin.py b/django_code/apps/streaming/admin.py index 7f852a2..e6503f2 100644 --- a/django_code/apps/streaming/admin.py +++ b/django_code/apps/streaming/admin.py @@ -3,6 +3,7 @@ from django.utils.html import format_html from import_export.admin import ImportExportModelAdmin from .models import streamingData from .utils import full_testing +from urllib.parse import urlsplit, urlunsplit @@ -29,11 +30,24 @@ def check(modeladmin, request, queryset): # messages.SUCCESS, # ) +@admin.action(description="cleaning the url") +def urlcleaning(modeladmin, request, queryset): + for query in queryset: + # Split the URL into components + parsed = urlsplit(query.url) + + # Rebuild using only scheme and netloc, adding a trailing slash at the end + base_url = urlunsplit((parsed.scheme, parsed.netloc, "/", "", "")) + query.url = base_url + query.save(update_fields=["url"]) + print("Cleaning :"+str(base_url)) + + return 0 @admin.register(streamingData) class streamingAdmin(ImportExportModelAdmin): list_display = ['clickable_links','result','status'] fields = ['url'] - actions = [check] + actions = [check,urlcleaning] def clickable_links(self, obj): return format_html('{}', obj.url,obj.url) \ No newline at end of file