#!/usr/bin/env python import os import sys import django from django.conf import settings # Setup Django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.base') django.setup() from apps.hadis.models import Hadis, HadisCategory, Transmitters, BookReference, TransmitterOriginalText from apps.article.models import Article from apps.podcast.models import Podcast from apps.video.models import Video from apps.library.models import Book def check_link(name, link, expected_pattern): if not link: print(f"โŒ {name}: Link is missing") return False # Simple pattern check (standard doesn't specify exact origin, but backend uses settings.DOVODI_DOMAIN) origin = settings.DOVODI_DOMAIN expected = expected_pattern.format(origin=origin) if link.startswith(expected): print(f"โœ… {name}: {link}") return True else: print(f"โŒ {name}: Got {link}, expected pattern starting with {expected}") return False def main(): print("๐Ÿงช Validating Standardized Share Links") print("=" * 60) success = True # 1. Hadith h = Hadis.objects.filter(slug__isnull=False).first() if h: if not check_link("Hadith", h.share_link, "{origin}/arguments/hadith/"): success = False # 2. Category c = HadisCategory.objects.filter(slug__isnull=False).first() if c: if not check_link("Category", c.share_link, "{origin}/arguments/category/"): success = False if c.xmind_file: if not check_link("Mind Map", c.xmind_share_link, "{origin}/xmind/"): success = False # 3. Narrator (Transmitters) t = Transmitters.objects.filter(slug__isnull=False).first() if t: if not check_link("Narrator", t.share_link, "{origin}/arguments/narrators/"): success = False # 4. Source (BookReference) br = BookReference.objects.filter(slug__isnull=False).first() if br: if not check_link("Source", br.share_link, "{origin}/arguments/sources/"): success = False # 5. Article a = Article.objects.filter(slug__isnull=False).first() if a: if not check_link("Article", a.share_link, "{origin}/articles/"): success = False # 6. Podcast p = Podcast.objects.filter(slug__isnull=False).first() if p: if not check_link("Podcast", p.share_link, "{origin}/podcast/"): success = False # 7. Video v = Video.objects.filter(slug__isnull=False).first() if v: if not check_link("Video", v.share_link, "{origin}/videos/"): success = False # 8. Library Book lb = Book.objects.filter(slug__isnull=False).first() if lb: if not check_link("Library Book", lb.share_link, "{origin}/library/"): success = False print("=" * 60) if success: print("๐ŸŽ‰ ALL CHECKS PASSED!") else: print("โš ๏ธ SOME CHECKS FAILED. Please review the output above.") if __name__ == "__main__": main()