zhengqunkoo / wiktionaryForwarder

// ==UserScript==
// @name         wiktionaryForwarder
// @version      1.0
// @author       zhengqunkoo
// @description  Click on first link under a specific section. Avoids cyclic forwarding by keeping a history of visited locations, which expires after two seconds.
// @match        https://*.wiktionary.org/wiki/*
// @grant        GM_getValue
// @grant        GM_setValue
// @updateURL    https://openuserjs.org/meta/zhengqunkoo/wiktionaryForwarder.meta.js
// @license      MIT
// ==/UserScript==

(async (style) => {
    const gm_history = 'wiktionaryForwarderHistory'
    const gm_timestamp = 'wiktionaryForwarderTimestamp'
    if (Date.now() - await GM_getValue(gm_timestamp, Date.now()) >= 2000) { GM_setValue(gm_history, JSON.stringify(Array())) }
    var h = JSON.parse(await GM_getValue(gm_history, JSON.stringify(Array())))
    console.log(h)
    if (h.includes(window.location.href)) { return }
    h.push(window.location.href)
    await GM_setValue(gm_history, JSON.stringify(h))
    await GM_setValue(gm_timestamp, Date.now())
    const ts = document.getElementsByTagName('table')
    for (var i=0; i<ts.length; i++) {
        const t = ts[i]
        //console.log(t.style.backgroundColor)
        if (t.style.backgroundColor === style) {
            const as = t.getElementsByTagName('a')
            //console.log(as)
            if (as.length === 0) { return }
            window.location.href = as[0].href
            return
        }
    }
    console.log("done")
})('rgb(245, 255, 250)')