1 line
4.7 KiB
JavaScript

(()=>{var e={},s={};function t(r){var n=s[r];if(void 0!==n)return n.exports;var a=s[r]={exports:{}};return e[r](a,a.exports,t),a.exports}t.rv=()=>"1.3.9",t.ruid="bundler=rspack@1.3.9";let r=null;function n(e){return new URL(e).hostname}async function a(){console.log("Localization Version ===",r=await c("versions.json"))}async function o(e,s){if(console.log("url ==="+e),null==r)return await a(),o(e,s);if(null!=s&&!s)return[];let t=r,n={};e.includes("robertsspaceindustries.com")?(n["zh-CN"]=await c("zh-CN-rsi.json",{cacheKey:"zh-CN",version:t.rsi}),n.concierge=await c("concierge.json",{cacheKey:"concierge",version:t.concierge}),n.orgs=await c("orgs.json",{cacheKey:"orgs",version:t.orgs}),n.address=await c("addresses.json",{cacheKey:"addresses",version:t.addresses}),n.hangar=await c("hangar.json",{cacheKey:"hangar",version:t.hangar})):e.includes("uexcorp.space")?n.UEX=await c("zh-CN-uex.json",{cacheKey:"uex",version:t.uex}):e.includes("erkul.games")?n.DPS=await c("zh-CN-dps.json",{cacheKey:"dps",version:t.dps}):s&&(n["zh-CN"]=await c("zh-CN-rsi.json",{cacheKey:"zh-CN",version:t.rsi}),n.concierge=await c("concierge.json",{cacheKey:"concierge",version:t.concierge}),n.orgs=await c("orgs.json",{cacheKey:"orgs",version:t.orgs}),n.address=await c("addresses.json",{cacheKey:"address",version:t.addresses}),n.hangar=await c("hangar.json",{cacheKey:"hangar",version:t.hangar}),n.UEX=await c("zh-CN-uex.json",{cacheKey:"uex",version:t.uex}),n.DPS=await c("zh-CN-dps.json",{cacheKey:"dps",version:t.dps}));let i=[];function l(e){i.push(...function(e,s){let t=[],r=e[s];if("object"==typeof r)for(let[e,s]of Object.entries(r)){let r=e.toString().trim().toLowerCase().replace(/\xa0/g," ").replace(/\s{2,}/g," ");t.push({word:r,replacement:String(s)})}return t}(n,e))}if(e.includes("robertsspaceindustries.com")){if(e.startsWith("https://robertsspaceindustries.com/spectrum/community/"))return[];l("zh-CN"),(e.startsWith("https://robertsspaceindustries.com/orgs")||e.startsWith("https://robertsspaceindustries.com/citizens")||e.startsWith("https://robertsspaceindustries.com/account/organization"))&&(i.push({word:"members",replacement:"名成员"}),l("orgs")),e.startsWith("https://robertsspaceindustries.com/account/addresses")&&l("address"),e.startsWith("https://robertsspaceindustries.com/account/referral-program")&&i.push({word:"Total recruits: ",replacement:"总邀请数:"},{word:"Prospects ",replacement:"未完成的邀请"},{word:"Recruits",replacement:"已完成的邀请"}),e.startsWith("https://robertsspaceindustries.com/account/concierge")&&(i=[],l("concierge")),e.startsWith("https://robertsspaceindustries.com/account/pledges")&&l("hangar")}else e.includes("uexcorp.space")?l("UEX"):e.includes("erkul.games")?l("DPS"):s&&(l("zh-CN"),i.push({word:"members",replacement:"名成员"}),l("orgs"),l("address"),i.push({word:"Total recruits: ",replacement:"总邀请数:"},{word:"Prospects ",replacement:"未完成的邀请"},{word:"Recruits",replacement:"已完成的邀请"}),l("concierge"),l("hangar"),l("UEX"),l("DPS"));return i}async function c(e,s={}){let{cacheKey:t="",version:r=null}=s;if(t&&""!==t){let e=await i(`${t}_version`),s=await i(t);if(s&&"object"==typeof s&&Object.keys(s).length>0&&e===r)return s}let n=new Date,a=await fetch("https://git.scbox.xkeyc.cn/SCToolBox/ScWeb_Chinese_Translate/raw/branch/main/json/locales/"+e,{method:"GET",mode:"cors"}),o=new Date,u=await a.json();if(t&&""!==t){let e=o.getTime()-n.getTime();console.log(`update ${t} v == ${r} time == ${e/1e3}s`),await l(t,u),await l(`${t}_version`,r)}return u}function i(e){return new Promise(s=>{chrome.storage.local.get([e],t=>{let r=t[e];if(void 0===r)return s(null);s(r)})})}function l(e,s){return new Promise(t=>{let r={};r[e]=s,chrome.storage.local.set(r,()=>{t()})})}chrome.runtime.onInstalled.addListener(function(){a().then(e=>{}),console.log("SWTT init")}),chrome.runtime.onMessage.addListener(function(e,s,t){if("_loadLocalizationData"===e.action){let s=n(e.url);i(`_translate_switch_${s}`).then(r=>{console.log("GET domain ===",s,"enableManual === ",r),o(e.url,r).then(e=>{t({result:e})})})}else if("_setTranslateSwitch"===e.action){let s=n(e.url);l(`_translate_switch_${s}`,e.enableManual).then(()=>{console.log("SET translate switch ===",s,"enableManual === ",e.enableManual),t({result:!0})})}return!0}),chrome.runtime.onInstalled.addListener(function(){chrome.contextMenus.create({id:"translate",title:"切换翻译",contexts:["all"]})}),chrome.contextMenus.onClicked.addListener((e,s)=>{console.log("contextMenus",e,s);let t="manual";s&&s.url&&["robertsspaceindustries.com","erkul.games","uexcorp.space"].find(e=>s.url.includes(e))&&(t=s.url),o(t,!0).then(e=>{s&&void 0!==s.id&&chrome.tabs.sendMessage(s.id,{action:"_toggleTranslation",data:e}).then(e=>{})})})})();