diff --git a/js/background.js b/js/background.js index 355a0e6..67a3cdd 100755 --- a/js/background.js +++ b/js/background.js @@ -5,28 +5,20 @@ chrome.action.onClicked.addListener((tab) => { chrome.tabs.create({ active: true, url: chrome.runtime.getURL('settings.html') }); }); -// REGISTER AN ALARM FOR DAILY UPDATE CHECK (chatgpt cause I'm lazy and have to release Poly+ on February 8th aka today at the time of writing this) -// Calculate the milliseconds until the next 12 PM -/* -const now = new Date(); -const msUntilNext12PM = new Date( - now.getFullYear(), - now.getMonth(), - now.getDate(), - 12, // 12 PM hour - 0, // 0 minutes - 0 // 0 seconds -) - now; - -// Convert milliseconds to minutes -const minutesUntilNext12PM = msUntilNext12PM / (1000 * 60); - -// Create the alarm -chrome.alarms.create("PolyPlus-UpdateCheck", { - periodInMinutes: 24 * 60, // 24 hours - delayInMinutes: minutesUntilNext12PM, // Time until next 12 PM +// REGISTER AN ALARM FOR DAILY UPDATE CHECK +chrome.alarms.create('PolyPlus-UpdateCheck', { + when: Date.now() + (GetNext12PM()) }); -*/ + +function GetNext12PM() { + const Now = new Date(); + const Next = new Date(); + Next.setHours(12, 0, 0, 0); + if (Now.getHours() >= 12) { + Next.setDate(Next.getDate() + 1); + } + return Next - Now; +} // HANDLE ALARMS FIRING chrome.alarms.onAlarm.addListener(function(alarm){ @@ -40,16 +32,16 @@ chrome.alarms.onAlarm.addListener(function(alarm){ }) .then(data => { if (data.version > Manifest.version) { - console.log('Update available') chrome.notifications.create("", { type: "basic", iconUrl: chrome.runtime.getURL("icon.png"), title: "New Update Available", - message: "A new update is available for Poly+!", + message: "A new update is available for Poly+! (v" + data.version + ")", + requiresInteraction: true }, function(notificationID) { chrome.notifications.onClicked.addListener(function (id) { if (id === notificationID) { - chrome.tabs.create({url: 'https://github.com/IndexingGitHub/PolyPlus', active: true}) + chrome.tabs.create({url: 'https://github.com/IndexingGitHub/PolyPlus/releases', active: true}) chrome.notifications.clear(notificationID) } }) diff --git a/js/profile/profile.js b/js/profile/profile.js index a6bf264..058f2e6 100755 --- a/js/profile/profile.js +++ b/js/profile/profile.js @@ -6,7 +6,7 @@ var BestFriends; let FavoriteBtn; let CalculateButton; -if (UserID) { +if (UserID && !isNaN(UserID)) { chrome.storage.sync.get(['PolyPlus_Settings'], function(result) { Settings = result.PolyPlus_Settings || { IRLPriceWithCurrencyOn: false, @@ -56,89 +56,28 @@ if (UserID) { alert('Failure to copy 3D avatar URL.') }); }); +} else if (UserID && UserID[0] === "@") { + const Username = window.location.pathname.split('/')[2].substring(1) - /* - Way overcomplicated code when there is literally an iframe on the page with the exact same result - - const UserID = window.location.pathname.split('/')[2] - const DefaultAvatar = { - "useCharacter": true, - "items": [], - "shirt": null, - "pants": null, - "tool": null, - "headColor": "#111111", - "torsoColor": "#111111", - "leftArmColor": "#111111", - "rightArmColor": "#111111", - "leftLegColor": "#111111", - "rightLegColor": "#111111", - "face": "https://c0.ptacdn.com/static/3dview/DefaultFace.png" + let Reference = new URLSearchParams(new URL(window.location.href).search).get('ref') + if (Reference === null) { + Reference = "" } - const Avatar = structuredClone(DefaultAvatar) - const Original = document.querySelector('.container .dropdown-item:nth-child(2)') - const Clone = Original.cloneNode(true) - Clone.classList.remove('text-danger') - Clone.classList.add('text-primary') - Clone.href = '#' - Clone.innerHTML = ` - - Copy 3D Avatar URL - ` - Clone.addEventListener('click', function(){ - fetch('https://api.polytoria.com/v1/users/:id/avatar'.replace(':id', UserID)) - .then(response => { - if (!response.ok) { - throw new Error('Network not ok') - } + fetch("https://api.polytoria.com/v1/users/find?username=" + Username) + .then(response => { + if (!response.ok) { + window.location.href = window.location.origin + decodeURIComponent(Reference) + } else { return response.json() - }) - .then(data => { - data.assets.forEach(item => { - switch(item.type) { - case 'hat': - Avatar.items.push(item.path) - break - case 'tool': - Avatar.tool = item.path - break - case 'face': - Avatar.face = item.path - break - case 'shirt': - Avatar.shirt = item.path - break - case 'pants': - Avatar.pants = item.path - break - } - }); - - Avatar.headColor = '#' + data.colors.head || '#cdcdcd' - Avatar.torsoColor = '#' + data.colors.torso || '#cdcdcd' - Avatar.leftArmColor = '#' + data.colors.leftArm || '#cdcdcd' - Avatar.rightArmColor = '#' + data.colors.rightArm || '#cdcdcd' - Avatar.leftLegColor = '#' + data.colors.leftLeg || '#cdcdcd' - Avatar.rightLegColor = '#' + data.colors.rightLeg || '#cdcdcd' - - const URL = 'https://polytoria.com/ptstatic/itemview/#' + btoa(encodeURIComponent(JSON.stringify(Avatar))) - console.log('URL: ', URL) - navigator.clipboard.writeText(URL) - const SwalCopied = document.createElement('script') - SwalCopied.innerHTML = ` - window.Swal.fire({title: "Copied", icon: "success", html: "The 3D avatar URL has been copied to clipboard!
Preview it here!"}) - ` - document.body.prepend(SwalCopied) - SwalCopied.remove() - }) - .catch(error => { - console.log(error) - }); - }); - - Original.parentElement.appendChild(Clone) - */ + } + }) + .then(data => { + window.location.href = "https://polytoria.com/users/" + data.id + }) + .catch(error => { + console.log("An error occurred:", error); + }); } function HandleIRLPrice() { diff --git a/js/profile/simplified-profile.js b/js/profile/simplified-profile.js deleted file mode 100755 index 194aafe..0000000 --- a/js/profile/simplified-profile.js +++ /dev/null @@ -1,21 +0,0 @@ -const Username = window.location.pathname.split('/')[2] - -let Reference = new URLSearchParams(new URL(window.location.href).search).get('ref') -if (Reference === null) { - Reference = "" -} - -fetch("https://api.polytoria.com/v1/users/find?username=" + Username) - .then(response => { - if (!response.ok) { - window.location.href = window.location.origin + decodeURIComponent(Reference) - } else { - return response.json() - } - }) - .then(data => { - window.location.href = "https://polytoria.com/users/" + data.id - }) - .catch(error => { - console.log("An error occurred:", error); - }); \ No newline at end of file diff --git a/manifest.json b/manifest.json index fa2e707..393a631 100755 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,6 @@ "manifest_version": 3, "name": "Poly+", "version": "1.0", - "version_name": "Public Beta", "description": "Power-up your Polytoria experience with Poly+! Created by Index.", "permissions": ["storage", "contextMenus", "tabs", "scripting", "alarms", "notifications"], "content_scripts": [