<p>&nbsp;</p>
<style>
        /* تنظیمات پایه برای body و html */
        html, body {
            margin: 0;
            padding: 0;
            height: 100%;
            overflow: hidden;
            background-color: #f0f0f0;
            font-family: Arial, sans-serif;
        }

        /* متغیر CSS برای ارتفاع نمایشگر */
        :root {
            --vh: 100%;
        }

        /* حالت عادی */
        .iframe-container.normal {
            position: relative;
            width: 100%;
            height: 100vh;
            overflow: hidden;
        }

        .iframe-container.normal iframe {
            width: 100%;
            height: 100%;
            border: none;
            display: none;
            position: relative;
            top: 0;
        }

        /* حالت تمام صفحه */
        .iframe-container.fullscreen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: calc(var(--vh) * 100);
            overflow: hidden;
            z-index: 1;
        }

        .iframe-container.fullscreen iframe {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border: none;
            display: block;
        }

        /* استایل‌های مشترک */
        .loading {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            display: flex;
            flex-direction: column;
            align-items: center;
            z-index: 10000;
        }

        .loading-message {
            margin-bottom: 20px;
            font-size: 18px;
        }

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

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

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

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

        /* استایل دکمه دانلود */
        .download-button {
            display: block;
            width: 30px;
            height: 30px;
            color: white;
            text-align: center;
            padding: 4px;
            border-radius: 50%;
            cursor: pointer;
            font-size: 14px;
            line-height: 22px;
            transition: background-color 0.3s;
            position: fixed;
            top: 10px;
            right: 10px;
            z-index: 10001;
            text-decoration: none;
            background-color: #4CAF50;
        }

        .download-button:hover {
            background-color: #45a049;
        }

        /* اعلان */
        .notification {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: #ffffff;
            padding: 20px 30px;
            border-radius: 5px;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
            z-index: 10003;
            display: none;
            text-align: center;
            width: 300px;
        }

        .notification-buttons {
            display: flex;
            justify-content: center;
            margin-top: 20px;
        }

        .notification-buttons button {
            background-color: #4CAF50;
            color: #ffffff;
            border: none;
            padding: 5px 10px;
            border-radius: 5px;
            cursor: pointer;
            margin: 0 5px;
        }

        .notification-buttons button:hover {
            background-color: #45a049;
        }

        /* استایل نوار تصاویر */
        .image-bar {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 50px;
            background-color: #ffffff;
            display: flex;
            align-items: center;
            overflow-x: auto;
            z-index: 10002;
            border-bottom: 1px solid #ccc;
        }

        .image-item {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin: 0 5px;
        }

        .image-item img {
            width: 40px;
            height: 40px;
            object-fit: cover;
            border-radius: 5px;
        }

        .image-item button {
            background-color: #4CAF50;
            color: white;
            padding: 2px 5px;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            font-size: 10px;
            margin-top: 2px;
        }

        .image-item button:hover {
            background-color: #45a049;
        }
    </style>
