Greasy Fork is available in English.

Habitica Web增强

增强 Habitica 网页端

// ==UserScript==
// @name        Habitica Web增强
// @namespace    https://borber.cn
// @version      0.0.9
// @description  增强 Habitica 网页端
// @author       Borber
// @match        https://habitica.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    // 自定义 关键词  将 html语句 放在 key /key 之间即可
    var key = 'borber';
    // 关闭团队 默认开启
    var hideGroub = true;
    // 关闭底部信息 默认开启
    var hideFooter = true;
    // 关闭玩家按钮内的 宝石推荐信息 默认开启
    var hideLearn = true;
    // 更小的 点击范围 markdown的解析 div 将不作为更新事件的响应范围 默认开启
    var lessClick = true;
    // 替换 主页玩家背景 默认关闭
    // midnight_castle 午夜城堡
    // clocktower 复古钟楼
    // steamworks 蒸汽时代
    // airship 横空飞艇
    // giant_dandelions 巨型蒲公英
    // ocean_sunrise 海上日出
    // rowboat 荡漾海上
    // aurora 绚丽极光
    var username = 'Borber';  // 填写用户名
    var background1 = 'midnight_castle';  // 填写背景代号
    var background2 = background1;

    const pattern = new RegExp('<p>' + key + '<\/p>.*<p>\/' + key + '<\/p>');
    var decode = false;
    setInterval(function () {
        // 关闭团队
        if(hideGroub && document.getElementsByClassName("topbar-item droppable")[3]){document.getElementsByClassName("topbar-item droppable")[3].innerHTML = ''; hideGroub = false;}
        // 关闭底部信息
        if(hideFooter && document.getElementsByClassName("row footer-row")[0]){document.getElementsByClassName("row footer-row")[0].innerHTML = ''; hideFooter = false;}
        // 关闭玩家按钮内的 宝石推荐信息
        if(hideLearn && document.querySelector("#menu_collapse > div.form-inline.desktop-only > div.habitica-menu-dropdown.dropdown.item-user.item-with-icon.open > div.dropdown-menu.dropdown-menu-right > div > li")){document.querySelector("#menu_collapse > div.form-inline.desktop-only > div.habitica-menu-dropdown.dropdown.item-user.item-with-icon.open > div.dropdown-menu.dropdown-menu-right > div > li").innerHTML = ''; hideLearn = false;}
        // 更小的 点击范围
        if(lessClick && document.getElementsByClassName("task-clickable-area task-clickable-area-user").length > 1) {
            document.getElementsByClassName("task-clickable-area task-clickable-area-user").forEach( i => {i.className = '';});
            document.getElementsByClassName("d-flex justify-content-between").forEach( i => {i.className += ' task-clickable-area task-clickable-area-user';});
            lessClick = false;
        };
        // 替换 主页玩家背景
        if(background1 != '' && document.querySelector("#app-header > div.member-details.d-flex > div:nth-child(1) > div")){document.querySelector("#app-header > div.member-details.d-flex > div:nth-child(1) > div").className = 'avatar background_'+background1; background1 = '';}
        var only = document.querySelector("#profile___BV_modal_body_ > div > div.header > div.row > div > div > div.member-stats.col-8 > div.d-flex.align-items-center.profile-first-row > div > h3 > span");
        if(only && only.innerHTML == username && document.querySelector("#profile___BV_modal_body_ > div > div.header > div.row > div > div > div.col-4 > div")){document.querySelector("#profile___BV_modal_body_ > div > div.header > div.row > div > div > div.col-4 > div").className = 'avatar background_'+background2;}
        // 实现 markdown  内嵌 html
        if(window.location.href == 'https://habitica.com/' && document.getElementsByClassName("task-notes small-text markdown").length > 1 && decode == false){
            document.getElementsByClassName("task-notes small-text markdown").forEach(i => {
            if(pattern.exec(i.innerHTML.replace(/\n/g,''))){
                var temp = document.createElement("div"); var replaceStr1 = '<p>'+ key + '<\/p>'; var replaceStr2 = '<p>\/' + key + '<\/p>';decode = true;
                temp.innerHTML = pattern.exec(i.innerHTML.replace(/\n/g,''))[0].replace(new RegExp(replaceStr1,'gm'),'').replace(new RegExp(replaceStr2,'gm'),'');
                i.innerHTML = i.innerHTML.replace(/\n/g,'').replace(pattern.exec(i.innerHTML.replace(/\n/g,'')),temp.innerText || temp.textContent);
            }});}else{decode = false;}},100);
})();