You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.0 KiB
97 lines
3.0 KiB
#!/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()
|