增加最新版本图片与更新历史

This commit is contained in:
woohoo 2022-01-05 18:15:38 +08:00
parent 048cac1ef2
commit 180126000a
2 changed files with 106 additions and 29 deletions

View File

@ -5,16 +5,16 @@
<meta content="width=device-width, initial-scale=1 user-scalable=0" name="viewport"/> <meta content="width=device-width, initial-scale=1 user-scalable=0" name="viewport"/>
<script type="text/javascript"> <script type="text/javascript">
window.onload = () => { window.onload = () => {
const giteeRaw = 'https://gitee.com/wanyi007/torncity-zhcn-translate/raw/dev/torn-trans-zhcn.user.js'; const url = 'https://jjins.github.io/fyfuzhi/torn-trans-zhcn.user.js';
const jsdelivr = 'https://cdn.jsdelivr.net/gh/JJins/torncity-zhcn-translate/torn-trans-zhcn.user.js';
const $textarea = document.querySelector('textarea'); const $textarea = document.querySelector('textarea');
const $text = document.getElementById('text'); const $text = document.getElementById('text');
const $btn = document.querySelector('button'); const $btn = document.querySelector('button');
const $refresh = document.getElementById('refresh'); const $refresh = document.getElementById('refresh');
fetch(jsdelivr, { fetch(url, {cache: 'no-cache'})
cache: 'no-cache' .catch(e => console.error(e))
}).catch(e => console.error(e)).then(data => data.text()).then(text => { .then(data => data.text())
.then(text => {
$textarea.value = text; $textarea.value = text;
const iStart = 37; const iStart = 37;
const dtimeStr = text.slice(iStart, iStart + 12); const dtimeStr = text.slice(iStart, iStart + 12);
@ -26,13 +26,13 @@
m: dtimeStr.slice(10) m: dtimeStr.slice(10)
}; };
$text.innerText = `加载完成,更新时间${last.year}年${last.month}月${last.day}日${last.h}:${last.m}`; $text.innerText = `加载完成,更新时间${last.year}年${last.month}月${last.day}日${last.h}:${last.m}`;
$btn.removeAttribute("disabled"); $btn.disabled = false;
}); });
$btn.onclick = () => { $btn.onclick = () => {
$textarea.select(); $textarea.select();
document.execCommand('Copy'); document.execCommand('Copy');
$text.innerText = "已复制,可粘贴"; $text.innerText = "已复制";
$textarea.blur(); $textarea.blur();
}; };
@ -89,8 +89,8 @@
<body> <body>
<p id="text">请稍后,正在加载...</p> <p id="text">请稍后,正在加载...</p>
<textarea></textarea> <textarea></textarea>
<button disabled="">点击复制</button> <button disabled>点击复制</button>
<a>备用链接</a> <!--<a>备用链接</a>-->
<a id="refresh">刷新页面</a> <a id="refresh">刷新页面</a>
</body> </body>
</html> </html>

View File

