diff --git a/zhcn_translate.js b/zhcn_translate.js
index 8ec3d29..05a6012 100644
--- a/zhcn_translate.js
+++ b/zhcn_translate.js
@@ -84,7 +84,7 @@
$('p[class^="point-block"]').each((i, e) => {
e.firstChild.firstChild.nodeValue = sidebarDict[e.firstChild.firstChild.nodeValue];
});
- // 4条
+ // 4条 状态条
$('p[class^="bar-name"]').each((i, e) => {
e.firstChild.nodeValue = sidebarDict[e.firstChild.nodeValue];
});
@@ -93,8 +93,10 @@
e.firstChild.nodeValue = sidebarDict[e.firstChild.nodeValue];
});
// [use]按钮
- $('#pointsMerits')[0].firstChild.nodeValue = '[使用]';
- $('#pointsPoints')[0].firstChild.nodeValue = '[使用]';
+ if ($('#pointsMerits').length !== 0)
+ $('#pointsMerits')[0].firstChild.nodeValue = '[使用]';
+ if ($('#pointsPoints').length !== 0)
+ $('#pointsPoints')[0].firstChild.nodeValue = '[使用]';
clearInterval(sidebarInterval);
}, 1000);
@@ -150,62 +152,165 @@
* 通知
*/
if (window.location.href.indexOf('events.php') >= 0) {
- let events = $('span.mail-link');
+ let events;// = $('span.mail-link');
+ const eventMutation = new MutationObserver(() => {
+ events = $('span.mail-link');
+ eventsTrans();
+ });
//初始化中内容未加载
let eventInterval = setInterval(() => {
- console.log('循环判断内容是否已加载')
+ events = $('span.mail-link');
if (events.length === 0) {
- events = $('span.mail-link');
return;
}
clearInterval(eventInterval);
+ eventMutation.observe($('div#events-main-wrapper')[0], {childList: true, subtree: true});
eventsTrans();
}, 1000);
function eventsTrans() {
+ if (events.length === 0) return;
events.each((i, e) => {
- if ($(e).text().indexOf('finished') >= 0) { // 赛车
- const isBestLap = $(e).text().indexOf('best lap') >= 0;
+ /**
+ * 赛车
+ * You finished 5th in the Hammerhead race. Your best lap was 01:14.87.
+ * You finished 1st in the Docks race. Your best lap was 04:01.33.
+ * You finished 1st in the Hammerhead race and have received 3 racing points! Your best lap was 01:06.92.
+ * You finished 4th in the Docks race. Your best lap was 03:29.27 beating your previous best lap record of 03:35.77 by 00:06.50.
+ * You have crashed your Honda NSX on the Sewage race! The upgrades Paddle Shift Gearbox (Short Ratio) and Carbon Fiber Roof were lost.
+ * You have crashed your Ford Mustang on the Docks race! Your car has been recovered.
+ */
+ if ($(e).text().indexOf('finished') >= 0) {
- const isGainRacingPoint = $(e).text().indexOf('racing point') >= 0;
+ if ($(e).text().indexOf('crashed') >= 0) return; // todo 撞车
- const pos = e.childNodes[1].firstChild.nodeValue
- .split('')[0].match(/[0-9]+/)[0];
+ const isGainRacingPoint = $(e).text().indexOf('racing point');
+ let racingPoint = isGainRacingPoint >= 0 ? $(e).text()[isGainRacingPoint - 2] : null;
+
+ const isBeat = $(e).text().indexOf('beating') >= 0;
+ let record, bestBy;
+ if (isBeat) {
+ record = $(e).text().split('record of ')[1].split(' by ')[0];
+ bestBy = $(e).text().split('record of ')[1].split(' by ')[1].split('. ')[0];
+ }
+
+ const pos = e.childNodes[1].firstChild.nodeValue.match(/[0-9]+/)[0];
const splitList = e.childNodes[2].nodeValue.split(' ');
+ const bestLap = e.childNodes[2].nodeValue.split(' best lap was ')[1].split(' ')[0];
let map = splitList[3];
map = map === 'Two' ? 'Two Islands' : map;
map = map === 'Stone' ? 'Stone Park' : map;
- e.firstChild.nodeValue = '你在 ' + map + ' 赛车比赛中获得了第 '//+pos+'名。';
- e.childNodes[1].nodeValue = pos;
- e.childNodes[2].nodeValue = '名。';
- if (isGainRacingPoint) {
- const racingPoint = splitList[-9];
+
+ e.firstChild.nodeValue = '你在赛车比赛 ' + map + ' 中获得了第 ';
+ e.childNodes[1].firstChild.nodeValue = pos;
+ e.childNodes[2].nodeValue = ' 名。';
+ if (isGainRacingPoint >= 0) {
e.childNodes[2].nodeValue += '你获得了' + racingPoint + '赛车点数。';
}
- if (isBestLap) {
- const bestLap = splitList[-2];
- e.childNodes[2].nodeValue += '你的最好成绩是' + bestLap + '。';
- }
+
+ e.childNodes[2].nodeValue += '你的最佳成绩是 ' + bestLap;
+ if (isBeat)
+ e.childNodes[2].nodeValue += ',比上次成绩 ' + record + ' 快 ' + bestBy;
+ e.childNodes[2].nodeValue += '。'
+
+
e.childNodes[2].nodeValue += ' [';
e.childNodes[3].firstChild.nodeValue = '查看';
return;
}
- if ($(e).text().indexOf('Loan Shark') >= 0) { // 还贷
+
+ /**
+ * 还贷
+ */
+ if ($(e).text().indexOf('Loan Shark') >= 0) {
+ const node1Value = e.firstChild.nodeValue; // You have been charged $29,000 for your loan. You can pay this by visiting the
+ //e.childNodes[1].firstChild.nodeValue; // Loan Shark
+ // const node3Value=e.childNodes[2].nodeValue; 内容是 ". "
+
+ let charge = node1Value.split(' ')[4];
+ let replace;
+ replace = '你需要支付 ';
+ replace += charge;
+ replace += ' 贷款利息,点此支付:';
+
+ e.firstChild.nodeValue = replace;
+ e.childNodes[1].firstChild.nodeValue = '鲨客借贷(Loan Shark)';
+ e.childNodes[2].nodeValue = '。';
return;
}
- if ($(e).text().indexOf('sent') >= 0) { // 收到钱物
- if ($(e).text().indexOf('message') >= 0) { // 附带信息
- return;
- } else {
- return;
- }
- }
- if ($(e).text().indexOf('bazaar') >= 0) { // bazaar
+
+ /**
+ * 收到钱物
+ * You were sent $21,000,000 from
+ * JNZR
+ * .
+ * 附带信息: with the message: Manuscript fee OCT
+ * e.firstChild.nodeValue
+ * e.childNodes[1].firstChild.nodeValue
+ * e.childNodes[2].nodeValue
+ *
+ * You were sent 4x Xanax from RaichuQ with the message: Manuscript fee OCT
+ * You were sent $21,000,000 from JNZR.
+ * You were sent some Xanax from runningowl
+ * You were sent 1x Present from Duke with the message: Is it your birthday?
+ * You were sent Duke's Safe from DUKE
+ * You were sent a Diamond Bladed Knife from charapower
+ */
+ if ($(e).text().indexOf('sent') >= 0) {
+
+ const isWithMsg= $(e).text().indexOf('message') >= 0;
+ const msg=isWithMsg?$(e).text().split(' with the message: ')[1]:null;
+ const wordsList=e.firstChild.nodeValue.split(' ');
+ console.log(wordsList);
+ // 发送的数量
+ let number;
+ if(wordsList[3]==='some'||wordsList[3]==='a') // 收到一个可数的不可堆叠或不可数的东西
+ number='1x';
+ else if(wordsList[3][wordsList[3].length-1]==='x') // 收到可数的可堆叠东西
+ number=wordsList[3];
+ else
+ number=null;
+ const item=number===null?wordsList.slice(3,wordsList.length-2):wordsList.slice(4,wordsList.length-2);
+ console.log(item);
+
+ // 你收到了来自someone的【数量】物品,附带信息:xxx。
+ e.firstChild.nodeValue='你收到了来自 ';
+ e.childNodes[2].nodeValue=' 的 ';
+ if(number)
+ e.childNodes[2].nodeValue+=number
+ e.childNodes[2].nodeValue+=' '+item;
+ if(isWithMsg)
+ e.childNodes[2].nodeValue+=',附带信息:'+msg;
+ e.childNodes[2].nodeValue+='。';
+
return;
}
+
+ /**
+ * bazaar
+ * Dewei3 bought 2 x Toyota MR2 from your bazaar for $56,590.
+ * ['', 'bought', '2', 'x', 'Toyota', 'MR2', 'from', 'your', 'bazaar', 'for', '$56,590.\n']
+ * e.childNodes[1].nodeValue
+ */
+ if ($(e).text().indexOf('bazaar') >= 0) {
+ const bazEN=e.childNodes[1].nodeValue;
+ // const itemStart=bazEN.indexOf(' x ')+3;
+ // const itemEnd=bazEN.indexOf(' from your bazaar for ');
+ const spl=bazEN.split(' ');
+
+ const num=spl[2].replace('.','');
+ // const item=bazEN.slice(itemStart,itemEnd);
+ const item=spl.slice(4,spl.indexOf('from')).join(' ');
+ console.log(item)
+ const money=spl[spl.length-1];
+
+ e.childNodes[1].nodeValue=' 花费 '+money+' 从你的 bazaar 买了 '+num+' 个 '+' '+item+'。';
+ return;
+ }
+
if ($(e).text().indexOf('trade') >= 0) { // 交易
if ($(e).text().indexOf('You must now accept') >= 0) { // 接受交易
return;
@@ -239,25 +344,41 @@
return;
}
}
- if ($(e).text().indexOf('lottery') >= 0) { // 每日彩票
+
+ /**
+ * 每日彩票
+ * 有人在Lucky Shot彩票中赢得11,832,100,000美元!
+ * zstorm won $5,574,200 in the Daily Dime lottery!
+ */
+ if ($(e).text().indexOf('lottery') >= 0) {
+ console.log('彩票')
+ const split=e.childNodes[1].nodeValue.split(' ');
+ const type=split[split.length-3]+' '+split[split.length-2];
+ const money=split[2];
+ e.childNodes[1].nodeValue=' 在 '+type+' 彩票中赢得了 '+money+'!';
return;
}
+
if ($(e).text().indexOf('organized crime') >= 0) { // oc开启
return;
}
if ($(e).text().indexOf('You and your team') >= 0) { // oc结束
return;
}
- if ($(e).text().indexOf('successfully busted') >= 0) { // 劫狱成功
- return;
- }
- if ($(e).text().indexOf('trying to bust') >= 0 ||
- $(e).text().indexOf('failed to bust') >= 0) { // 劫狱失败
- return;
- }
- if ($(e).text().indexOf('Loan Shark') >= 0) { // 还贷
+ /**
+ * bust 捞人
+ * Spookyt
+ * failed to bust you out of jail.
+ */
+ if ($(e).text().indexOf('bust') >= 0) { // 劫狱成功
+ if ($(e).text().indexOf('to bust') >= 0) { // 劫狱失败
+ e.childNodes[1].nodeValue=' 想捞你出来但是把自己搭进去了。';
+ return;
+ }
+ e.childNodes[1].nodeValue=' 成功把你捞了出来。';
return;
}
+
if ($(e).text().indexOf('doorstep') >= 0) { // 蓝星奖励
return;
}
@@ -265,7 +386,5 @@
}
}
-
})();
-