DotDB PLUS

Add links and icons to TLDs in DotDB search results

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         DotDB PLUS
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  Add links and icons to TLDs in DotDB search results
// @author       [email protected]
// @match        https://dotdb.com/search*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    function addLinksAndIconsToTLDs() {
        const tableBody = document.querySelector('#result-table tbody');
        if (!tableBody) {
            return;
        }

        const rows = tableBody.querySelectorAll('tr');

        rows.forEach(row => {
            const keywordCell = row.querySelectorAll('td')[0]; // Get keyword column (first td)
            if (!keywordCell) {
                return;
            }
            let sld = keywordCell.textContent.trim();

            const tldCell = row.querySelectorAll('td')[3];
            if (!tldCell) {
                return;
            }

            const tldDiv = tldCell.querySelector('.collapse-content .tw-w-\\[90\\%\\]');
            if (!tldDiv) {
                return;
            }

            let tldText = tldDiv.textContent.trim();
            if (!tldText) {
                return;
            }

            const tlds = tldText.split(',').map(tld => tld.trim());

            let newHTML = '';
            tlds.forEach(tld => {
                const domain = `${sld}${tld}`;
                const link = `https://${domain}`;
                const iconUrl = `https://www.google.com/s2/favicons?domain=${domain}`;

                const tldLinkHTML = `
                    <a href="${link}" target="_blank" rel="noopener noreferrer" style="display: inline-flex; align-items: center; margin-right: 5px;">
                        <img src="${iconUrl}" style="width: 16px; height: 16px; margin-right: 3px; vertical-align: middle;">
                        ${tld}
                    </a>`;
                newHTML += tldLinkHTML;
            });

            tldDiv.innerHTML = newHTML;
        });
    }

    window.addEventListener('load', addLinksAndIconsToTLDs);

})();