@ -1,8 +1,8 @@
// ==UserScript== // ==UserScript==
// @lastmodified 202201050051 // @lastmodified 202201051815
// @name Torn翻译 // @name Torn翻译
// @namespace WOOH // @namespace WOOH
// @version 0.2.0104a // @version 0.2.0105b
// @description Torn UI翻译 // @description Torn UI翻译
// @author Woohoo-[2687093] sabrina_devil[2696209] // @author Woohoo-[2687093] sabrina_devil[2696209]
// @match https://www.torn.com/* // @match https://www.torn.com/*
@ -21,6 +21,11 @@
todo: true, todo: true,
cont: `baza npc商店 imarket及imarket搜索结果`, cont: `baza npc商店 imarket及imarket搜索结果`,
}, },
{
ver: '0.2.0105b',
date: '20220105',
cont: `增加最新版本图片与更新历史`,
},
{ {
ver: '0.2.0105a', ver: '0.2.0105a',
date: '20220105', date: '20220105',
@ -2887,6 +2892,7 @@
// transDict.calDict = calDict; // transDict.calDict = calDict;
// if (!localStorage.getItem('wh_trans_transDict')) localStorage.setItem('wh_trans_transDict', JSON.stringify(transDict)) // if (!localStorage.getItem('wh_trans_transDict')) localStorage.setItem('wh_trans_transDict', JSON.stringify(transDict))
const version = '0.2.0104a';
let device; let device;
if (window.innerWidth > 1000) device = 'pc'; if (window.innerWidth > 1000) device = 'pc';
else if (window.innerWidth <= 600) device = 'mobile'; else if (window.innerWidth <= 600) device = 'mobile';
@ -3043,6 +3049,22 @@
domText: ' 开发者模式', domText: ' 开发者模式',
dictName: 'isDev', dictName: 'isDev',
}, },
{
domType: 'button',
domId: 'wh-changeList',
domText: '更新历史',
clickFunc: () => {
let insert = '';
changelist.forEach(e => {
if (!e.todo) {
insert += `版本: ${e.ver}<br/>
时间: ${e.date.slice(0, 4)}年${e.date.slice(4, 6)}月${e.date.slice(6)}<br/>
更新: ${e.cont}<br/><br/>`;
}
});
popupMsg(insert, '更新历史')
},
},
]; ];
// 左侧标签 // 左侧标签
const zhongIconIntervalID = window.setInterval(() => { const zhongIconIntervalID = window.setInterval(() => {
@ -3067,7 +3089,7 @@
addStyle(`#wh-trans-icon{ addStyle(`#wh-trans-icon{
display: inline-block; display: inline-block;
position: fixed; position: fixed;
top: calc(50% - 133px); top: calc(50% - 157px);
left: 0; left: 0;
z-index: 20000; z-index: 20000;
border: solid 1px #b5b5b5; border: solid 1px #b5b5b5;
@ -3096,6 +3118,47 @@ padding:16px !important;
} }
#wh-trans-icon .wh-container{display:none;} #wh-trans-icon .wh-container{display:none;}
#wh-trans-icon.wh-icon-expanded .wh-container{display:block;} #wh-trans-icon.wh-icon-expanded .wh-container{display:block;}
#wh-latest-version{
display:inline-block;
background-image:url("https://jjins.github.io/t2i/version.png");
height:17px;
width: 66px;}
#wh-popup{
position: fixed;
z-index: 9900034;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #808080ba;
}
#wh-popup-container{
max-width: 600px;
margin: 5em auto 0;
background: grey;
min-height: 200px;
box-shadow: 0 0 13px #b4b4b4
}
#wh-popup-title p{
background: black;
color: white;
padding: 1em;
font-size: 16px;
}
#wh-popup-close{
float: right;
margin: 8px;
padding: 5px 8px;
border: solid 2px white;
color: white;
border-radius: 3px;
}
#wh-popup-cont{
padding: 1em;
color: white;
max-height: 30em;
overflow-y: auto;
}
`); `);
/** /**
@ -3584,11 +3647,10 @@ padding:16px !important;
*/ */
if (window.location.href.contains(/loader\.php\?sid=attack/)) { if (window.location.href.contains(/loader\.php\?sid=attack/)) {
if (wh_trans_settings.quickAttIndex !== 6) { if (wh_trans_settings.quickAttIndex !== 6) {
// const selectedId = ['weapon_main', 'weapon_second', 'weapon_melee', 'weapon_temp', 'weapon_fists', 'weapon_boots'] const selectedId = ['weapon_main', 'weapon_second', 'weapon_melee', 'weapon_temp', 'weapon_fists', 'weapon_boots']
// [wh_trans_settings.quickAttIndex]; [wh_trans_settings.quickAttIndex];
elementReady('div[class^="modal___"] button').then(btn => { elementReady('div[class^="modal___"] button').then(btn => {
if (!btn.innerText.toLowerCase().includes('start fight')) return; if (!btn.innerText.toLowerCase().includes('start fight')) return;
if (isDev()) console.log('[WH]', btn);
// 判断是否存在脚踢 // 判断是否存在脚踢
const hasKick = !!document.querySelector('#weapon_boots'); const hasKick = !!document.querySelector('#weapon_boots');
// modal层 // modal层
@ -3737,7 +3799,7 @@ padding:16px !important;
switch (device) { switch (device) {
case 'pc': { case 'pc': {
elementReady('#defender div[class^="modal___"]').then(elem => { elementReady('#defender div[class^="modal___"]').then(elem => {
if (!elem.innerHTML.includes('<button')) { if (!elem.querySelector('button')) {
window.location.reload(); window.location.reload();
} }
}); });
@ -3745,7 +3807,7 @@ padding:16px !important;
} }
case 'mobile': { case 'mobile': {
elementReady('#attacker div[class^="modal___"]').then(elem => { elementReady('#attacker div[class^="modal___"]').then(elem => {
if (!elem.innerHTML.includes('<button')) { if (!elem.querySelector('button')) {
window.location.reload(); window.location.reload();
} }
}); });
@ -7227,6 +7289,8 @@ margin: 0 0 3px;
<div class="wh-main"> <div class="wh-main">
<div><b>芜湖的翻译助手</b></div> <div><b>芜湖的翻译助手</b></div>
<div id="wh-gSettings"></div> <div id="wh-gSettings"></div>
<div><p>当前版本: ${version}</p></div>
<div><p>最新版本: <span id="wh-latest-version"></span></p></div>
</div> </div>
</div>`; </div>`;
const settingNode = zhongNode.querySelector('#wh-gSettings'); const settingNode = zhongNode.querySelector('#wh-gSettings');
@ -7283,6 +7347,19 @@ margin: 0 0 3px;
return wh_trans_settings.isDev; return wh_trans_settings.isDev;
} }
// 弹出窗口
function popupMsg(innerHTML, title = '芜湖的翻译助手') {
const popup = document.createElement('div');
popup.id = 'wh-popup';
popup.innerHTML =
`<div id="wh-popup-container">
<div id="wh-popup-title"><button id="wh-popup-close">x</button><p>${title}</p></div>
<div id="wh-popup-cont">${innerHTML}</div>
</div>`;
document.body.append(popup);
popup.querySelector('#wh-popup-close').onclick = () => popup.remove();
}
/** /**
* Waits for an element satisfying selector to exist, then resolves promise with the element. * Waits for an element satisfying selector to exist, then resolves promise with the element.
* Useful for resolving race conditions. * Useful for resolving race conditions.