Bilibili-Evolved/min/feeds-translate-providers.min.js
2020-02-04 15:46:41 +08:00

1 line
1.6 KiB
JavaScript

(()=>{return(t,e)=>{class n{}class s extends n{constructor(){super(...arguments);this.name="Bing";this.link="https://translate.bing.com/"}async translate(t,e){const n="zh-Hans";let s=_.get(e,"targetLanguage",n);if(s.includes("-")&&s!==n){s=s.substring(0,s.indexOf("-"))}const a=await Ajax.monkey({url:"https://cn.bing.com/ttranslatev3",method:"POST",data:Object.entries({fromLang:"auto-detect",to:s,text:t}).map(([t,e])=>`${t}=${e}`).join("&"),headers:{"User-Agent":UserAgent,"Content-Type":"application/x-www-form-urlencoded"},responseType:"json"});const[r]=a;if(r.translations){return r.translations.map(t=>t.text).join("\n")}else{throw new Error("调用Bing翻译失败.\n"+JSON.stringify(r))}}}class a extends n{constructor(){super(...arguments);this.name="Google";this.link="https://translate.google.com/";this.apiUrl="https://translate.google.com/translate_a/single"}async translate(t,e){const n="zh";let s=_.get(e,"targetLanguage",n);if(s.includes("-")&&s!==n){s=s.substring(0,s.indexOf("-"))}const a=await Ajax.monkey({url:`${this.apiUrl}?${Object.entries({client:"gtx",sl:"auto",tl:s,dt:"t",q:encodeURIComponent(t)}).map(([t,e])=>`${t}=${e}`).join("&")}`,method:"GET",headers:{"User-Agent":UserAgent},responseType:"json"});console.log(_.flattenDeep(a),a,a[0].map(t=>t[0]).join("\n"));const r=a[0].map(t=>t[0]).join("");return r}}class r extends a{constructor(){super(...arguments);this.link="https://translate.google.cn/";this.apiUrl="https://translate.google.cn/translate_a/single"}}const o=()=>{switch(t.feedsTranslateProvider){default:case"Bing":return new s;case"Google":return new a;case"GoogleCN":return new r}};return{export:{getTranslator:o}}}})();