diff --git a/README.md b/README.md index fdfa9a7..f7fe71d 100644 --- a/README.md +++ b/README.md @@ -15,4 +15,4 @@ Join our Discord: - + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e6ab64d..abe7838 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3078,9 +3078,9 @@ } }, "node_modules/mongoose": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.4.0.tgz", - "integrity": "sha512-eBDrueap1Zx3qFrcYylTiqTFlL5iTEaYAxoDF1MSRdipwAzChQRMJve+vxHtxPhI2q5tmf9RYHfZwXfTUHPd3g==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.4.6.tgz", + "integrity": "sha512-ZAfNCWgXhwev6k/+rMzjHIJ/+wLkundQU/i+aUTqmCgGoYqc+B5e4EC4Y3E1XaLzNXiWID1/vocSM6zs5IAGvA==", "dependencies": { "bson": "^4.6.2", "kareem": "2.4.1", @@ -4354,9 +4354,9 @@ } }, "node_modules/undici": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.8.0.tgz", - "integrity": "sha512-1F7Vtcez5w/LwH2G2tGnFIihuWUlc58YidwLiCv+jR2Z50x0tNXpRRw7eOIJ+GvqCqIkg9SB7NWAJ/T9TLfv8Q==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.10.0.tgz", + "integrity": "sha512-c8HsD3IbwmjjbLvoZuRI26TZic+TSEe8FPMLLOkN1AfYRhdjnKBU6yL+IwcSCbdZiX4e5t0lfMDLDCqj4Sq70g==", "engines": { "node": ">=12.18" } @@ -6938,9 +6938,9 @@ } }, "mongoose": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.4.0.tgz", - "integrity": "sha512-eBDrueap1Zx3qFrcYylTiqTFlL5iTEaYAxoDF1MSRdipwAzChQRMJve+vxHtxPhI2q5tmf9RYHfZwXfTUHPd3g==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.4.6.tgz", + "integrity": "sha512-ZAfNCWgXhwev6k/+rMzjHIJ/+wLkundQU/i+aUTqmCgGoYqc+B5e4EC4Y3E1XaLzNXiWID1/vocSM6zs5IAGvA==", "requires": { "bson": "^4.6.2", "kareem": "2.4.1", @@ -7928,9 +7928,9 @@ } }, "undici": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.8.0.tgz", - "integrity": "sha512-1F7Vtcez5w/LwH2G2tGnFIihuWUlc58YidwLiCv+jR2Z50x0tNXpRRw7eOIJ+GvqCqIkg9SB7NWAJ/T9TLfv8Q==" + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.10.0.tgz", + "integrity": "sha512-c8HsD3IbwmjjbLvoZuRI26TZic+TSEe8FPMLLOkN1AfYRhdjnKBU6yL+IwcSCbdZiX4e5t0lfMDLDCqj4Sq70g==" }, "universalify": { "version": "2.0.0", diff --git a/public/assets/css/account.css b/public/assets/css/account.css index 47da37e..bbed44e 100644 --- a/public/assets/css/account.css +++ b/public/assets/css/account.css @@ -12,9 +12,11 @@ /* Account settings sidebar */ .account-sidebar .user { - text-align: center; margin: 55px auto; width: fit-content; + display: flex; + flex-flow: column; + align-items: center; } .account-sidebar .user .miiname { font-size: 1.2rem; @@ -341,4 +343,4 @@ footer { .setting-card .setting-list { grid-template-columns: auto; } -} \ No newline at end of file +} diff --git a/public/assets/css/main.css b/public/assets/css/main.css index e32aaaa..c60b039 100644 --- a/public/assets/css/main.css +++ b/public/assets/css/main.css @@ -638,8 +638,8 @@ section.update-signup div.circle { /* the next 4 lines make it so the circle is always the same aspect ratio and covers enough of the screen */ width: 2591px; height: 1454px; - min-width: 135vw; - min-height: 76vw; /* yes, this is supposed to be in vw */ + min-width: 145vw; + min-height: 13vw; /* yes, this is supposed to be in vw */ border-radius: 100%; position: absolute; top: 0; diff --git a/public/assets/css/partials/footer.css b/public/assets/css/partials/footer.css index 8e64a29..da71bc4 100644 --- a/public/assets/css/partials/footer.css +++ b/public/assets/css/partials/footer.css @@ -127,8 +127,8 @@ footer .bandwidth-raccoon-wrapper .text-bubble:after { z-index: 1; border-style: solid; border-color: var(--bg-shade-3) transparent; - border-width: 10px 10px 0; - bottom: -10px; + border-width: 12px 12px 0; + bottom: -9px; right: 60px; margin-left: -10px; } diff --git a/public/assets/js/miieditor.js b/public/assets/js/miieditor.js index 58e7f8e..cd90a4c 100644 --- a/public/assets/js/miieditor.js +++ b/public/assets/js/miieditor.js @@ -1,4 +1,12 @@ -// This file gets automatically bundled with browserify when running the start script. This also means that after any update you're gonna need to restart the server to see any changes. +/** + * Compilation note: + * This file gets automatically bundled with browserify when running the start script. + * This also means that after any update you're gonna need to restart the server to see any changes. + * + * browserify is needed for the use of require() in the browser + */ +const Mii = require('mii-js'); +const newMiiData = 'AwAAQOlVognnx0GC2qjhdwOzuI0n2QAAAGBzAHQAZQB2AGUAAAAAAAAAAAAAAEBAAAAhAQJoRBgmNEYUgRIXaA0AACkAUkhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAANeC'; // Prevent the user from reloading or leaving the page window.onbeforeunload = function (e) { @@ -32,33 +40,56 @@ window.addEventListener('resize', () => { setCanvasScale(); }); -// MII RENDERER +let mii; // global mii object -const Mii = require('mii-js'); +// this initalizes a mii for editing +// returns if mii data was parsed successfully +function initializeMiiData(encodedUserMiiData) { + console.group('Initalizing Mii data'); + console.log('encoded mii data:', encodedUserMiiData); + + // We initialize the Mii object + try { + console.log('Attempting to parse mii data'); + mii = new Mii(Buffer.from(encodedUserMiiData, 'base64')); + } catch (err) { + console.error('failed to decode mii data', err); + console.groupEnd(); + return false; + } + + // We set the img sources for the unedited miis in the save animation + console.log('grabbing rendered miis for later use'); + const miiStudioNeutralUrl = mii.studioUrl({ + width: 512, + bgColor: '13173300', + }); + const miiStudioSorrowUrl = mii.studioUrl({ + width: 512, + bgColor: '13173300', + expression: 'sorrow', + }); + document.querySelector('.mii-comparison img.old-mii').src = miiStudioNeutralUrl; + document.querySelector('.mii-comparison.confirmed img.old-mii').src = miiStudioSorrowUrl; + console.log('initialization complete'); + console.groupEnd(); + return true; +} // The Mii data is stored in a script tag in the HTML, so we can just grab it and then remove the element const encodedUserMiiData = document.querySelector( 'script#encodedUserMiiData' ).textContent; document.querySelector('script#encodedUserMiiData').remove(); -console.log('encodedMiiData', encodedUserMiiData); -// We initialize the Mii object -const mii = new Mii(Buffer.from(encodedUserMiiData, 'base64')); - -// We set the img sources for the unedited miis in the save animation -const miiStudioNeutralUrl = mii.studioUrl({ - width: 512, - bgColor: '13173300', -}); -const miiStudioSorrowUrl = mii.studioUrl({ - width: 512, - bgColor: '13173300', - expression: 'sorrow', -}); -document.querySelector('.mii-comparison img.old-mii').src = miiStudioNeutralUrl; -document.querySelector('.mii-comparison.confirmed img.old-mii').src = - miiStudioSorrowUrl; +// is valid mii data +const validMiiData = initializeMiiData(encodedUserMiiData); +if (!validMiiData) { + const shouldContinue = window.confirm('Found corrupted mii data, want to continue with a new Mii?'); + if (!shouldContinue) + window.location.assign('/account'); + initializeMiiData(newMiiData); +} // we keeep the images here so we can cache them when we need to change the build/height const miiFaceImg = new Image(); @@ -444,8 +475,8 @@ document const miiData = mii.encode().toString('base64'); const tokenType = document.cookie.split('; ').find(row => row.startsWith('token_type=')).split('=')[1]; const accessToken = document.cookie.split('; ').find(row => row.startsWith('access_token=')).split('=')[1]; - - fetch('http://api.pretendo.cc/v1/user', { + + fetch('https://api.pretendo.cc/v1/user', { method: 'POST', headers: { 'Accept': 'application/json', diff --git a/views/account/upgrade.handlebars b/views/account/upgrade.handlebars index 5ef9a07..8dea3df 100644 --- a/views/account/upgrade.handlebars +++ b/views/account/upgrade.handlebars @@ -62,7 +62,7 @@

- {{this.price}} / {{ locale.upgrade.month }} + {{this.price}} / {{ ../locale.upgrade.month }}

{{/each}} diff --git a/views/partials/docs-sidebar.handlebars b/views/partials/docs-sidebar.handlebars index 8c63f45..714fb5a 100644 --- a/views/partials/docs-sidebar.handlebars +++ b/views/partials/docs-sidebar.handlebars @@ -17,11 +17,10 @@
{{ locale.docs.sidebar.juxt_err }}
- JXT-598-0009 - JXT-598-0010 - JXT-598-0011 - JXT-598-0015 - JXT-598-0020 + JXT-598-0009 + JXT-598-0010 + JXT-598-0011 + JXT-598-0020