IMDb you may know them from (Multi-Language)

Adds a collapsible section with your rated movies per actor, auto-detected in 7 languages

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         IMDb you may know them from (Multi-Language)
// @match        https://www.imdb.com/name/*
// @match        https://www.imdb.com/*/name/*
// @description  Adds a collapsible section with your rated movies per actor, auto-detected in 7 languages
// @grant        none
// @version      3.0.1
// @license      MIT
// @namespace    https://greasyfork.org/users/1218651
// ==/UserScript==

(function () {
    // 1. LANGUAGE CONFIGURATION
    const translations = {
        en: 'You may know them from (click to expand/collapse)',
        fr: 'Vous les connaissez peut-être grâce à (cliquer pour agrandir/réduire)',
        de: 'Vielleicht kennen Sie sie aus (klicken zum Aufklappen/Zuklappen)',
        hi: 'आप उन्हें इनसे जानते होंगे (विस्तार/संक्षिप्त करने के लिए क्लिक करें)',
        it: 'Forse li conosci da (clicca per espandere/collassare)',
        pt_BR: 'Talvez você os conheça de (clique para expandir/recolher)',
        pt_PT: 'Talvez os conheça de (clique para expandir/recolher)',
        es: 'Puede que los conozca de (haga clic para ampliar/contraer)'
    };

    const langMap = {
        // French
        'fr': 'fr', 'fr-fr': 'fr', 'fr-ca': 'fr',
        // German
        'de': 'de', 'de-de': 'de', 'de-at': 'de',
        // Hindi
        'hi': 'hi', 'hi-in': 'hi',
        // Italian
        'it': 'it', 'it-it': 'it',
        // Portuguese
        'pt': 'pt_BR', 'pt-br': 'pt_BR', 'pt-pt': 'pt_PT',
        // Spanish
        'es': 'es', 'es-es': 'es', 'es-mx': 'es', 'es-ar': 'es'
    };

    // 2. IMPROVED LANGUAGE DETECTION (unchanged)
    const detectLanguage = () => {
        const urlPath = window.location.pathname;
        const isNeutralUrl = !urlPath.match(/^\/[a-z]{2}(?:-[a-z]{2})?\//);

        if (isNeutralUrl) return 'en';

        const urlLang = (urlPath.match(/^\/([a-z]{2}(?:-[a-z]{2})?)\//i) || [])[1];
        if (urlLang) {
            if (['en', 'en-us', 'en-gb', 'en-ca'].includes(urlLang.toLowerCase())) {
                return 'en';
            }
            if (langMap[urlLang.toLowerCase()]) {
                return langMap[urlLang.toLowerCase()];
            }
        }

        const browserLang = (navigator.language || navigator.userLanguage || 'en').toLowerCase();
        if (['en', 'en-us', 'en-gb', 'en-ca'].some(code => browserLang.startsWith(code))) {
            return 'en';
        }
        for (const [imdbCode, langCode] of Object.entries(langMap)) {
            if (browserLang.startsWith(imdbCode)) {
                return langCode;
            }
        }

        return 'en';
    };

    // 3. MAIN SCRIPT WITH ADDITIONAL ELEMENT REMOVAL
    var actorId = window.location.href.match(/\/name\/(nm\d+)/)[1];
    var container = document.createElement('div');
    container.style.clear = 'both';

    const language = detectLanguage();
    var header = document.createElement('h3');
    header.textContent = translations[language] || translations.en;
    header.style.cursor = 'pointer';
    header.style.color = '#0E63BE';

    var iframe = document.createElement('iframe');
    iframe.src = 'https://www.imdb.com/filmosearch/?role=' + actorId + '&mode=simple&my_ratings=restrict';
    iframe.style.width = '100%';
    iframe.style.height = '500px';
    iframe.style.display = 'none';

    iframe.onload = function () {
        // Updated list of elements to remove (added your new request)
        var elementsToRemove = [
            '#imdbHeader',
            'ul.ipc-tabs.ipc-tabs--base.ipc-tabs--align-left.sc-6736dd52-2.gRVa-dQ.tabs',
            'div.sc-e3ac1175-5.eKfFfl',
            '.ipc-title.ipc-title--base.ipc-title--page-title.ipc-title--on-textPrimary',
            '.ipc-page-background.ipc-page-background--baseAlt.sc-8cf8f1-1.kdGFti',
            'footer.imdb-footer',
            'div.sc-7f8be4ff-0.ckODVo.recently-viewed.celwidget',
            '.ipc-page-section.ipc-page-section--none.recently-viewed-items' // New element to remove
        ];

        elementsToRemove.forEach(selector => {
            var elements = iframe.contentDocument.querySelectorAll(selector);
            elements.forEach(element => {
                if (element && element.parentNode) {
                    element.parentNode.removeChild(element);
                }
            });
        });

        // Modify links
        var links = iframe.contentDocument.querySelectorAll('a');
        links.forEach(link => link.setAttribute('target', '_top'));
    };

    container.appendChild(header);
    container.appendChild(iframe);
    var targetElement = document.querySelector('div.ipc-chip-list--base');

    if (targetElement) {
        targetElement.parentNode.insertBefore(container, targetElement);
        header.addEventListener('click', function () {
            iframe.style.display = iframe.style.display === 'none' ? 'block' : 'none';
        });
    } else {
        console.log('Target element not found on this page');
    }
})();