A rewrite of Poly+, my quality-of-life browser extension for Polytoria. Built entirely fresh using the WXT extension framework, Typescript, and with added better overall code quality.
extension
1import { preferences } from "@/utils/storage";
2import { getUserDetails, bricksToCurrency } from "@/utils/utilities";
3
4export default defineContentScript({
5 matches: ['*://polytoria.com/*'],
6 main() {
7 getUserDetails()
8 .then((user) => {
9 if (!user) {
10 // Error page or event page most likely, where users are not authenticated
11 console.warn('[Poly+] Failure to get logged in user details.');
12 return;
13 };
14
15 preferences.getPreferences()
16 .then((values) => {
17 if (values.irlBrickPrice.enabled) {
18 const currency = bricksToCurrency(user.bricks, "USD");
19 if (currency) {
20 document.getElementsByClassName('brickBalanceCount')[0].textContent += ` (${currency})`;
21 };
22 };
23
24 if (values.hideNotificationBadges.enabled) {
25 const badges = document.getElementsByClassName('notif-nav notif-sidebar');
26 for (const badge of badges) {
27 badge.remove();
28 };
29 };
30 });
31 });
32 }
33});