minor: cache friend count

This commit is contained in:
Index 2024-09-13 21:00:03 -05:00
parent c8da41a558
commit 11ac584246
3 changed files with 108 additions and 73 deletions

View file

@ -97,13 +97,25 @@ chrome.storage.sync.get(['PolyPlus_Settings', 'PolyPlus_PinnedGames'], async fun
}
if (Settings.HomeFriendCountOn === true) {
const FriendCount = (await (await fetch('https://polytoria.com/api/friends?page=1')).json()).meta.total;
chrome.storage.local.get(['PolyPlus_FriendCount'], async function(result){
let FriendCount = result['PolyPlus_FriendCount'].count;
const CountText = document.createElement('small');
CountText.classList = 'text-muted fw-lighter';
CountText.style.fontSize = '0.8rem';
CountText.innerText = ' (' + FriendCount + ')';
document.querySelector('#home-friendsOnline h5').appendChild(CountText);
// cache for 5 minutes
if (FriendCount === undefined || (new Date().getTime() - FriendCount.requested > 300000)) {
FriendCount = (await (await fetch('https://polytoria.com/api/friends?page=1')).json()).meta.total;
chrome.storage.local.set({['PolyPlus_FriendCount']: {
count: FriendCount,
requested: new Date().getTime()
}}, function(){});
}
const CountText = document.createElement('small');
CountText.classList = 'text-muted fw-lighter';
CountText.style.fontSize = '0.8rem';
CountText.innerText = ' (' + FriendCount + ')';
document.querySelector('#home-friendsOnline h5').appendChild(CountText);
});
}
if (Settings.HomeJoinFriendsButtonOn === true) {

View file

@ -272,7 +272,7 @@ if (window.location.pathname.split('/')[3] === 'polyplus' && window.location.has
} else if (window.location.pathname.split('/')[3] === 'polyplus' && window.location.hash === '#debug') {
document.addEventListener('DOMContentLoaded', function () {
chrome.storage.sync.get(['PolyPlus_Settings', 'PolyPlus_PinnedGames', 'PolyPlus_BestFriends', 'PolyPlus_ItemWishlist', 'PolyPlus_AvatarSandboxOutfits', 'PolyPlus_TimePlayed'], function(sync) {
chrome.storage.local.get(['PolyPlus_InventoryCache', 'PolyPlus_GreatDivideStats'], function(local){
chrome.storage.local.get(['PolyPlus_InventoryCache', 'PolyPlus_GreatDivideStats', 'PolyPlus_FriendCount'], function(local){
document.querySelector('#main-content .container').innerHTML = `
<style>
#main-content .container label {
@ -422,7 +422,7 @@ if (window.location.pathname.split('/')[3] === 'polyplus' && window.location.has
</div>
</div>
</div>
<div class="card">
<div class="card mb-3">
<a class="text-reset" data-bs-toggle="collapse" href="#great-divide-stats" role="button" aria-expanded="false" aria-controls="inventory-cache">
<div class="card-header">
<span class="badge bg-secondary" style="margin-right: 5px; vertical-align: text-bottom;">Local</span>
@ -439,6 +439,23 @@ if (window.location.pathname.split('/')[3] === 'polyplus' && window.location.has
</div>
</div>
</div>
<div class="card mb-3">
<a class="text-reset" data-bs-toggle="collapse" href="#friend-count" role="button" aria-expanded="false" aria-controls="inventory-cache">
<div class="card-header">
<span class="badge bg-secondary" style="margin-right: 5px; vertical-align: text-bottom;">Local</span>
Friend Count
<small class="text-muted" style="font-size: 0.7rem;">(cached for 5 minutes)</small>
</div>
</a>
<div class="card-body collapse" id="friend-count">
<div style="padding: 10px; background: #171717; font-family: monospace; color: orange; font-size: 0.8rem; border-radius: 10px; position: relative;">
${JSON.stringify((local.PolyPlus_FriendCount || {data: [], requested: "never"}), null, 2)
.replaceAll('\n','<br>')
.replaceAll(' ', '&nbsp;')
.replaceAll('\t', '&nbsp;&nbsp;&nbsp;&nbsp;')}
</div>
</div>
</div>
</div>
</div>
`;

View file

@ -59,71 +59,77 @@
<button class="btn btn-info w-100 mx-auto" onclick="this.parentElement.parentElement.parentElement.close();">X</button>
</div>
</div>
<div class="modal-body wrapper">
<div class="colorpicker-color" style="background-color: #f8f8f8"></div>
<div class="colorpicker-color" style="background-color: #cdcdcd"></div>
<div class="colorpicker-color" style="background-color: #111111"></div>
<div class="colorpicker-color" style="background-color: #ff0000"></div>
<div class="colorpicker-color" style="background-color: #a34b4b"></div>
<div class="colorpicker-color" style="background-color: #ffc9c9"></div>
<div class="colorpicker-color" style="background-color: #957977"></div>
<div class="colorpicker-color" style="background-color: #c4281c"></div>
<div class="colorpicker-color" style="background-color: #da867a"></div>
<div class="colorpicker-color" style="background-color: #694028"></div>
<div class="colorpicker-color" style="background-color: #cc8e69"></div>
<div class="colorpicker-color" style="background-color: #a05f35"></div>
<div class="colorpicker-color" style="background-color: #7c5c46"></div>
<div class="colorpicker-color" style="background-color: #eab892"></div>
<div class="colorpicker-color" style="background-color: #da8541"></div>
<div class="colorpicker-color" style="background-color: #aa5500"></div>
<div class="colorpicker-color" style="background-color: #ffcc99"></div>
<div class="colorpicker-color" style="background-color: #e29b40"></div>
<div class="colorpicker-color" style="background-color: #ffaf00"></div>
<div class="colorpicker-color" style="background-color: #ffb000"></div>
<div class="colorpicker-color" style="background-color: #d7c59a"></div>
<div class="colorpicker-color" style="background-color: #f5cd30"></div>
<div class="colorpicker-color" style="background-color: #fdea8d"></div>
<div class="colorpicker-color" style="background-color: #e5e4df"></div>
<div class="colorpicker-color" style="background-color: #c1be42"></div>
<div class="colorpicker-color" style="background-color: #ffff00"></div>
<div class="colorpicker-color" style="background-color: #ffffcc"></div>
<div class="colorpicker-color" style="background-color: #a4bd47"></div>
<div class="colorpicker-color" style="background-color: #7f8e64"></div>
<div class="colorpicker-color" style="background-color: #a1c48c"></div>
<div class="colorpicker-color" style="background-color: #3a7d15"></div>
<div class="colorpicker-color" style="background-color: #4b974b"></div>
<div class="colorpicker-color" style="background-color: #00ff00"></div>
<div class="colorpicker-color" style="background-color: #ccffcc"></div>
<div class="colorpicker-color" style="background-color: #27462d"></div>
<div class="colorpicker-color" style="background-color: #287f47"></div>
<div class="colorpicker-color" style="background-color: #789082"></div>
<div class="colorpicker-color" style="background-color: #9ff3e9"></div>
<div class="colorpicker-color" style="background-color: #12eed4"></div>
<div class="colorpicker-color" style="background-color: #f2f3f3"></div>
<div class="colorpicker-color" style="background-color: #00ffff"></div>
<div class="colorpicker-color" style="background-color: #008f9c"></div>
<div class="colorpicker-color" style="background-color: #04afec"></div>
<div class="colorpicker-color" style="background-color: #80bbdb"></div>
<div class="colorpicker-color" style="background-color: #b4d2e4"></div>
<div class="colorpicker-color" style="background-color: #0d69ac"></div>
<div class="colorpicker-color" style="background-color: #1b2a35"></div>
<div class="colorpicker-color" style="background-color: #afddff"></div>
<div class="colorpicker-color" style="background-color: #6e99ca"></div>
<div class="colorpicker-color" style="background-color: #74869d"></div>
<div class="colorpicker-color" style="background-color: #2154b9"></div>
<div class="colorpicker-color" style="background-color: #002060"></div>
<div class="colorpicker-color" style="background-color: #0000ff"></div>
<div class="colorpicker-color" style="background-color: #b1a7ff"></div>
<div class="colorpicker-color" style="background-color: #a3a2a5"></div>
<div class="colorpicker-color" style="background-color: #6225d1"></div>
<div class="colorpicker-color" style="background-color: #b480ff"></div>
<div class="colorpicker-color" style="background-color: #8c5b9f"></div>
<div class="colorpicker-color" style="background-color: #6b327c"></div>
<div class="colorpicker-color" style="background-color: #aa00aa"></div>
<div class="colorpicker-color" style="background-color: #635f62"></div>
<div class="colorpicker-color" style="background-color: #ff00bf"></div>
<div class="colorpicker-color" style="background-color: #ff66cc"></div>
<div class="colorpicker-color" style="background-color: #e8bac8"></div>
<div class="modal-body">
<div class="wrapper">
<div class="colorpicker-color" style="background-color: #f8f8f8"></div>
<div class="colorpicker-color" style="background-color: #cdcdcd"></div>
<div class="colorpicker-color" style="background-color: #111111"></div>
<div class="colorpicker-color" style="background-color: #ff0000"></div>
<div class="colorpicker-color" style="background-color: #a34b4b"></div>
<div class="colorpicker-color" style="background-color: #ffc9c9"></div>
<div class="colorpicker-color" style="background-color: #957977"></div>
<div class="colorpicker-color" style="background-color: #c4281c"></div>
<div class="colorpicker-color" style="background-color: #da867a"></div>
<div class="colorpicker-color" style="background-color: #694028"></div>
<div class="colorpicker-color" style="background-color: #cc8e69"></div>
<div class="colorpicker-color" style="background-color: #a05f35"></div>
<div class="colorpicker-color" style="background-color: #7c5c46"></div>
<div class="colorpicker-color" style="background-color: #eab892"></div>
<div class="colorpicker-color" style="background-color: #da8541"></div>
<div class="colorpicker-color" style="background-color: #aa5500"></div>
<div class="colorpicker-color" style="background-color: #ffcc99"></div>
<div class="colorpicker-color" style="background-color: #e29b40"></div>
<div class="colorpicker-color" style="background-color: #ffaf00"></div>
<div class="colorpicker-color" style="background-color: #ffb000"></div>
<div class="colorpicker-color" style="background-color: #d7c59a"></div>
<div class="colorpicker-color" style="background-color: #f5cd30"></div>
<div class="colorpicker-color" style="background-color: #fdea8d"></div>
<div class="colorpicker-color" style="background-color: #e5e4df"></div>
<div class="colorpicker-color" style="background-color: #c1be42"></div>
<div class="colorpicker-color" style="background-color: #ffff00"></div>
<div class="colorpicker-color" style="background-color: #ffffcc"></div>
<div class="colorpicker-color" style="background-color: #a4bd47"></div>
<div class="colorpicker-color" style="background-color: #7f8e64"></div>
<div class="colorpicker-color" style="background-color: #a1c48c"></div>
<div class="colorpicker-color" style="background-color: #3a7d15"></div>
<div class="colorpicker-color" style="background-color: #4b974b"></div>
<div class="colorpicker-color" style="background-color: #00ff00"></div>
<div class="colorpicker-color" style="background-color: #ccffcc"></div>
<div class="colorpicker-color" style="background-color: #27462d"></div>
<div class="colorpicker-color" style="background-color: #287f47"></div>
<div class="colorpicker-color" style="background-color: #789082"></div>
<div class="colorpicker-color" style="background-color: #9ff3e9"></div>
<div class="colorpicker-color" style="background-color: #12eed4"></div>
<div class="colorpicker-color" style="background-color: #f2f3f3"></div>
<div class="colorpicker-color" style="background-color: #00ffff"></div>
<div class="colorpicker-color" style="background-color: #008f9c"></div>
<div class="colorpicker-color" style="background-color: #04afec"></div>
<div class="colorpicker-color" style="background-color: #80bbdb"></div>
<div class="colorpicker-color" style="background-color: #b4d2e4"></div>
<div class="colorpicker-color" style="background-color: #0d69ac"></div>
<div class="colorpicker-color" style="background-color: #1b2a35"></div>
<div class="colorpicker-color" style="background-color: #afddff"></div>
<div class="colorpicker-color" style="background-color: #6e99ca"></div>
<div class="colorpicker-color" style="background-color: #74869d"></div>
<div class="colorpicker-color" style="background-color: #2154b9"></div>
<div class="colorpicker-color" style="background-color: #002060"></div>
<div class="colorpicker-color" style="background-color: #0000ff"></div>
<div class="colorpicker-color" style="background-color: #b1a7ff"></div>
<div class="colorpicker-color" style="background-color: #a3a2a5"></div>
<div class="colorpicker-color" style="background-color: #6225d1"></div>
<div class="colorpicker-color" style="background-color: #b480ff"></div>
<div class="colorpicker-color" style="background-color: #8c5b9f"></div>
<div class="colorpicker-color" style="background-color: #6b327c"></div>
<div class="colorpicker-color" style="background-color: #aa00aa"></div>
<div class="colorpicker-color" style="background-color: #635f62"></div>
<div class="colorpicker-color" style="background-color: #ff00bf"></div>
<div class="colorpicker-color" style="background-color: #ff66cc"></div>
<div class="colorpicker-color" style="background-color: #e8bac8"></div>
</div>
<div class="input-group mt-2">
<input type="text" class="form-control bg-dark" placeholder="HEX Code..">
<button id="p+bodypart_customhex" class="btn btn-primary">Set</button>
</div>
</div>
</dialog>
<dialog id="p+outfit_create" class="polyplus-modal" style="width: 375px; border: 1px solid #484848; background-color: #181818; border-radius: 20px; overflow: hidden;">