#!/usr/bin/python3

"""
Script to check external links in MDX files.
"""

import re
from pathlib import Path
import requests

def check_links_in_mdx(directory):
    """
    Scans MDX files in the given directory for external links and checks their availability.

    :param directory: Path to the directory containing MDX files.
    """
    mdx_files = Path(directory).rglob("*.mdx")
    url_pattern = re.compile(r'\[.*?\]\((http[s]?://.*?)\)')

    for mdx_file in mdx_files:
        with open(mdx_file, "r", encoding="utf-8") as file:
            content = file.read()
            links = url_pattern.findall(content)

            for link in links:
                try:
                    response = requests.head(link, allow_redirects=True, timeout=5)
                    if response.status_code >= 400:
                        print(
                            f"❌ Broken link in {mdx_file}: {link} "
                            f"(Status: {response.status_code})"
                        )
                except requests.RequestException:
                    print(f"⚠️ Error checking {link} in {mdx_file}")

if __name__ == "__main__":
    check_links_in_mdx("content/docs")