<!DOCTYPE html>
<html lang="fa">
<head>
    <meta charset="UTF-8">
    <title>شناسایی و دانلود فایل‌های HTML</title>
    <style>
        /* تنظیمات پایه برای body و html */
        html, body {
            margin: 0;
            padding: 0;
            height: 100%;
            overflow: hidden; 
            background-color: #f0f0f0;
            font-family: Arial, sans-serif;
        }

        /* کانتینر iframe */
        .iframe-container {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100vh;
            overflow: hidden;
            z-index: 1;
        }

        /* تنظیمات iframe */
        .iframe-container iframe {
            position: absolute;
            top: -170px; 
            left: 0;
            width: 100%;
            height: calc(100% + 398px); 
            border: none;
            display: none; 
        }

        /* Overlay برای مخفی کردن بخش‌های بالا و پایین */
        .overlay-top, .overlay-bottom {
            position: fixed;
            width: 100%;
            background-color: transparent;
            z-index: 900;
            pointer-events: none;
        }

        .overlay-top {
            top: 0;
            height: 170px;
        }

        .overlay-bottom {
            bottom: 0;
            height: 228px;
        }

        /* لودینگ */
        .loading {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: white;
            padding: 20px;
            border-radius: 5px;
            z-index: 2000;
            display: flex;
            flex-direction: column;
            align-items: center;
            max-width: 90%;
            box-sizing: border-box;
        }

        .loading-message {
            margin-bottom: 10px;
            font-size: 18px;
            text-align: center;
        }

        .progress {
            width: 80%;
            max-width: 400px;
            height: 20px;
            background-color: #ddd;
            border-radius: 5px;
            overflow: hidden;
            margin-bottom: 10px;
        }

        .progress-bar {
            height: 100%;
            width: 0;
            background-color: #4caf50;
            transition: width 0.25s;
        }

        .error-message {
            display: none;
            color: red;
            text-align: center;
            margin-bottom: 10px;
            font-size: 16px;
        }

        #retryButton {
            display: none;
            padding: 10px 20px;
            background-color: #4caf50;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            font-size: 16px;
        }

        #retryButton:hover {
            background-color: #45a049;
        }

        /* دکمه دانلود */
        .download-button {
            display: block;
            width: 160px; 
            color: white;
            text-align: center;
            padding: 10px;
            border-radius: 5px;
            cursor: pointer;
            font-size: 14px;
            position: fixed;
            top: 20px;
            right: 10px;
            z-index: 10001;
            background-color: #4CAF50;
            text-decoration: none;
        }

        .download-button:hover {
            background-color: #45a049;
        }
    </style>
