Files
Django_kube/django_code/apps/streaming/admin.py
T
pierre geeraert 9595ea326f
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2s
clean the URLs from import
2026-08-05 19:55:27 +01:00

53 lines
1.7 KiB
Python

from django.contrib import admin
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
@admin.action(description="check the URLs")
def check(modeladmin, request, queryset):
for query in queryset:
website_url = query.url
status=full_testing(website_url)[0]
result= full_testing(website_url)[1]
print(str(query.url)+": "+str(status)+" -> "+str(result))
query.status = status
query.result = result
query.save(update_fields=["status","result"])
# modeladmin.message_user(
# request,
# ngettext(
# "%d episode was successfully marked as seen.",
# "%d episodes were successfully marked as seen.",
# updated,
# )
# % updated,
# 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,urlcleaning]
def clickable_links(self, obj):
return format_html('<a href="{}">{}</a>', obj.url,obj.url)