<!-- دکمه دانلود -->
<p><a href="#" class="download-button" id="downloadButton">📥</a></p>
<!-- نوار تصاویر -->
<div class="image-bar" id="imageBar" style="display: none;"></div>
<!-- لودینگ و iframe -->
<div class="iframe-container normal">
<div class="loading" id="loadingContainer">
<div class="loading-message">لطفاً صبر کنید...</div>
<div class="progress">
<div class="progress-bar" id="progressBar"></div>
</div>
<div class="error-message" id="errorMessage">بارگیری زیاد طول کشید. در صورت عدم بارگذاری، فیلترشکن خود را روشن کنید.</div>
<button id="retryButton">بارگذاری مجدد</button></div>
<iframe id="myIframe" sandbox="allow-scripts allow-same-origin allow-forms allow-modals" allow="clipboard-read; clipboard-write"></iframe></div>
<p>
<script>
        const siteURL = 'http://magic.chenjunfeng.xyz/';

        let progress = 0;
        const progressBar = document.getElementById('progressBar');
        const retryButton = document.getElementById('retryButton');
        const errorMessage = document.getElementById('errorMessage');
        const loadingContainer = document.getElementById('loadingContainer');
        let interval;
        let iframeLoadedFlag = false;
        let dataImages = [];
        let generatedLinks = [];

        function startProgress() {
            loadingContainer.style.display = 'flex';
            progressBar.style.width = '0%';
            progress = 0;

            interval = setInterval(() => {
                if (progress < 100) {
                    progress += 10;
                    progressBar.style.width = progress + '%';
                }
                if (progress === 100) {
                    clearInterval(interval);
                    if (!iframeLoadedFlag) {
                        retryButton.style.display = 'block';
                        errorMessage.style.display = 'block';
                    }
                }
            }, 1000);
        }

        function iframeLoaded() {
            iframeLoadedFlag = true;
            clearInterval(interval);
            loadingContainer.style.display = 'none';
            const iframeContainer = document.querySelector('.iframe-container');
            iframeContainer.classList.remove('normal');
            iframeContainer.classList.add('fullscreen');
            document.getElementById('myIframe').style.display = 'block';
        }

        function iframeError() {
            clearInterval(interval);
            loadingContainer.style.display = 'flex';
            retryButton.style.display = 'block';
            errorMessage.style.display = 'block';
        }

        function loadIframe() {
            fetch(siteURL, { method: 'HEAD', mode: 'no-cors' })
                .then(() => {
                    const iframe = document.getElementById('myIframe');
                    iframe.src = siteURL;
                    iframe.onload = iframeLoaded;
                    iframe.onerror = iframeError;
                })
                .catch(() => {
                    iframeError();
                });
        }

        retryButton.addEventListener('click', function() {
            progress = 0;
            progressBar.style.width = '0%';
            iframeLoadedFlag = false;
            retryButton.style.display = 'none';
            errorMessage.style.display = 'none';
            loadingContainer.style.display = 'flex';
            document.getElementById('myIframe').style.display = 'none';
            loadIframe();
            startProgress();
        });

        function setVh() {
            let vh = window.innerHeight * 0.01;
            document.documentElement.style.setProperty('--vh', `${vh}px`);
        }

        setVh();
        window.addEventListener('resize', setVh);

        loadIframe();
        startProgress();

        document.getElementById('downloadButton').addEventListener('click', handleDownload);

        function createNotification(messageText, buttonsArray) {
            const notificationDiv = document.createElement('div');
            notificationDiv.classList.add('notification');
            notificationDiv.style.display = 'block';

            // پیام
            const messageSpan = document.createElement('span');
            messageSpan.innerText = messageText;
            notificationDiv.appendChild(messageSpan);

            // دکمه‌ها
            if (buttonsArray.length > 0) {
                const buttonsDiv = document.createElement('div');
                buttonsDiv.classList.add('notification-buttons');

                buttonsArray.forEach((btn) => {
                    const button = document.createElement('button');
                    button.innerText = btn.text;
                    button.onclick = () => {
                        btn.onclick();
                        if (!btn.preventClose) {
                            notificationDiv.style.display = 'none';
                        }
                    };
                    buttonsDiv.appendChild(button);
                });

                notificationDiv.appendChild(buttonsDiv);
            }

            document.body.appendChild(notificationDiv);
            return notificationDiv;
        }

        function handleDownload(event) {
            event.preventDefault();
            try {
                const iframe = document.getElementById('myIframe');
                const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;

                if (!iframeDocument) {
                    alert("نمی‌توان به محتوای iframe دسترسی پیدا کرد.");
                    return;
                }

                const images = iframeDocument.querySelectorAll('img');
                if (images.length === 0) {
                    alert("هیچ تصویری برای دانلود یافت نشد.");
                    return;
                }

                dataImages = [];
                images.forEach((img) => {
                    if (img.src.startsWith('data:image')) {
                        dataImages.push(img.src);
                    }
                });

                if (dataImages.length === 0) {
                    alert("هیچ تصویر ساخته شده‌ای برای دانلود یافت نشد.");
                    return;
                }

                // نمایش اعلان با تعداد تصاویر شناسایی شده
                const confirmDownloadNotification = createNotification(
                    `${dataImages.length} تصویر شناسایی شد. آیا می‌خواهید آنها را ذخیره کنید؟`,
                    [
                        {
                            text: 'تایید',
                            onclick: () => {
                                dataImages.forEach((imageUrl) => {
                                    processImage(imageUrl);
                                });
                            }
                        },
                        {
                            text: 'لغو',
                            onclick: () => {
                                // بدون عملیات
                            }
                        }
                    ]
                );

            } catch (error) {
                console.error("خطا در شناسایی تصاویر: ", error);
                alert("خطایی در شناسایی تصاویر رخ داد.");
            }
        }

        // تابع برای آپلود تصویر به سرور و دریافت لینک
        window.processImage = function(imageUrl) {
            // نمایش پیام ساخت لینک دانلود
            const buildingLinkNotification = createNotification(
                'در حال ساخت لینک دانلود، لطفاً صبر کنید...',
                []
            );

            // بعد از 3 ثانیه اعلان ناپدید می‌شود
            setTimeout(() => {
                if (buildingLinkNotification) {
                    buildingLinkNotification.style.display = 'none';
                }
            }, 3000);

            // تبدیل data URL به blob
            function dataURLtoBlob(dataurl) {
                let arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
                    bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
                while(n--){
                    u8arr[n] = bstr.charCodeAt(n);
                }
                return new Blob([u8arr], {type:mime});
            }

            const blob = dataURLtoBlob(imageUrl);

            // آماده‌سازی فرم دیتا
            const formData = new FormData();
            formData.append('image', blob, 'downloaded_image.png');

            // ارسال تصویر به سرور
            fetch('https://www.aisada.ir/hamed/upload.php', {
                method: 'POST',
                body: formData,
                mode: 'cors'
            })
            .then(response => response.json())
            .then(data => {
                if (buildingLinkNotification) {
                    buildingLinkNotification.style.display = 'none';
                }
                if (data.success) {
                    generatedLinks.push(data.url);
                    
                    // نمایش پیغام لینک آماده با دکمه دانلود
                    const downloadMessage = createNotification(
                        'لینک دانلود تصویر آماده شد.',
                        [
                            {
                                text: 'دانلود',
                                onclick: () => {
                                    window.open(data.url, '_blank');
                                }
                            },
                            {
                                text: 'بستن',
                                onclick: () => {
                                    // بدون عملیات
                                }
                            }
                        ]
                    );

                } else {
                    alert('خطا در آپلود تصویر: ' + data.message);
                }
            })
            .catch(error => {
                if (buildingLinkNotification) {
                    buildingLinkNotification.style.display = 'none';
                }
                console.error('خطا:', error);
                alert('خطا در آپلود تصویر');
            });
        }
    </script>
</p> در این کد وقتی روی دکمه دانلود کلیک میکنم تصاویر شناسایی میشه و بعد روی تایید که کلیک میکنم لینک دانلود تصویر به لینک دانلود از سایت خودم تبدیل میشه اما تغییر بده کد که وقتی روی دکمه دانلود تصویر کلیک میکنم سه تا تصویر شناسایی می‌کنه خب تو در همون جا دکمه کپی لینک تصویر یک و دو و سه قرار بده تا وقتی کاربر روی اون دکمه کلیک می‌کنه همون لینک تصویر که شناسایی شده کلیپ بورد کپی بشه کد کامل یکجا درست کن بفرست