Concat of friends and messages array

Concatinating friends and messages for bulk processing.

Added empty catch() and response.status check on getStadiaAvatar() to ignore all missing avatars. (Default to Stadia avatar)

Changing HTTP Response code from 404 to 200 for missing avatars (but a userID was supplied). CORS headers are not set for error pages in NGINX. This oculd be adressed by recompiling NGINX with more_headers.
This commit is contained in:
Victor Westerlund 2021-02-06 05:58:54 +01:00
parent a51f5ac8b5
commit d3ab9fae75
2 changed files with 22 additions and 8 deletions

View file

@ -9,7 +9,7 @@
$avatar = $db->get_avatar($user_id);
if(!$avatar) {
error("404","No avatar was found for the supplied userID");
error("200","No avatar was found for the supplied userID");
}
echo "{\"status\":\"OK\",\"avatar\":\"${avatar}\"}";

View file

@ -43,14 +43,21 @@
// Serialized group of selectors based on context
selectors(group,id = false) {
switch(group) {
case "me": return ".ksZYgc, .rybUIf";
case "friends": return `.Y1rZWd[data-playerid="${id}"] .Fnd1Pd, .w2Sl7c[data-playerid="${id}"] .drvCDc`;
case "me": return `
.ksZYgc,
.rybUIf
`;
case "friends": return `
c-wiz[data-p='%.@.null,"${id}"]'] .drvCDc,
.Y1rZWd[data-player-id="${id}"] .Fnd1Pd,
.Y1rZWd[data-playerid="${id}"] .Fnd1Pd,
.w2Sl7c[data-playerid="${id}"] .drvCDc
`;
}
}
add(selectors,avatar) {
this.sheet.insertRule(`${selectors} { background-image: url(${avatar}) !important; }`);
console.log(`${selectors} { background-image: url(${avatar}) !important; }`);
}
}
@ -75,9 +82,15 @@
// Fetch avatar and append to stylesheet
function replaceWithGravatar(group,playerID) {
getStadiaAvatar(playerID).then(response => {
if(response.status !== "OK") {
return false;
}
gravatar.pathname = "/avatar/" + response.avatar; // Append Gravatar hash
avatars.add(avatars.selectors(group,playerID),gravatar); // Add style override by group
});
}).catch(
// Ignore missing avatars
);
}
// ----
@ -101,10 +114,11 @@
clearTimeout(timeout);
timeout = setTimeout(() => {
const friends = document.querySelector("[jsname='FhFdCc']").children;
const messages = document.querySelector("[jsname='FhFdCc']").children;
let elements = [];
elements = Array.prototype.concat.apply(elements,document.querySelector("[jsaction='JIbuQc:mbLu7b']").children);
elements = Array.prototype.concat.apply(elements,document.querySelector("[jsname='FhFdCc']").children);
updateFamily("friends",messages);
updateFamily("friends",elements);
},700);
}