This repository has been archived on 2023-01-26. You can view files and clone it, but cannot push or open issues or pull requests.
scripts-old/dist/quickbar/warStatsGenerator.js

1 line
7.9 KiB
JavaScript

!function(){const e="https://api.tribalwarshelp.com/graphql";var t=function(){let{query:t,variables:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(e,{method:"POST",body:JSON.stringify({query:t,variables:n}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((e=>{let{data:t,errors:n}=e;if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((e=>e(t)))}))};const n={pl_PL:{conquers:"Przejęcia",sideOne:"Strona 1",sideTwo:"Strona 2",difference:"Różnica",tribeTag:"Skrót plemienia",delete:"Usuń",notEnoughTribesSideOne:"Musisz dodać jakiekolwiek plemię do strony 1.",notEnoughTribesSideTwo:"Musisz dodać jakiekolwiek plemię do strony 2.",from:"Od",to:"Do",warStatsGenerator:"Generator statystyk wojennych",generateWarStats:"Wygeneruj statystyki wojenne",addTribe:"Dodaj plemię",devNote:"Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :)."},en_DK:{conquers:"Conquers",sideOne:"Side one",sideTwo:"Side two",difference:"Difference",tribeTag:"Tribe tag",delete:"Delete",notEnoughTribesSideOne:"Not enough tribes added to the side one.",notEnoughTribesSideTwo:"Not enough tribes added to the side two.",from:"From",to:"To",warStatsGenerator:"War stats generator",generateWarStats:"Generate war stats",addTribe:"Add tribe",devNote:"Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)."},de_DE:{conquers:"Eroberungen",sideOne:"Partei A",sideTwo:"Partei B",difference:"Differenz",tribeTag:"Stammeskürzel",delete:"Löschen",notEnoughTribesSideOne:"Nicht genügend Stämme hinzugefügt zu Partei A.",notEnoughTribesSideTwo:"Nicht genügend Stämme hinzugefügt zu Partei B.",from:"Von",to:"Zu",warStatsGenerator:"Kriegsstatistik Generator",generateWarStats:"Generiere Statistik",addTribe:"Stamm Hinzufügen",devNote:"Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)."}};const o="tribalwarshelp.com",r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://".concat(e,".").concat(o,"/server/").concat(t)},i=".popup_box",a=window.location.host.split(".")[0],s="sideOneAdd",c="sideOneInputs",d="sideTwoAdd",l="sideTwoInputs",u="from",m="warStatsResult",b=n[window.game_data.locale]||n.en_DK,g=e=>()=>{const t=document.createElement("div");t.innerHTML="\n <label>".concat(b.tribeTag,': </label>\n <input type="text" required />\n <button type="button" class="btn">').concat(b.delete,"</button>\n "),t.querySelector("button").addEventListener("click",(()=>{t.remove()})),e.appendChild(t)},h=async e=>{e.preventDefault();const n=[],o=[];if(e.target.querySelectorAll("#".concat(c," input")).forEach((e=>{e.value.trim()&&n.push(e.value.trim())})),e.target.querySelectorAll("#".concat(l," input")).forEach((e=>{e.value.trim()&&o.push(e.value.trim())})),console.log("sideOneTags",n,"sideTwoTags",o),0===n.length)return UI.ErrorMessage(b.notEnoughTribesSideOne);if(0===o.length)return UI.ErrorMessage(b.notEnoughTribesSideTwo);const r=document.querySelectorAll("".concat(i," form #").concat(u," input"));let s;2===r.length&&r[0].value&&r[1].value&&(s=new Date("".concat(r[0].value,"T").concat(r[1].value,":00")));const d=document.querySelectorAll("".concat(i," form #").concat("to"," input"));let m;2===d.length&&d[0].value&&d[1].value&&(m=new Date("".concat(d[0].value,"T").concat(d[1].value,":00"))),e.target.querySelectorAll("button").forEach((e=>{e.disabled=!0}));try{const{tribes:e}=await t({query:"\n query tribes($server: String!, $filter: TribeFilter) {\n tribes(server: $server, filter: $filter) {\n items {\n id\n tag\n }\n }\n }\n",variables:{server:a,filter:{tag:[...n,...o]}}}),r=e.items.filter((e=>n.some((t=>e.tag===t)))).map((e=>e.id)),i=e.items.filter((e=>o.some((t=>e.tag===t)))).map((e=>e.id)),{sideOneEnnoblements:c,sideTwoEnnoblements:d}=await t({query:"\n query ennoblements($server: String!, $sideOneFilter: EnnoblementFilter, $sideTwoFilter: EnnoblementFilter) {\n sideOneEnnoblements: ennoblements(server: $server, filter: $sideOneFilter) {\n total\n }\n sideTwoEnnoblements: ennoblements(server: $server, filter: $sideTwoFilter) {\n total\n }\n }\n",variables:{server:a,sideOneFilter:{newOwnerTribeID:r,oldOwnerTribeID:i,ennobledAtGTE:s,ennobledAtLTE:m},sideTwoFilter:{newOwnerTribeID:i,oldOwnerTribeID:r,ennobledAtGTE:s,ennobledAtLTE:m}}});console.log("sideOneEnnoblements",c,"sideTwoEnnoblements",d),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const n="\n <div>\n <h3>".concat(b.conquers,':</h3>\n <p style="margin: 0;"><strong>').concat(b.sideOne,": ").concat(e,'</strong></p>\n <p style="margin: 0;"><strong>').concat(b.sideTwo,": ").concat(t,'</strong></p>\n <p style="margin: 0;"><strong>').concat(b.difference,": ").concat(Math.abs(e-t),'</strong></p>\n <hr style="margin: 10px 0;" />\n </div>\n ');document.querySelector("#warStatsResult").innerHTML=n}(c.total,d.total)}catch(e){console.log("handleFormSubmit",e)}e.target.querySelectorAll("button").forEach((e=>{e.disabled=!1}))},v=e=>{const t='\n <form>\n <h1 style="margin-bottom: 0px; text-align: center;"><a href="'.concat(r(function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").substr(0,2)}(a),a),'">TWHelp</a></h1>\n <h3 style="margin-bottom: 10px; margin-top: 0;">').concat(b.devNote,'</h3>\n <div id="').concat(m,'">\n </div>\n <div style="margin-bottom: 10px;">\n <div id="').concat(u,'">\n <label>').concat(b.from,': </label>\n <input type="date" required />\n <input type="time" required />\n </div>\n <div id="').concat("to",'">\n <label>').concat(b.to,': </label>\n <input type="date" required />\n <input type="time" required />\n </div>\n </div>\n <div style="display: flex; justify-content: space-between; margin-bottom: 10px; min-width: 800px;">\n <div>\n <h3>').concat(b.sideOne,'</h3>\n <div id="').concat(c,'">\n </div>\n <button id="').concat(s,'" class="btn" type="button">').concat(b.addTribe,'</button>\n </div>\n <div style="margin: 0 5px;"></div>\n <div>\n <h3>').concat(b.sideTwo,'</h3>\n <div id="').concat(l,'">\n </div>\n <button id="').concat(d,'" class="btn" type="button">').concat(b.addTribe,'</button>\n </div>\n </div>\n <div style="text-align: center;">\n <button class="btn" type="submit">').concat(b.generateWarStats,"</button>\n </div>\n </form>\n ");!function(){let{html:e,id:t,title:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Dialog.show(t,"<h3>".concat(n,"</h3>")+e);const o=document.querySelector(i);o&&(o.style.width="auto",o.style.maxWidth="1000px")}({title:b.warStatsGenerator,id:"warStats",html:t,e:e}),document.querySelector("".concat(i," form #").concat(s)).addEventListener("click",g(document.querySelector("#sideOneInputs"))),document.querySelector("".concat(i," form #").concat(d)).addEventListener("click",g(document.querySelector("#sideTwoInputs"))),document.querySelector("".concat(i," form")).addEventListener("submit",h)};!function(){try{(()=>{const e=document.createElement("div"),t=document.createElement("button");t.innerHTML=b.generateWarStats,t.addEventListener("click",v),e.appendChild(t),document.querySelector("#wars_ranking_table").parentElement.prepend(e)})()}catch(e){console.log("war stats",e)}}()}();