您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A Translation Script for Misskey Note | 一个用于misskey贴文的翻译脚本
当前为
// ==UserScript== // @name Misskey Translation Script // @namespace http://tampermonkey.net/ // @version 0.1 // @description A Translation Script for Misskey Note | 一个用于misskey贴文的翻译脚本 // @author dogcraft // @match https://m.dogcraft.cn/* // @grant none // ==/UserScript== var ApiUrl = 'https://test1-api.dogcraft.top/ts/'; (function() { 'use strict'; console.log('Misskey Translate Script'); var cat = localStorage.getItem('lang'); if (cat==null) { var lang_dog = navigator.language || navigator.userLanguage; } else { lang_dog=cat; } lang_dog = navigator.language || navigator.userLanguage;//获取浏览器的语言 lang_dog = lang_dog.substr(0, 2); function dog_add_fy(eldog) { //添加翻译按钮、区域以及绑定点击事件 if (eldog.fanyi == 1) { console.log('已经添加过了,重复添加。') } else { var cl = document.createElement('div'); cl.className = '.clear'; var cl2 = document.createElement('div'); cl2.className = '.clear'; var dogfy = document.createElement('span'); dogfy.className = 'fanyi'; dogfy.ct = 0; var dogbt = document.createElement('button'); dogbt.innerText = 'Translate'; dogbt.className = 'button _button'; dogbt.style.backgroundColor="rgba(0,0,200,0.5)"; dogbt.addEventListener('click', dog_fy);//绑定翻译函数 eldog.appendChild(cl); eldog.appendChild(dogfy); eldog.appendChild(cl2); eldog.appendChild(dogbt); eldog.fanyi = 1; } } async function dog_fy() { //从后端获得翻译文本并写入到html中 var pdog = this.parentElement; var ldog = pdog.getElementsByClassName('fanyi'); if (ldog.length > 0) { var dog_fy_el = ldog[0]; if (dog_fy_el.ct == 0) { var hdog = pdog.getElementsByClassName('havbbuyv')[0].innerText; var post_dog = { 'c': hdog, 't': lang_dog }; dog_fy_el.innerText='Translating……'; var uiy = await fetch(ApiUrl, { method: 'POST', body: JSON.stringify(post_dog), headers: new Headers({ 'Content-Type': 'application/json' }) }); if (uiy.status == 200) { var rt = await uiy.json(); var res_dog = rt.r; } else { res_dog = '接口不对劲'; } dog_fy_el.innerText = `\n${res_dog}`; dog_fy_el.ct = 1 this.innerText='folded'; } else { if (dog_fy_el.ct == 2) { console.log(dog_fy_el.style.display) dog_fy_el.style.display=""; dog_fy_el.ct = 1; this.innerText='folded'; } else if (dog_fy_el.ct == 1) { dog_fy_el.style.display="none"; dog_fy_el.ct = 2; this.innerText='unfolded'; } } } else { console.log('有地方不对劲'); } } var config = { attributes: false, childList: true, subtree: true }; var sj = [] // 当观察到突变时执行的回调函数 var callback = function (mutationsList) { //console.log('doge'); mutationsList.forEach(function (item, index) { if (item.type == 'childList') { for (let iy_dog = 0; iy_dog < item.addedNodes.length; iy_dog++) { const iadog = item.addedNodes[iy_dog]; if (iadog.getElementsByClassName == undefined) { } else { var sld = iadog.getElementsByClassName('content'); if (sld.length > 0) { var tty = sld[0].getElementsByClassName('text'); if (tty.length > 0) { dog_add_fy(tty[0]); } } } } } }); }; window.onload = function () { console.log('页面加载完毕') var observer = new MutationObserver(callback); var sl = document.getElementsByClassName('article'); var ar = document.getElementsByClassName("content")[0]; observer.observe(ar, config); for (let si = 0; si < sl.length; si++) { const sl_dog = sl[si]; dog_add_fy(sl_dog.getElementsByClassName('content')[0].getElementsByClassName('text')[0]); } } })();