添加展柜、更新crime快速操作
This commit is contained in:
parent
70ca63d8b2
commit
582b044b16
@ -46,6 +46,7 @@
|
||||
'Spouse\'s Properties': '配偶的房产',
|
||||
'Items': '物品仓库',
|
||||
'Travel Agency': '旅行社',
|
||||
'Display Cabinet': '展示柜',
|
||||
};
|
||||
const titleLinksDict = {
|
||||
'Personal stats': '个人统计信息',
|
||||
@ -1181,6 +1182,12 @@
|
||||
'Real name': '真实姓名',
|
||||
'Country': '国家',
|
||||
'City': '城市',
|
||||
'Grocer': '杂货',
|
||||
'Education': '教育',
|
||||
'Casino': '赌场',
|
||||
'Medical': '医疗',
|
||||
'Army': '军队',
|
||||
'Law': '法律',
|
||||
'There is no active competition': '现在没有活动',
|
||||
"doesn't wish to share": '不希望公开',
|
||||
};
|
||||
@ -1386,6 +1393,7 @@
|
||||
'Caliber:': '口径:',
|
||||
'Ammo:': '弹药:',
|
||||
'Bonus:': '额外:',
|
||||
'Masked:': '面具:',
|
||||
};
|
||||
const itemNameDict = {
|
||||
"Ammunition Pack": '弹药包',
|
||||
@ -3313,13 +3321,13 @@
|
||||
* crime
|
||||
*/
|
||||
if (window.location.href.contains(/crimes\.php/)) {
|
||||
const $$ = $('.content-wrapper');
|
||||
const $$ = document.querySelector('.content-wrapper');
|
||||
const OB = new MutationObserver(() => {
|
||||
OB.disconnect();
|
||||
titleTrans();
|
||||
contentTitleLinksTrans();
|
||||
trans();
|
||||
OB.observe($$.get(0), {
|
||||
OB.observe($$, {
|
||||
characterData: true,
|
||||
attributes: true,
|
||||
subtree: true,
|
||||
@ -3327,28 +3335,33 @@
|
||||
});
|
||||
});
|
||||
const trans = () => {
|
||||
if ($('.wh-translate').length === 0 && $('div#tab-menu.captcha').length === 0) {
|
||||
$('div.content-title').before(
|
||||
`<div class="wh-translate"><div class="title-black" style="border-radius: 5px 5px 0 0;"><span>快捷操作:</span></div><div class="cont-gray" style="padding: 6px 0;border-radius: 0 0 5px 5px;">
|
||||
const dom = `<div class="wh-translate"><div class="title-black" style="border-radius: 5px 5px 0 0;"><span>快捷操作:</span></div><div class="cont-gray" style="padding: 6px 0;border-radius: 0 0 5px 5px;">
|
||||
<form id="wh-translate-quick" action="crimes.php?step=docrime4" method="post" style="display: inline-block;margin: 0 5px">
|
||||
<input name="nervetake" type="hidden" value="18">
|
||||
<input name="crime" type="hidden" value="hackbank">
|
||||
<input style="-webkit-appearance:none;padding: 4px;background: #e91e63;border-radius: 5px;color: white;" type="submit" value="18-1" style="padding: 0 2px" />
|
||||
<input style="-webkit-appearance:none;padding: 4px;background: #e91e63;border-radius: 5px;color: white;" type="submit" value="18-1" />
|
||||
</form>
|
||||
<form id="wh-translate-quick" action="crimes.php?step=docrime4" method="post" style="display: inline-block;margin: 0 5px">
|
||||
<input name="nervetake" type="hidden" value="11">
|
||||
<input name="crime" type="hidden" value="warehouse">
|
||||
<input style="-webkit-appearance:none;padding: 4px;background: #2196f3;border-radius: 5px;color: white;" type="submit" value="烧仓库" style="padding: 0 2px" />
|
||||
<input style="-webkit-appearance:none;padding: 4px;background: #2196f3;border-radius: 5px;color: white;" type="submit" value="烧仓库" />
|
||||
</form>
|
||||
<form id="wh-translate-quick" action="crimes.php?step=docrime4" method="post" style="display: inline-block;margin: 0 5px">
|
||||
<input name="nervetake" type="hidden" value="4">
|
||||
<input name="crime" type="hidden" value="jacket">
|
||||
<input style="-webkit-appearance:none;padding: 4px;background: #009688;border-radius: 5px;color: white;" type="submit" value="偷夹克" style="padding: 0 2px" />
|
||||
</form></div><hr class="page-head-delimiter m-top10 m-bottom10 r1854"></div>`);
|
||||
<input style="-webkit-appearance:none;padding: 4px;background: #009688;border-radius: 5px;color: white;" type="submit" value="偷夹克" />
|
||||
</form></div><hr class="page-head-delimiter m-top10 m-bottom10 r1854"></div>`
|
||||
const is_wh_translate = $$.querySelector('.wh-translate') !== null;
|
||||
const is_captcha = $$.querySelector('div#tab-menu.captcha') !== null;
|
||||
const $title = $('div.content-title');
|
||||
const $info = $('.info-msg-cont');
|
||||
if (!is_wh_translate && !is_captcha) {
|
||||
if ($title.length > 0) $title.before(dom);
|
||||
else if ($info.length > 0) $info.before(dom);
|
||||
}
|
||||
};
|
||||
trans();
|
||||
OB.observe($$.get(0), {
|
||||
OB.observe($$, {
|
||||
characterData: true,
|
||||
attributes: true,
|
||||
subtree: true,
|
||||
@ -3369,12 +3382,12 @@
|
||||
};
|
||||
const translated = {cat: '', count: -1};
|
||||
const translatedOnce = {item_opt: -1, opt_icon_count: -1};
|
||||
initOB($(`div#category-wrap`).get(0), options, () => {
|
||||
initOB(document.getElementById('category-wrap'), options, () => {
|
||||
// 手机操作选项
|
||||
const $item_opt = $(`ul.itemsList span.opt-name`);
|
||||
const $item_opt = document.querySelectorAll(`ul.itemsList span.opt-name`);
|
||||
if (translatedOnce.item_opt !== $item_opt.length - 1) {
|
||||
let count = -1;
|
||||
$item_opt.each((i, e) => {
|
||||
$item_opt.forEach((e, i) => {
|
||||
if (itemPageDict[e.firstChild.nodeValue.trim()]) {
|
||||
e.firstChild.nodeValue = itemPageDict[e.firstChild.nodeValue.trim()];
|
||||
}
|
||||
@ -3384,8 +3397,8 @@
|
||||
}
|
||||
// 物品名
|
||||
const expanded_dom = `ul.itemsList[aria-expanded="true"]`;
|
||||
const $active_item_list = $(`${expanded_dom} span.name`);
|
||||
const $active_tab = $(`${expanded_dom}`);
|
||||
const $active_item_list = $active_tab.find(`span.name`);
|
||||
const itemCat = $active_tab.attr('id');
|
||||
if ($active_item_list.length - 1 !== translated.count || itemCat !== translated.cat) {
|
||||
let count = -1;
|
||||
@ -3406,10 +3419,10 @@
|
||||
}
|
||||
}
|
||||
// 物品详情
|
||||
const $item_info = $(`${expanded_dom} li.show-item-info span.info-msg`);
|
||||
const $item_info = $active_tab.find(`li.show-item-info span.info-msg`);
|
||||
$item_info.each((i, e) => {
|
||||
// torntools 插件
|
||||
const isTTModified = $(e).hasClass('tt-modified');
|
||||
const isTTModified = e.classList.contains('tt-modified');
|
||||
if (isTTModified) {
|
||||
}
|
||||
const itemName = e.children[0].children[0]; //<span class="bold">大麻1</span>
|
||||
@ -3752,12 +3765,13 @@
|
||||
* profile 玩家资料页面
|
||||
*/
|
||||
if (window.location.href.contains(/profiles\.php\?XID=[0-9]+/)) {
|
||||
const $wrapper = document.querySelector('.content-wrapper');
|
||||
const profileOB = new MutationObserver(() => {
|
||||
profileOB.disconnect();
|
||||
titleTrans();
|
||||
contentTitleLinksTrans();
|
||||
profileTrans();
|
||||
profileOB.observe($('.content-wrapper').get(0), {
|
||||
profileOB.observe($wrapper, {
|
||||
characterData: true,
|
||||
attributes: true,
|
||||
subtree: true,
|
||||
@ -3769,7 +3783,7 @@
|
||||
? document.title.trim().split(/('s |s' )/)[0]
|
||||
: null;
|
||||
if (!playerName) {
|
||||
console.error('错误:获取用户名失败。');
|
||||
console.error('翻译助手错误:获取用户名失败。');
|
||||
try {
|
||||
profileOB.disconnect()
|
||||
} catch {
|
||||
@ -3961,7 +3975,7 @@
|
||||
sendCashTrans('.content-wrapper');
|
||||
};
|
||||
profileTrans();
|
||||
profileOB.observe($('.content-wrapper').get(0), {
|
||||
profileOB.observe($wrapper, {
|
||||
characterData: true,
|
||||
attributes: true,
|
||||
subtree: true,
|
||||
@ -4544,6 +4558,74 @@
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
展柜
|
||||
*/
|
||||
if (window.location.href.contains(/displaycase\.php/)) {
|
||||
const $page_wrapper = document.querySelector('#display-page-wrap');
|
||||
initOB($page_wrapper, {
|
||||
subtree: true,
|
||||
attributes: true,
|
||||
childList: true
|
||||
},
|
||||
() => {
|
||||
// 标题和右边的链接
|
||||
titleTrans();
|
||||
// 右上角返回按钮
|
||||
const $back_to_profile = $page_wrapper.querySelector('#back');
|
||||
if ($back_to_profile) {
|
||||
const spl = $back_to_profile.innerText.split(/('s |s' )/);
|
||||
if (spl.length === 3 && spl[2] === 'Profile') {
|
||||
$back_to_profile.innerText = `${spl[0]}的个人资料`;
|
||||
}
|
||||
}
|
||||
const $display_cabinet = $page_wrapper.querySelector('.display-cabinet');
|
||||
if ($display_cabinet) {
|
||||
// 物品名
|
||||
const $item_name = $display_cabinet.querySelectorAll('div.b-item-name span:nth-of-type(2)');
|
||||
$item_name.forEach((e) => {
|
||||
if (itemNameDict[e.innerText]) {
|
||||
e.innerText = itemNameDict[e.innerText];
|
||||
}
|
||||
});
|
||||
// 展开详细框
|
||||
const $show_item_info = $display_cabinet.querySelector('.show-item-info');
|
||||
if ($show_item_info) {
|
||||
// tt插件
|
||||
const is_tt_modified = !!$show_item_info.querySelector('.tt-modified');
|
||||
if (is_tt_modified) {
|
||||
console.warn(is_tt_modified)
|
||||
}
|
||||
// 物品名
|
||||
const $item_name = $show_item_info.querySelector('span.bold');
|
||||
// 去除物品名的the
|
||||
const the_removed = $item_name.innerText.trim().slice(4);
|
||||
// 物品的类别
|
||||
const $item_type = $item_name.nextSibling;
|
||||
// 绿字 物品效果
|
||||
const $item_effect = $show_item_info.querySelector('div.item-effect');
|
||||
// 下方的表格
|
||||
const $info_table_title = $show_item_info.querySelectorAll('div.title');
|
||||
if (itemNameDict[the_removed]) {
|
||||
$item_name.innerText = `${itemNameDict[the_removed]}(${the_removed})`;
|
||||
}
|
||||
if (itemTypeDict[$item_type.nodeValue.trim()]) {
|
||||
$item_type.nodeValue = itemTypeDict[$item_type.nodeValue.trim()];
|
||||
}
|
||||
if ($item_effect && itemEffectDict[$item_effect.innerText.trim()]) {
|
||||
$item_effect.innerText = itemEffectDict[$item_effect.innerText.trim()];
|
||||
}
|
||||
$info_table_title.forEach((e) => {
|
||||
if (itemPageDict[e.innerText.trim()]) {
|
||||
e.innerText = itemPageDict[e.innerText.trim()];
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* 升级页面
|
||||
*/
|
||||
@ -5581,9 +5663,10 @@
|
||||
* 页标题右侧按钮
|
||||
*/
|
||||
function contentTitleLinksTrans() {
|
||||
const $links = $('div.content-title span:nth-child(2)').length === 0
|
||||
const $links_default = $('div.content-title span:nth-child(2)');
|
||||
const $links = $links_default.length === 0
|
||||
? $('div[class^="topSection"] span[class*="Title"]')
|
||||
: $('div.content-title span:nth-child(2)');
|
||||
: $links_default;
|
||||
$links.each((i, e) => {
|
||||
if (titleLinksDict[$(e).text()]) {
|
||||
$(e).text(titleLinksDict[$(e).text()]);
|
||||
@ -5699,24 +5782,29 @@ ${htmlCont}</div></div></div></div><hr class="delimiter-999 m-top10 m-bottom10">
|
||||
ob
|
||||
*/
|
||||
function initOB(dom = document, opt = {}, func = () => {
|
||||
}, record = false) {
|
||||
if (record) {
|
||||
}, dev = false, once = false) {
|
||||
//let count = -1;
|
||||
if (dev) {
|
||||
const mo = new MutationObserver((mutation) => {
|
||||
//count++;
|
||||
console.log(mutation)
|
||||
mo.disconnect();
|
||||
func();
|
||||
mo.observe(dom, opt)
|
||||
if (!once) {
|
||||
mo.observe(dom, opt)
|
||||
}
|
||||
});
|
||||
func();
|
||||
mo.observe(dom, opt);
|
||||
} else {
|
||||
//count++;
|
||||
const mo = new MutationObserver(() => {
|
||||
mo.disconnect();
|
||||
func();
|
||||
mo.observe(dom, opt)
|
||||
if (!once) mo.observe(dom, opt)
|
||||
});
|
||||
func();
|
||||
mo.observe(dom, opt);
|
||||
mo.observe(dom, opt)
|
||||
}
|
||||
}
|
||||
}());
|
||||
|
||||
25
tpl.js
25
tpl.js
@ -1,23 +1,12 @@
|
||||
function template() {
|
||||
if (window.location.href.contains(/[]/)) {
|
||||
const $$ = $('.content-wrapper');
|
||||
const opt = {
|
||||
characterData: true,
|
||||
attributes: true,
|
||||
subtree: true,
|
||||
childList: true
|
||||
};
|
||||
const OB = new MutationObserver(() => {
|
||||
OB.disconnect();
|
||||
titleTrans();
|
||||
contentTitleLinksTrans();
|
||||
trans();
|
||||
OB.observe($$.get(0), opt);
|
||||
});
|
||||
const trans = () => {
|
||||
};
|
||||
trans();
|
||||
OB.observe($$.get(0), opt);
|
||||
// 标题和右边的链接
|
||||
const $cont_title = document.querySelector('.content-title');
|
||||
initOB($cont_title, {childList: true, subtree: true},
|
||||
() => {
|
||||
titleTrans();
|
||||
contentTitleLinksTrans();
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user