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 { getUserDetails } from "@/utils/utilities";
2import { preferences } from "@/utils/storage";
3
4import * as discovery from "./discovery";
5import * as view from "./view";
6
7export default defineContentScript({
8 matches: ['*://polytoria.com/store/*'],
9 main() {
10 preferences.getPreferences()
11 .then((values) => {
12 getUserDetails()
13 .then((user) => {
14 if (!user) {
15 // Error page or event page most likely, where users are not authenticated
16 console.warn('[Poly+] Failure to get logged in user details.');
17 return;
18 };
19
20 if (!window.location.pathname.split('/')[2]) {
21 // Discovery
22 if (values.irlBrickPrice.enabled) discovery.irlBrickPrice();
23 if (values.storeOwnedTags.enabled) discovery.ownedTags(user.userId);
24 } else {
25 // View
26 if (values.irlBrickPrice.enabled) view.irlBrickPrice();
27 if (values.tryItems.enabled) view.tryOn(user);
28 };
29 })
30 });
31 }
32});