Faviconize SearX

Add favicons

目前为 2023-11-28 提交的版本。查看 最新版本

// ==UserScript==
// @name Faviconize SearX
// @namespace -
// @version 1.1.1
// @description Add favicons
// @author NotYou
// @match *://search.ononoki.org/search*
// @match *://paulgo.io/search*
// @match *://swag.pw/search*
// @match *://searx.tiekoetter.com/search*
// @match *://northboot.xyz/search*
// @match *://searxng.zackptg5.com/search*
// @match *://s.zhaocloud.net/search*
// @match *://searx.namejeff.xyz/search*
// @match *://searx.ebnar.xyz/search*
// @match *://search.bus-hit.me/search*
// @match *://searx.prvcy.eu/search*
// @match *://searx.mha.fi/search*
// @match *://serx.cf/search*
// @match *://searx.be/search*
// @match *://search.mdosch.de/search*
// @match *://search.zzls.xyz/search*
// @match *://searx.gnous.eu/search*
// @match *://search.asynchronousexchange.com/search*
// @match *://www.webrats.xyz/search*
// @match *://searx.gnu.style/search*
// @match *://searx.tux.land/search*
// @match *://anon.sx/search*
// @match *://search.stinpriza.org/search*
// @match *://search.disroot.org/search*
// @match *://searx.bissisoft.com/search*
// @match *://searx.theanonymouse.xyz/search*
// @match *://www.gruble.de/search*
// @match *://searx.fmac.xyz/search*
// @match *://searx.rasp.fr/search*
// @match *://search.jpope.org/search*
// @match *://searx.divided-by-zero.eu/search*
// @match *://searx.webheberg.info/search*
// @match *://searx.stuehieyr.com/search*
// @match *://searx.xyz/search*
// @match *://searx.pwoss.org/search*
// @match *://searx.nevrlands.de/search*
// @match *://searx.ru/search*
// @match *://search.neet.works/search*
// @match *://searx.tuxcloud.net/search*
// @match *://searx.sp-codes.de/search*
// @match *://searx.roflcopter.fr/search*
// @match *://search.snopyta.org/search*
// @match *://searx.dresden.network/search*
// @match *://searx.mastodontech.de/search*
// @match *://searx.netzspielplatz.de/search*
// @match *://sx.catgirl.cloud/search*
// @match *://searx.solusar.de/search*
// @match *://suche.uferwerk.org/search*
// @match *://search.trom.tf/search*
// @match *://suche.tromdienste.de/search*
// @match *://searx.zecircle.xyz/search*
// @match *://searx.run/search*
// @match *://searx.sadblog.xyz/search*
// @match *://searx.nakhan.net/search*
// @match *://suche.dasnetzundich.de/search*
// @match *://searx.openhoofd.nl/search*
// @match *://searx.nixnet.services/search*
// @match *://searx.esmailelbob.xyz/search*
// @match *://searx.mxchange.org/search*
// @match *://search.antonkling.se/search*
// @match *://searx.josie.lol/search*
// @match *://jsearch.pw/search*
// @match *://engo.mint.lgbt/search*
// @match *://searx.kujonello.cf/search*
// @match *://search.ethibox.fr/search*
// @match *://searx.org/search*
// @match *://searx.sethforprivacy.com/search*
// @match *://searx.zapashcanon.fr/search*
// @match *://timdor.noip.me/searx/search*
// @match *://searx.xkek.net/search*
// @match *://dynabyte.ca/search*
// @match *://searx.tyil.nl/search*
// @match *://search.zdechov.net/search*
// @match *://salsa.debian.org/debian/searx*
// @match *://searx.roughs.ru/search*
// @match *://searx.ninja/search*
// @match *://trovu.komun.org/search*
// @match *://searx.everdot.org/search*
// @match *://searx.hardwired.link/search*
// @match *://searx.lavatech.top/search*
// @match *://darmarit.org/searx/search*
// @match *://spot.ecloud.global/search*
// @match *://nibblehole.com/search*
// @match *://searx.slash-dev.de/search*
// @match *://searx.jaska.cc/search*
// @run-at document-end
// @license GPL-3.0-or-later
// @grant none
// ==/UserScript==

addStyle(`
.favicon {
    padding: 0 3px 5px 2px !important;
    width: 20px !important;
    height: 20px !important;
}
`)

class Faviconize {
    static getFaviconURL(host) {
        return `https://icons.duckduckgo.com/ip3/${host}.ico`
    }

    static init() {
        document.querySelectorAll('.result > .url_wrapper, .result > .result_header').forEach(el => {
            const link = el.href || el.querySelector('a').href
            const host = new URL(link).host
            const icon = document.createElement('img')

            icon.className = 'favicon'
            icon.alt = host
            icon.src = Faviconize.getFaviconURL(host)

            el.prepend(icon)
        })
    }
}

Faviconize.init()

function addStyle(css) {
    const styleNode = document.createElement('style')

    document.head.appendChild((styleNode.textContent = css,styleNode))
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址