e621 Deleted Post Source Opener

If an e621 post has "status: deleted", this script opens the source URL in a new tab, prioritizing sources other than Inkbunny.

Устаревшая версия за 18.07.2025. Перейдите к последней версии.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name         e621 Deleted Post Source Opener
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  If an e621 post has "status: deleted", this script opens the source URL in a new tab, prioritizing sources other than Inkbunny.
// @author       Gemini
// @match        https://e621.net/posts/*
// @grant        GM_openInTab
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';

    // 1. Проверяем, удален ли пост.
    // Ищем элемент списка, содержащий "Status:", и проверяем, есть ли в нем слово "Deleted".
    const infoListItems = document.querySelectorAll('#post-information ul li');
    let isDeleted = false;

    infoListItems.forEach(li => {
        const text = li.innerText.trim();
        if (text.startsWith('Status:') && text.includes('Deleted')) {
            isDeleted = true;
        }
    });

    // Если пост не удален, ничего не делаем.
    if (!isDeleted) {
        console.log('e621 Deleted Opener: Пост не удален.');
        return;
    }

    console.log('e621 Deleted Opener: Пост удален. Ищем источник...');

    // 2. Находим все доступные ссылки на источники.
    const sourceLinkElements = document.querySelectorAll('li.source-links a');
    if (sourceLinkElements.length === 0) {
        console.log('e621 Deleted Opener: Ссылки на источники не найдены.');
        return;
    }

    const allSources = Array.from(sourceLinkElements).map(a => a.href);

    // 3. Отдаем приоритет источникам, не являющимся Inkbunny.
    let preferredSource = null;
    const nonInkbunnySources = allSources.filter(url => !url.includes('inkbunny.net'));

    if (nonInkbunnySources.length > 0) {
        // Найден хотя бы один источник, который не является Inkbunny.
        preferredSource = nonInkbunnySources[0];
        console.log(`e621 Deleted Opener: Выбран источник, не являющийся Inkbunny: ${preferredSource}`);
    } else if (allSources.length > 0) {
        // Других источников нет, поэтому используем первую доступную ссылку.
        preferredSource = allSources[0];
        console.log(`e621 Deleted Opener: Найден только источник Inkbunny (или другой). Используем: ${preferredSource}`);
    }

    // 4. Открываем выбранный источник в новой вкладке.
    if (preferredSource) {
        // Небольшая задержка, чтобы избежать проблем с блокировщиками всплывающих окон.
        setTimeout(() => {
            console.log(`e621 Deleted Opener: Открываем ${preferredSource} в новой вкладке.`);
            GM_openInTab(preferredSource, { active: true });
        }, 500);
    } else {
        console.log('e621 Deleted Opener: Не удалось определить источник для открытия.');
    }
})();