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/latestEnnoblements.js

1 line
6.6 KiB
JavaScript

!function(){function e(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function n(n){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),o.forEach((function(t){e(n,t,r[t])}))}return n}var t=({html:e,id:n,title:t}={})=>{Dialog.show(n,`<h3>${t}</h3>`+e);const r=document.querySelector(".popup_box");r&&(r.style.width="auto",r.style.maxWidth="1000px")};const r=(e,n={})=>{const t=localStorage.getItem(e);let r=n;return t&&(r=JSON.parse(t)),r},o=(e,n)=>{localStorage.setItem(e,JSON.stringify(n))},i=(e="",n="")=>`https://${e}.tribalwarshelp.com/server/${n}`;const l={pl_PL:{showLatestEnnoblements:"Pokaż najnowsze przejęcia",village:"Wioska",newOwner:"Nowy właściciel",newOwnerTribe:"Plemię nowego właściciela",oldOwner:"Poprzedni właściciel",oldOwnerTribe:"Plemię poprzedniego właściciela",date:"Data",filters:"Filtry",apply:"Zastosuj",ennoblements:"Przejęcia",devNote:"Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :)."},en_DK:{showLatestEnnoblements:"Show the latest ennoblements",village:"Village",newOwner:"New owner",newOwnerTribe:"New owner tribe",oldOwner:"Old owner",oldOwnerTribe:"Old owner tribe",filters:"Filters",date:"Date",apply:"Apply",ennoblements:"Ennoblements",devNote:"Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)."},de_DE:{showLatestEnnoblements:"Zeige letzten Adelungen",village:"Dorf",newOwner:"Neuer Besitzer",newOwnerTribe:"Neuer Stamm",oldOwner:"Alter Besitzer",oldOwnerTribe:"Alter Stamm",filters:"Filter",date:"Datum",apply:"Anwenden",ennoblements:"Adelungen",devNote:"Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)."}};const a=window.location.host.split(".")[0],s="kiszkowaty_show_latest_ennoblements_cache",d="kiszkowaty_show_latest_ennoblements_filter",w={newOwner:"",newOwnerTribe:"",oldOwner:"",oldOwnerTribe:""},m=l[window.game_data.locale]||l.en_DK,b=()=>(({query:e,variables:n={}}={})=>fetch("https://api.tribalwarshelp.com/graphql",{method:"POST",body:JSON.stringify({query:e,variables:n}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((({data:e,errors:n})=>{if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((n=>n(e)))})))({query:"\n query ennoblements($server: String!, $sort: [String!], $limit: Int) {\n ennoblements(server: $server, sort: $sort, limit: $limit) {\n items {\n newOwner {\n id\n name\n tribe {\n id\n name\n tag\n }\n }\n oldOwner {\n id\n name\n tribe {\n id\n name\n tag\n }\n }\n ennobledAt\n village {\n id\n name\n x\n y\n }\n }\n }\n }\n ",variables:{server:a,limit:50,sort:["ennobledAt DESC"]}}).then((e=>(((e={})=>{o(s,e)})(e),new Promise((n=>n(e)))))),c=(e,n)=>e&&e.name.toLowerCase().includes(n.toLowerCase()),u=(e,n)=>e&&e.tribe&&(e.tribe.name.toLowerCase().includes(n.toLowerCase())||e.tribe.tag.toLowerCase().includes(n.toLowerCase())),h=(e=[],{newOwner:n,newOwnerTribe:t,oldOwner:r,oldOwnerTribe:o}={})=>e.filter((e=>!(n&&!c(e.newOwner,n))&&(!(t&&!u(e.newOwner,t))&&(!(r&&!c(e.oldOwner,r))&&!(o&&!u(e.oldOwner,o)))))),p=(e,t)=>{e.preventDefault();const r=n({},w,{newOwner:e.target[0].value,newOwnerTribe:e.target[1].value,oldOwner:e.target[2].value,oldOwnerTribe:e.target[3].value});document.querySelector("#le_table tbody").innerHTML=O(h(t,r)).join(""),((e={})=>{o(d,e)})(r)},g=e=>{return e&&e.name?`<a href="${n=e.id,window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:n})}">${e.name}</a> (${e.tribe&&e.tribe.tag?`<a href="${(e=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:e}))(e.tribe.id)}">${e.tribe.tag}</a>`:"-"})`:"-";var n},y=e=>{return`<a href="${n=e.id,window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:n})}">${((e="",n=500,t=500)=>`${e} (${n}|${t}) ${"K"+String(t)[0]+String(n)[0]}`)(e.name,e.x,e.y)}</a>`;var n},O=e=>e.map((e=>{return`<tr>\n <td>${y(e.village)}</td>\n <td>${g(e.newOwner)}</td>\n <td>${g(e.oldOwner)}</td>\n <td>${n=e.ennobledAt,new Date(n).toLocaleDateString(void 0,t||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}</td>\n </tr>`;var n,t})),v=(e=[],r={})=>{const o=n({},w,r),l=`\n <form style="margin-bottom: 15px" id="le_form">\n <h1 style="margin-bottom: 0px; text-align: center;"><a href="${i(((e="")=>e.substr(0,2))(a),a)}">TWHelp</a></h1>\n <h3 style="margin-bottom: 10px; margin-top: 0;">${m.devNote}</h3>\n <h3 style="margin-bottom: 5px">${m.filters}</h3>\n <input type="text" placeholder="${m.newOwner}" value="${o.newOwner}" />\n <input type="text" placeholder="${m.newOwnerTribe}" value="${o.newOwnerTribe}" />\n <input type="text" placeholder="${m.oldOwner}" value="${o.oldOwner}" />\n <input type="text" placeholder="${m.oldOwnerTribe}" value="${o.oldOwnerTribe}" />\n <div>\n <button type="submit">${m.apply}</button>\n </div>\n </form>\n <table class="vis" id="le_table" style="width: 100%">\n <thead>\n <tr>\n <th>${m.village}</th>\n <th>${m.newOwner}</th>\n <th>${m.oldOwner}</th>\n <th>${m.date}</th>\n </tr>\n </thead>\n <tbody>\n ${O(h(e,o)).join("")}\n </tbody>\n </table>\n `;t({title:m.ennoblements,id:"ennoblements",html:l}),((e=[])=>{document.querySelector("#le_form").addEventListener("submit",(n=>{p(n,e)}))})(e)},f=async()=>{try{const e=r(s),n=r(d);e.ennoblements&&Array.isArray(e.ennoblements.items)&&e.ennoblements.items.length>0&&v(e.ennoblements.items,n);const{ennoblements:t}=await b();v(t.items,n)}catch(e){console.log("latestEnnoblements",e)}};(()=>{const e=document.createElement("div");e.style.position="fixed",e.style.top="5px",e.style.left="4px",e.style.zIndex="50000";const n=document.createElement("a");n.innerHTML='<img src="https://i.imgur.com/4WP4098.png">',n.title=m.showLatestEnnoblements,n.style.cursor="pointer",n.addEventListener("click",f),e.append(n),document.body.appendChild(e)})()}();