您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
cate or overide
// ==UserScript== // @name fava // @namespace http://tampermonkey.net/ // @version 0.1 // @description cate or overide // @author You // @match http://localhost:5000/** // @icon https://www.google.com/s2/favicons?domain=undefined.localhost // @grant none // ==/UserScript== (function () { 'use strict'; setTimeout(main, 500); })(); (function () { handleRegx("n(s)a") })(); function main() { let es = document.querySelectorAll("body > article > div > fava-journal > ol > .transaction > p"); for (let ele of es) { // console.log(ele); ele.querySelector(".flag").append(createBtn(ele)); } } function createBtn(ele) { let btn = document.createElement("div"); btn.innerText = "[copy]"; btn.style = `font-size:.30rem;color: blue;`; btn.onclick = function () { let txt = generateOverideRule(ele); navigator.clipboard.writeText(txt).then(r => toast("拷贝成功:\n" + txt, 1000)); }; return btn; } function generateOverideRule(ele) { console.log(ele); let time = ele.querySelector(".datecell").innerText; let payee = ele.querySelector(".description > .payee").innerText; let desc = ele.querySelector(".description ").innerText.replace(payee, ""); let change = ele.querySelector(".change").innerText.replace(",", "").replace("CNY", ""); if (payee.indexOf("拼多多") !== -1) { let txt = time + ",商品标题," + change; return txt; } else { let txt = time + " .*" + handleRegx(desc) + ".*"; if (payee) { txt = txt + handleRegx(payee) + ".*"; } txt = txt + ": None toWhich"; // console.log(time); // console.log(desc); return txt; } } function handleRegx(text) { let rst = text.replace("(", "\\(").replace(")", "\\)").replace(/[\r\n]/g, ""); // console.log(rst); return rst; } function toast(msg, duration) { duration = isNaN(duration) ? 3000 : duration; let m = document.createElement('div'); m.innerHTML = msg; m.style.cssText = `font-size: .32rem; color: rgb(255, 255, 255); background-color: rgba(0, 0, 0, 0.6); padding: 10px 15px; margin: 0 0 0 -60px; border-radius: 4px; position: fixed; top: 50%; left: 50%; width: 300px; text-align: center;`; document.body.appendChild(m); setTimeout(function () { let d = 0.5; m.style.opacity = '0'; setTimeout(function () { document.body.removeChild(m) }, d * 1000); }, duration); }