HAPUS TAWARAN

RELIST

// ==UserScript==
// @name         HAPUS TAWARAN
// @namespace    https://www.facebook.com/behesty7
// @version      1.2
// @description  RELIST
// @author       BEHESTY
// @match        https://www.facebook.com/marketplace/selling/relist_items/?is_routable_dialog=*
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';
    let running = true;

    const logBox = document.createElement('div');
    Object.assign(logBox.style, {
        position: 'fixed',
        bottom: '10px',
        right: '10px',
        background: 'rgba(0,0,0,0.8)',
        color: '#fff',
        padding: '10px',
        maxHeight: '300px',
        overflowY: 'auto',
        fontSize: '12px',
        zIndex: '9999',
        borderRadius: '8px',
        whiteSpace: 'pre-line',
    });
    logBox.innerText = '📢 Auto Relist FB Marketplace\n';
    document.body.appendChild(logBox);

    function log(message) {
        const logBox = document.getElementById('terminator-log');
        if (logBox) {
            const timestamp = new Date().toLocaleTimeString();
            logBox.value += `[${timestamp}] ${message}\n`;
            logBox.scrollTop = logBox.scrollHeight;
        }
    }

    function delay(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
    }

    async function countdown(seconds) {
  for (let i = seconds; i > 0; i--) {
    if (!running) {
      log('⏹ Dihentikan saat countdown.');
      return;
    }
    log(`⏳ Menunggu ${i} detik...`);
    await delay(1000);
  }
}

    async function waitForElement(selector, maxTries = 60, interval = 500) {
        for (let i = 0; i < maxTries; i++) {
            const el = document.querySelector(selector);
            if (el && el.offsetHeight > 0) return el;
            await delay(interval);
        }
        return null;
    }

    async function clickToBeRelistedIfAvailable() {
        log('🔎 Mencari tombol "Untuk dihapus & ditawarkan ulang"...');
        for (let i = 0; i < 60; i++) {
            const anchors = Array.from(document.querySelectorAll('a[role="link"]'))
                .filter(a => a.innerText.includes('Untuk dihapus & ditawarkan ulang') && a.offsetHeight > 0);
            const btn = anchors[0];
            if (btn) {
                const match = btn.innerText.match(/\d+/);
                const count = match ? parseInt(match[0]) : 0;
                if (count > 0) {
                    log(`📌 Klik "Untuk dihapus & ditawarkan ulang" (${count} listing)`);
                    btn.scrollIntoView({ behavior: 'smooth', block: 'center' });
                    btn.click();
                    return true;
                } else {
                    log('✅ Jumlah "Untuk dihapus & ditawarkan ulang" = 0. Menghentikan proses.');
                    return false;
                }
            }
            await delay(500);
        }

        log('⚠️ Tidak menemukan tombol "Untuk dihapus & ditawarkan ulang".');
        return false;
    }

    async function clickRelistAllButton() {
        log('🔎 Mencari tombol "Hapus & Tawarkan Ulang Semua Barang Lainnya"...');
        const selector = 'div[aria-label="Hapus & Tawarkan Ulang Semua Barang Lainnya"]';
        const btn = await waitForElement(selector);
        if (btn) {
            log('🔁 Klik tombol "Hapus & Tawarkan Ulang Semua Barang Lainnya"...');
            btn.scrollIntoView({ behavior: 'smooth', block: 'center' });
            btn.click();
            return true;
        } else {
            log('⚠️ Tombol "Hapus & Tawarkan Ulang Semua Barang Lainnya" tidak ditemukan.');
            return false;
        }
    }

    async function clickDoneButton() {
        log('🔎 Menunggu tombol "Selesai"...');
        const selector = 'div[aria-label="Selesai"]';
        const doneBtn = await waitForElement(selector);
        if (doneBtn) {
            log('✅ Klik tombol "Selesai"...');
            doneBtn.scrollIntoView({ behavior: 'smooth', block: 'center' });
            doneBtn.click();
            return true;
        } else {
            log('⚠️ Tombol "Selesai" tidak ditemukan.');
            return false;
        }
    }

    async function mainLoop() {
        while (true) {
            const hasRelist = await clickRelistAllButton();
            if (!hasRelist) break;

            await delay(5000);
            await clickDoneButton();

            log('🔄 Memuat ulang halaman untuk siklus berikutnya...');
            await countdown(5);
            window.location.href = 'https://www.facebook.com/marketplace/selling/relist_items/?is_routable_dialog=true&show_only_delete_and_relist=true';
            break; // agar reload bisa menjalankan siklus ulang
        }

        log('🏁 Proses selesai.');
    }

    setTimeout(mainLoop, 2000);
})();