Greasy Fork

Namu Hot Now

이게 왜 실검?

目前为 2024-02-02 提交的版本。查看 最新版本

// ==UserScript==
// @name         Namu Hot Now
// @name:ko      나무위키 실검 알려주는 스크립트
// @namespace    https://arca.live/b/namuhotnow
// @version      0.1.2
// @description  이게 왜 실검?
// @author       KEMOMIMI
// @match        https://namu.wiki/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=namu.wiki
// @grant        GM_xmlhttpRequest
// ==/UserScript==

function findLinkByPartialMatch(pairs, searchString) {
    for (var i = 0; i < pairs.length; i++) {
        if (pairs[i].text.toLowerCase() === searchString.toLowerCase()) {
            return pairs[i].link;
        }
    }
    return null;
}

const targetURL = 'https://arca.live/b/namuhotnow';

GM_xmlhttpRequest({
    method: 'GET',
    url: targetURL,
    onload: function(response) {
        const htmlData = response.responseText;
        const parser = new DOMParser();
        const doc = parser.parseFromString(htmlData, 'text/html');
        var elements = doc.querySelectorAll('.article-list .list-table a:not(.notice)');
        var pairs = [];

        elements.forEach(function(element) {
            var link = element.getAttribute('href');
            var titleElement = element.querySelector('.title');
            var text = titleElement ? titleElement.innerText.trim() : '';
            pairs.push({text: text, link: link});
        });

        var spans = document.querySelectorAll('#app aside span');
        spans.forEach(function (span) {
            if (span.textContent.includes('실시간 검색어')) {
                var parentDiv = span.parentElement.parentElement;
                var realtimeList = parentDiv.querySelectorAll('li');
                realtimeList.forEach(function(element) {

                    var titleElement = element.querySelector('span');
                    var resultLink = findLinkByPartialMatch(pairs, titleElement.innerText.trim());

                    if (resultLink != null){
                        var linkElement = document.createElement('a');
                        linkElement.href = 'https://arca.live' + resultLink;
                        linkElement.textContent = '이왜실?';
                        linkElement.display = 'flex'
                        linkElement.width = '40%'
                        linkElement.target="_blank"
                        element.querySelector('a').style.width = "60%";
                        element.appendChild(linkElement);}
                });
            }
        });
    }
});