</head>
<body>
    <!-- لودینگ -->
    <div class="loading" id="loading">
        <div class="loading-message">لطفاً صبر کنید...</div>
        <div class="progress">
            <div class="progress-bar" id="progressBar"></div>
        </div>
        <div class="error-message" id="errorMessage">
            بارگیری زیاد طول کشید.<br />
            در صورت عدم بارگذاری، فیلترشکن خود را روشن کنید.
        </div>
        <button id="retryButton">بارگذاری مجدد</button>
    </div>

    <!-- دکمه دانلود فایل‌های HTML -->
    <a href="#" class="download-button" id="downloadButton">دانلود فایل‌های HTML 📥</a>

    <!-- کانتینر iframe -->
    <div class="iframe-container">
        <iframe id="myIframe" src="https://l-ai-gemini-ui-generator.hf.space" scrolling="yes"></iframe>
    </div>

    <!-- Overlay برای مخفی کردن بخش‌های بالا و پایین -->
    <div class="overlay-top" id="overlayTop"></div>
    <div class="overlay-bottom" id="overlayBottom"></div>

    <script>
        let progress = 0;
        let initialLoadCompleted = false;
        const progressBar = document.getElementById('progressBar');
        const retryButton = document.getElementById('retryButton');
        const errorMessage = document.getElementById('errorMessage');
        const loading = document.getElementById('loading');
        const iframe = document.getElementById('myIframe');
        let progressInterval;
        let errorTimeout;

        function startProgress() {
            if (initialLoadCompleted) return; 
            progressInterval = setInterval(() => {
                if (progress < 100) {
                    progress += 10;
                    if (progress > 100) progress = 100;
                    progressBar.style.width = progress + '%';
                }
                if (progress >= 100 && !initialLoadCompleted) {
                    clearInterval(progressInterval);
                    showError();
                }
            }, 1000);

            errorTimeout = setTimeout(() => {
                if (!initialLoadCompleted) {
                    showError();
                }
            }, 10000);
        }

        function iframeLoaded() {
            if (initialLoadCompleted) return;
            initialLoadCompleted = true;
            clearInterval(progressInterval);
            clearTimeout(errorTimeout);
            loading.style.display = 'none';
            iframe.style.display = 'block';
        }

        function iframeError() {
            if (initialLoadCompleted) return;
            clearInterval(progressInterval);
            clearTimeout(errorTimeout);
            showError();
        }

        function showError() {
            errorMessage.style.display = 'block';
            retryButton.style.display = 'block';
        }

        function resetLoading() {
            progress = 0;
            progressBar.style.width = '0%';
            initialLoadCompleted = false;
            loading.style.display = 'flex';
            errorMessage.style.display = 'none';
            retryButton.style.display = 'none';
            iframe.style.display = 'none';
            clearInterval(progressInterval);
            clearTimeout(errorTimeout);
            iframe.addEventListener('load', iframeLoaded, { once: true });
            iframe.addEventListener('error', iframeError, { once: true });
        }

        function loadIframe() {
            // برای بارگذاری مجدد iframe، بهتر است از یک کوئری استرینگ تصادفی استفاده کنید تا کش نشود
            iframe.src = iframe.src.split('?')[0] + '?reload=' + new Date().getTime();
        }

        retryButton.addEventListener('click', () => {
            resetLoading();
            loadIframe();
            startProgress();
        });

        iframe.addEventListener('load', iframeLoaded, { once: true });
        iframe.addEventListener('error', iframeError, { once: true });
        startProgress();

        // دکمه دانلود فایل‌های HTML
        document.getElementById('downloadButton').addEventListener('click', function(event) {
            event.preventDefault();
            try {
                // دسترسی به سند داخل iframe
                const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;

                // پیدا کردن تمام لینک‌ها که به فایل‌های HTML اشاره دارند
                const links = iframeDocument.querySelectorAll('a[href$=".html"], a[href$=".htm"]');

                if (links.length === 0) {
                    alert("هیچ فایلی با فرمت HTML یافت نشد.");
                    return;
                }

                // استخراج URLهای منحصر به فرد
                const htmlFiles = Array.from(links).map(link => link.href).filter((value, index, self) => self.indexOf(value) === index);

                if (htmlFiles.length === 0) {
                    alert("هیچ فایلی با فرمت HTML یافت نشد.");
                    return;
                }

                if (confirm(`${htmlFiles.length} فایل HTML یافت شد. برای دانلود آن‌ها روی "تأیید" کلیک کنید.`)) {
                    htmlFiles.forEach(fileUrl => {
                        const link = document.createElement('a');
                        link.href = fileUrl;
                        link.download = ''; // مرورگرها اغلب نام فایل را از URL می‌گیرند
                        document.body.appendChild(link);
                        link.click();
                        document.body.removeChild(link);
                    });
                }

            } catch (error) {
                console.error("خطا در شناسایی فایل‌ها: ", error);
                alert("خطایی در شناسایی فایل‌های HTML رخ داد.\nممکن است به دلیل محدودیت‌های امنیتی مرورگر باشد.");
            }
        });
    </script>
</body>
</html> در این کد کاری کن خود صفحه لینک های با فرمت اچ تی ام ال رو شناسایی کنه بدون زدن دکمه دانلود و هر لحظه یعنی صفحه در حال برسی باشه انگار هر لحظه دکمه دانلود کلیک میکنیم به محض پیدا شدن لینک اچ تی ام ال پیغام نمایش بده تا با مرورگر لینک باز کنیم نشد بیبین لینک های مثل این است https://l-ai-gemini-ui-generator.hf.space/media/ac6a70a1074900a3b7a53812d9b4154b29b2d37ee29a626e9c909aac.html کلا بعد از ساخت لینک ها با فرمت html می‌دونی چیه یک دکمه میزنم که زود می‌ره خب تو کاری کن در هر لحظه خود صفحه اچ تی ام ال لینک های با این فرمت شناسایی کنه به محض اینکه لینک با این فرمت شناسایی شد پیغام نمایش بده که بشه لینک با مرورگر باز کرد