const PlaceID = window.location.pathname.split('/')[3] const Form = document.querySelector('form[action="/create/place/update"]') var Settings; var PlaceData = null !(async () => { ActivityToggle() //RequestGameProfile() CopyOwnedPlace() })() async function ActivityToggle() { if (PlaceData === null) { PlaceData = await fetch('https://api.polytoria.com/v1/places/' + PlaceID) PlaceData = await PlaceData.json() } let Status = PlaceData.isActive const DIV = document.createElement('div') DIV.classList = 'form-group mt-4' DIV.innerHTML = `
` Form.insertBefore(DIV, Form.children[Form.children.length-1]) const ActivityBtn = document.createElement('button') ActivityBtn.type = 'button' ActivityBtn.classList = 'btn ' + (Status === true ? 'btn-danger' : 'btn-success') ActivityBtn.innerText = Status === true ? 'Deactivate' : 'Activate' DIV.appendChild(ActivityBtn) ActivityBtn.addEventListener('click', function() { fetch(`https://polytoria.com/api/places/${PlaceID}/toggle-active`, { method: "POST", headers: { 'Content-Type': 'application/json', 'X-CSRF-Token': document.querySelector('input[name="_csrf"]').value } }) .then(response => { if (!response.ok) { throw new Error('Network not ok ' + response.status) } return response.json() }) .then(data => { Status = data.isActive ActivityBtn.innerText = Status === true ? 'Deactivate' : 'Activate' ActivityBtn.classList = 'btn ' + (Status === true ? 'btn-danger' : 'btn-success') }) .catch(error => { console.log(error) }); }); } function RequestGameProfile() { const Div = document.createElement('div') Div.classList = 'card mt-4' Div.innerHTML = `
` Form.insertBefore(Div, Form.children[Form.children.length-1]) const SubmitBtn = Div.getElementsByTagName('button')[0] SubmitBtn.addEventListener('click', function(){ const CardBody = Div.children[0] const Result = { gameTitle: CardBody.children[0].value, bg: CardBody.children[1].value, accent: CardBody.children[2].value, secondary: CardBody.children[3].value, cardBg: CardBody.children[4].value, text: CardBody.children[5].value } window.location.href = 'https://polyplus.vercel.app/app/game-profile.html?gameId=' + PlaceID + '&profile=' + encodeURIComponent(btoa(JSON.stringify(Result))) }); } async function CopyOwnedPlace() { console.log('ran function') if (PlaceData === null) { PlaceData = await fetch('https://api.polytoria.com/v1/places/' + 2640) PlaceData = await PlaceData.json() } if (PlaceData.creator.id !== parseInt(JSON.parse(window.localStorage.getItem('p+account_info')).ID)) { console.log('returned') //return } const DIV = document.createElement('div') DIV.classList = 'form-group mt-4' DIV.innerHTML = `
` Form.insertBefore(DIV, Form.children[Form.children.length-1]) const DownloadButton = DIV.getElementsByTagName('button')[0] DownloadButton.addEventListener('click', async function() { console.log('clicked download epic') let CreatorToken = await fetch('https://polytoria.com/api/places/edit', { method: "POST", headers: { 'X-CSRF-Token': document.querySelector('input[name="_csrf"]').value }, body: JSON.stringify({ placeID: PlaceID }) }) CreatorToken = await CreatorToken.json() CreatorToken = CreatorToken.token fetch(`https://api.polytoria.com/v1/places/get-place?id=${PlaceID}&tokenType=creator`, { headers: { 'Authorization': CreatorToken } }) .then(response => { if (!response.ok) { throw new Error('Network not ok') } return response.blob() }) .then(data => { //const JSONBlob = new Blob([data], {type: "application/xml"}) const DownloadURL = URL.createObjectURL(data) const Link = document.createElement('a') Link.href = DownloadURL Link.download = PlaceData.name + '.poly' document.body.appendChild(Link) Link.click() Link.remove() }) .catch(error => {console.log(error)}); }) }