Skip to content

Commit

Permalink
Database refactor (#46)
Browse files Browse the repository at this point in the history
* Created the new database models, removed the user model (this *will* break everything)

https://tenor.com/uqNk.gif

* began implementing the updated database models in requests. While all should be working now, more testing is still required

* cleaned up now unused middleware. More work on implementing the db rewrite

* Finished moving messages over to new db model. Fixed a bug where the userMap was pulling an incorrect value for the scrren_name.

* More work on dynamic notifications

* moved notifications render to be async in order to support database calls for dynamic notification content.

* Fixed followers not displaying on user pages. Cleaned up a lot of the UI. Implemented dynamic notifications system

* Fixed cdn urls on the Wii U pages. Fixed a bug with messages pages showing your own name and Mii in threads. Added a flag for removing a post

* Updated some localization text. Added check to prevent notifications breaking when a reference ID does not resolve to a valid user. Updated the following list to use the correct cdn url for community icons.

* Fixed typo in header URL for the announcements page

* Update drawing and screenshot domains to resolve http errors when loading some images

* Removed add friend button. Added profile badges to me page. Fixed typo in paintings domain that prevented them from loading

* Fixed (most) of the web frontend.

* updated auth urls

* Updated post meta data domains

* Fixed post length check not being performed. Updated portal css to prevent text from running off the screen

* Added service notice messages to Juxt web login

* Fixed bug that prevented users from posting. Added additional filtering to new post body content

* Added missing doctype flag at beginning of portal files. Re-worked notification object in DB and fixed bug where notifications would not be marked read. Added initial schema to support reporting a post

* UI redesign (#45)

* Added PID to all requests. Added 404 page. Added new CSS. Updated communities and all communities page

* Added community, feed, messages, and post template redesigns. Fixed relevant endpoints

* Added redesigned user pages. Added dedicated endpoint for images. Moved user endpoint to be /users/:id

* Added support to Yeah! on a post. Began trimming down the juxt.js file. General code cleanup

* Added settings page. More code cleanup

* Updated Yeah! function to update the parent element and the yeah count text

* Added badges and other profile content to the profile page. Added ratelimit to empathy count.  Yeah count is now updated locally before confirming with the server

* Moved partial templates to separate directory. Combined me and user pages to reduce repeated code. Added support for viewing followers and following. Added support for only sending template content for user pages when the pjax flag is set (yay faster loading times on the Wii U!)

* Added support for tab view in communities page. Fixed Yeah! button not working when new tab is loaded. Added post view page with replies.

* Added support for message threads

* Added support for loading more posts in user pages and communities. Implemented proper error page.

* Added support for making posts to communities

* Added support for following users

* Implemented saving settings. Added support for sending messages. Added option to send screenshot in user messages

* Added support for replies. Added notification templates.

* Added support for new account creation. Added additional checks for user accounts existing before displaying a page.

* Finished implementing new user setup.
Known Issues:
[ ] Notifications are not implemented
[ ] You cannot select your game experience on the first_run.ejs page using the d-pad
[ ] Spoilers are not respected in post view
[ ] Messages button does not work on profile pages
[ ] Back button is not implemented
[ ] While loading, the messages page does not always scroll to the bottom of the page

* Fixed auth being flagged for the background image (lol)

* Fixed titles page not showing new communities. Fixed rate limit to address duplicate posts from being created. Fixed alignment of replies on post page. General code cleanup

* Fixed user tabs not loading correctly. Fixed community links on user pages not loading. Fixed the bug where all tabs would increasingly send more requests each time you click one. Created new handling for duplicate posts error pages

* Locked user operation when new post is created. Added 1 level of proxy trust to (hopefully) fix the rate limit issue.

* Added message to indicate features that aren't ready yet. Updated dependencies. Added another layer of trust to the rate limiter. Addressed invalid config from updated mongoose library.

* Fixed load more being shown on every post. Fixed new message button on profile pages not working. Addressed sounds not being played consistently when interacting with the UI. Added minified css and js. Added support for refreshing the page (Y) and going back (B) using the button inputs on the gamepad.

* Began implementation of notifications. Implemented back button on nav bar. Increased message thread limit.

* Added support for new account creation. Added additional checks for user accounts existing before displaying a page.

* Fixed some characters incorrectly being caught by the text filter. Fixed the nav-bar sometimes not re-appearing when using the back button. Fixed an error where attempting to reply to a post in the announcements community would result in being soft-locked in the applet with a forbidden message. Fixed the nav-bar showing a scroll bar on the 404 page

* Fixed nav-bar sometimes having a scroll bar. Replaced the popular communities query to now look at the number of new posts in the last 24 hours to determine the order

* Fixed issue where follow notifications would stack no matter how long the last notification was last updated.

* Tweaked some logic with notifications

* WIP community structure changes

* Fixed /titles/show redirecting to the wrong place. Minor css tweaks, code cleanup

* Added support for spoiler posts

* Addressed issue where using certain unicode characters in a name would reverse the text on a notification

* Began work on fixing Juxt web client

* Reworked web UI to work with rewrite. Lots and lots of small bug fixes

* Added error page for message threads on web. CSS tweaks. Added lang tag to html documents

* Update login cookie domain

* Updated cdn URL's for web interface

* updated web cdn (again, sorry)

* Fixed url for the mii image on nav-bar for users on Chromium browsers

* updating CDN url for messages and notifications

* fixed web user page banner

* Fixed crash when web token fails to fetch. Fixed typo on communities page that prevented it from loading sometimes

* Fixed crash when web token fails to fetch. Fixed typo on communities page that prevented it from loading sometimes

* (hopefully) Fixed negative yeahs from occurring

* Update post.js to simplify empathy logic

* Added view to see the most recent people to yeah! a post. Added tab to user page to view yeahed! posts. CSS tweaks

* Updated yeah endpoint to actually show posts in the order of most recently yeahed!

* Fixed scrolling in activity feed. Fixed tapping back button refreshing page. Added support for Related Communities. Fixed Related communities showing up in popular page. CSS tweaks

* 3DS redesign start. Added communities and all communities page

* Finished styling the users yeah list. Added support for displaying topic tags in the post body. Fixed spoiler button not disappearing after clicking it. Added additional check to ensure yeah count cannot be negative.

* Added support for browsing topic tags in the applet

* Added check to open communities from WWP

* Re-added support for downloading user data. Fixed mii images not working on Juxt mobile.

* Updated web icons and manifest

* Updated check for newer Mii name to actually update the user settings object

* Added Content-Disposition header to user data export file

* More 3DS work. Changed post ID format to be inline with the official format

* Finished schema refactor and related upkeep on portal endpoint TODO: web and ctr

* Fixed posts and user page on web. Added missing elements on PNID schema. Fixed head partials

* Fixed communities db query not including announcement communities. Added check to see if community is sub community when displaying icons

* Updated post id length. Updated schema for reports

* Fixed notifications schema

* Fixed new messages not being created. Changed new message button to check for being friends instead of mutual followers. Fixed follower notifications not working correctly. Added friends tab to user profile page. Added support for viewing pending friend requests (WIP, somewhat broken). Fixed notification and message badges not showing up on the Wii U.

* Updated to new token format

* Fixed token variable name in processServiceToken

* updated token format

* Implemented /titles and /titles/:id/new on 3DS. Began implementing new custom Pjax module for 3DS. Changed friends GRPC variable names in anticipation of adding support for accounts GRPC functionality

* Reworked auth middleware to support new login system. Fix bug where usernames were not shown in notifications in the web client. Added error page for when a user attempts to log into Juxt on the web for the first time. Updated dependencies

* Refactored auth middleware. Added typescript and linter config files. Updated grpc dependency to use typescript version (still needs to be build manually...will fix tomorrow). Added minified 3DS css and js files.

* Finished refactor of auth middleware. Removed account database connection and updated relevant files to reflect this change. General code cleanup

* Fixed typo in auth middleware

* CSS tweaks on 3DS. Added new cdn domain for 3DS to test

* Removed unused admin files. Updated header files for Portal, CTR, and Web to use built in CF cache instead of BunnyCDN

* Removed unused admin files. Updated header files for Portal, CTR, and Web to use built in CF cache instead of BunnyCDN

* Added support for the activity feed, user page, and topic tags on 3DS. Added additional error pages for missing features on 3DS

* Adding support for posting from the 3DS. Added pjax support for tabs. Added support for notifications and viewing friend requests. Added support for bmp paintings from the 3DS. CSS tweaks and bug fixes.

* Added support for the first run experience on 3DS

* Added support for following users and communities on 3DS. Added check to see if title supports screenshots before allowing user to select them

* Added support for following users and communities on 3DS. Added check to see if title supports screenshots before allowing user to select them

* Fixed alignment issue with follow button when related communities are displayed. Added support for viewing related communities

* Added support for viewing and sending messages on 3DS. Moved friend requests tab to the user page

* Added support for reporting a post on the Wii U

* Added report type for piracy, fixed typo

* Added support for removing your own posts and replies

* Added support for viewing user reports on Juxt web. Added deleted profile page. Added bandwidth to the 404 page. CSS fixes

* Fixed posts not being marked as verified from the applet. Added support for reporting replies. Added support for moderators deleting posts and replies from the applet.

* Added more meta-data to reports for tracking purposes. Reports are now filtered out of the admin page if they have already been resolved. Fixed artifact issue with the nav_bar in the web endpoint

* Updated auth middleware to catch issues with authenticating with the account server.

* Fixed web manifest not being allowed through auth middleware

* Fixed manifest images not loading in chrome

* Updated manifest to use absolute url to fix the PWA breaking on mobile

* fixed PWA start path (sorry, it worked the first time I tested)

* Fixed font rendering on posts on the mobile site. Updated the forgot password link on the login page. Fixed user banners not being loaded.

* temp - added explicit beta checks in middleware

* updated beta checks

* Updated auth to support different domains. Started working on segregated auth middleware

---------

Co-authored-by: CaramelKat <[email protected]>
Co-authored-by: Jemma Poffinbarger <[email protected]>
Co-authored-by: Jonathan Barrow <[email protected]>

---------

Co-authored-by: Jemma <[email protected]>
Co-authored-by: CaramelKat <[email protected]>
Co-authored-by: Jonathan Barrow <[email protected]>
  • Loading branch information
4 people authored Oct 22, 2023
1 parent 7ee24db commit 2e4febb
Show file tree
Hide file tree
Showing 178 changed files with 19,803 additions and 15,938 deletions.
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
dist
*.min.js
59 changes: 59 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"env": {
"node": true,
"commonjs": true,
"es6": true
},
"parser": "@typescript-eslint/parser",
"globals": {
"BigInt": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
"plugins": [
"@typescript-eslint"
],
"rules": {
"require-atomic-updates": "warn",
"no-case-declarations": "off",
"no-empty": "off",
"no-console": "off",
"linebreak-style": "off",
"no-global-assign": "off",
"prefer-const": "error",
"no-var": "error",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
"no-extra-semi": "off",
"@typescript-eslint/no-extra-semi": "error",
"@typescript-eslint/no-empty-interface": "warn",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/typedef": "error",
"@typescript-eslint/explicit-function-return-type": "error",
"keyword-spacing": "off",
"@typescript-eslint/keyword-spacing": "error",
"curly": "error",
"brace-style": "error",
"one-var": [
"error",
"never"
],
"indent": [
"error",
"tab",
{
"SwitchCase": 1
}
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}
16 changes: 10 additions & 6 deletions config.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,30 @@
"port": 80
},
"account_server_domain": "",
"account_server": "",
"account_server_secret": "",
"X-Nintendo-Client-ID": "",
"X-Nintendo-Client-Secret": "",
"mongoose": {
"uri": "mongodb://localhost:27017",
"database": "name",
"database": "database",
"options": {
"useNewUrlParser": true,
"useUnifiedTopology": true
}
},
"account_db": {
"uri": "mongodb://localhost:27017",
"database": "name",
"database": "database",
"options": {
"useNewUrlParser": true,
"useUnifiedTopology": true
}
},
"authorized_PNIDs" : [
0
]
}
"aws": {
"spaces": {
"key": "",
"secret": ""
}
}
}
Loading

0 comments on commit 2e4febb

Please sign in to comment.