BBS Plus

Tools for BBS Network

Fra og med 27.03.2022. Se den nyeste version.

// ==UserScript==
// @name         BBS Plus
// @version      1.1.3
// @description  Tools for BBS Network
// @author       gviuygyiug78g98g9h
// @match        https://bbs.market/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=bbs.market
// @grant        none
// @require      https://cdnjs.cloudflare.com/ajax/libs/push.js/1.0.12/push.min.js
// @require      https://code.jquery.com/jquery-3.6.0.slim.min.js
// @license      MIT
// @namespace    https://greasyfork.org/users/893424
// ==/UserScript==

(function() {
    'use strict';
    let flag=false
    let link
    let ico = document.getElementsByTagName('link')
    let aList = document.getElementsByTagName('a')
    let logo
    let keyword
    setTimeout(() => {
        for (let index = 0; index < ico.length; index++) {
            const element = ico[index];
            console.log(element)
            if(element.rel=='shortcut icon'){
                link=element
                break
            }
        }
        window.setInterval(function(){
            buildSearchBar()
            let e = document.getElementsByClassName('css-1xjhfh5')
            if(e.length>0){
                if(!flag){
                    flag=true
                    Push.create("New Notification", {
                        body: "You got a new notification.",
                        icon: 'https://firebasestorage.googleapis.com/v0/b/deweb-519a7.appspot.com/o/bbs.market%2Flogo.png?alt=media',
                        timeout: 10000
                    });
                }
            }else{
                flag=false
            }
            link.href=flag?'https://s2.loli.net/2022/03/27/ICerNyjUa125mfM.png':'https://firebasestorage.googleapis.com/v0/b/deweb-519a7.appspot.com/o/bbs.market%2Ffavicon.png?alt=media'
        }, 2000);
        console.log(aList.length)
        setTimeout(()=>buildSearchBar(),5000);
    }, 3000);
    function buildSearchBar(){
        if($("#searchInput").length>0){
            return
        }
        for (let index = 0; index < aList.length; index++) {
            const element = aList[index];
            if(element.href=='https://bbs.market/?tab=myBbs'){
                element.id='logo'
                console.log(element)
                $("#logo").after("<div class=\"rounded-lg h-9 w-96 bg-gray-100 dark:bg-gray-800 leading-none flex p-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6 text-gray-300 mr-2 dark:text-gray-600\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"></path></svg><input id=\"searchInput\" class=\"bg-gray-100 dark:bg-gray-800\" placeholder=\"Search BBS\"></div>")
                $("#searchInput").on({input:function(e){
                    console.log(e)
                    keyword = e.currentTarget.value
                    console.log(keyword)
                },keydown:function(e){
                    if (e.key == 'Enter' && keyword) {
                        let url = changeURLArg('https://bbs-search.vercel.app', 'keyword', keyword)
                        window.location.href = url
                        console.log(window.location.href)
                    }
                }})
                break
            }
        }
    }
    function changeURLArg(url, arg, arg_val) {
        var pattern = arg + '=([^&]*)';
        var replaceText = arg + '=' + arg_val;
        if (url.match(pattern)) {
            var tmp = '/(' + arg + '=)([^&]*)/gi';
            tmp = url.replace(eval(tmp), replaceText);
            return tmp;
        } else {
            if (url.match('[\?]')) {
                return url + '&' + replaceText;
            } else {
                return url + '?' + replaceText;
            }
        }
    }
})();