Giter Site home page Giter Site logo

riiconnect24 / riitag Goto Github PK

View Code? Open in Web Editor NEW
15.0 15.0 7.0 259.06 MB

RiiTag is a customizable gamertag for the Wii.

Home Page: https://tag.rc24.xyz/

License: GNU Affero General Public License v3.0

JavaScript 33.53% HTML 2.51% CSS 48.48% Pug 15.47%
game js node riiconnect24 tag wii

riitag's People

Contributors

bennyman123abc avatar dependabot[bot] avatar dhtdht020 avatar exorcism0666 avatar kcrpl avatar larsenv avatar malmeloo avatar theshadoweevee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

riitag's Issues

Redo Overlay Previews

The previews are currently inconsistent. Just create a consistent preview for different overlays.

Background Gallery

A gallery to select your background rather than a monolithic dropdown menu

Admin Panel

Create and design an admin portal to manage various parts of the website.

Determined functionality includes:

  • Regenerate a user's tag without user interaction

Add support for 3DS games via webhook

As you know, for the Wii and the Wii U to integrate with RiiTag, it basically uses a webhook to update your tag with a game ID. For Wii, you use a USB Loader, and for Wii U, you use a plugin.

I want there to be a way to update your RiiTag when you play a 3DS game, but I'm not sure what the best way to do that is. @twosecslater was looking into it after he made the Wii U plugin, but I don't think he got anything working. I don't think Luma3DS wasn't built in mind to support plugins, but there are forks of it. There's also this.

I remember shutterbug had some sort of rich presence for the 3DS, I think he did that by using some Python scripts? Doing it that way wouldn't be ideal.

RiiTag in priiloader or something similar?

Copied from Discord:

TheTechRobo Aujourd'hui à 11:42
 Sorry if this is a stupid question, could RiiTag ever be added to priiloader or something like that? I.e. when a channel [including the Disc Channel] is launched it'll contact the RiiTag Servers? I don't use USB loaders, I prefer discs.

Allow CMOC Entries to be Used as Miis

This could be implemented fairly simply by changing the data put into mii-data and allowing the server to handle the download of the file and rendering of the image through the current rendering endpoint. See #16

[Feature Request] Add a way to create a RiiTag without Discord

What do you want to be added?

I think that RiiTag shouldn't be limited to Discord accounts. In my case, I don't feel comfortable using Discord given how many times it has had security problems, therefore potentially allowing attackers to get a hold of your information.

How could this be implemented?

I've thought of two potential options (with pros and cons listed):

  • Have more SSO options.
    • This would fix this issue, but may not be ideal since there are a lot of account types out there.
  • Have a RiiTag account system
    • For me, this is ideal, allowing you to create an account with your desired tag. However, auth servers are a problem in that regard.

I hope it's appreciated the amount of time I took to write this feature request. :)

Make a Wii Channel forwarder for RiiTag

Here's a cool idea that was done with DUTag (a gamertag that doesn't work anymore) - someone made a forwarder WAD for the Internet Channel that just opened up your tag on the Internet Channel.

I like the idea, and the WAD is here, me or someone else could edit it so it has the RiiTag logo instead. You're able to view the RiiTag in the Internet Channel since I have it so you can use http as well as https.

You have to have the DOL in the WAD replaced to point to the URL, but apparently ModMii can do it?

In the end we can have a tutorial to create your own WAD to see your RiiTag.

Add leaderboards / showing of popular games

We would like to make a page that shows the people with the most coins (the number of games played == the number of coins).

We also would like to make a page showing the most popular games.

For the former, I'm worried that a leaderboard would encourage people to find a way to cheat (you can only get 1 coin per minute, so it would be harder to rack up coins).

For the latter, we might have to make a new JSON file to keep track of the games rather than reading the games from everyone's JSON.

Blank cover displayed on tag

Here's something I noticed on some people's RiiTags - there's an empty space in between some covers. I think there's supposed to be a cover there, but I guess it shows up as a blank space when it can't find the cover?

Other tags that existed would display a "No Image" cover when it was missing, and then on the bottom of the cover show the game ID, but since I thought it didn't look good on the tag I removed functionality of that nature.

Also, I think the problem might be how Canvas creates new PNG instances and draws the cover image it downloaded into them.

Validate Inputs

Issue
As it stands, input's don't seem to be validated at all for RiiTags when editing. This is a problem as people can put whatever they want in some fields. This can range from unlimited text that will overflow on the tag image and cause bigger tag config sizes, to people being able to move between directories on the server to pick a background.

Severity: Low
Technically this can't be used maliciously other than causing huge file sizes with large copy-pastes and causing server-side errors, seeing as in order to directory hop you need to know both what the directory tree looks like AND the file name you're looking for, and even then you can only display the image as a background.

Why this needs to be fixed
There are two types of people to note here:

  1. People with access to the RiiTag Edit page:
    These people can type whatever they want into the open boxes such as the Nickname, Wii No., and Game ID's

  2. People who know how to create post requests and want to mess with their tag:
    If you know how to create post requests (cURL makes it easy if you know the command) it's a simple exercise to do whatever you want with you RiiTag.

{Note: Example RiiTag has been reverted and removed from this issue, everything below still applys}
For Example:

  • First it should be noted the Display Name and Wii Number are not limited, I can put whatever there.
  • Second, notice my background is set to ../data/avatars/98938149316599808.png. Doing this affectively broke my RiiTag, as now the background is stuck until I edit it properly, and any requests to tag.rc24.xyz/wii with my key return a 404 (But still update the coin count.) This one is particularly interesting as if the VPS is restarted the background will become unstuck and will now display Larsen's avatar as my background. (98938149316599808 being Larsen's Discord ID, you can replace it with any RiiTag users Discord ID in this directory for their avatar.)
  • Third, A small side effect of the RiiTag breaking from the background, the coin counter on the Tag doesn't update, while the one displayed on the webpage as text does.

While I specifically used the background as an example here, the same applies to the flag, and all other form values.

Possible Fix
The best way to fix this varies based on the field. Wii number and nickname just needs to be limited in characters for example, while background selection and other similar fields needs to be limited so that people can't directory jump.

How I've tested this
I tested this using both a local copy of the RiiTag server and the public version at https://tag.rc24.xyz

I can also include the cURL command I used for most of this, but for now I'm leaving it out to keep people from messing with their tags due to the server-side error's I've seen this can cause. (Many errors in my localhost testing, plus RiiTag as a whole froze for a few seconds during testing on the public server, oops!)

Use Discord avatars dynamically

So the feature with RiiTag to use your avatar from Discord - it works, but the avatars are stored in data/avatars and never update when someone changes their avatar on Discord.

Could we work out a way to make the avatars be updated?

Maybe every time the RiiTag reboots, it clears out the avatar folder?

Keep track of how many times people have played a game

RiiTag shows the latest games that people are playing, but in the JSON file it doesn't keep track of how many times people played a game.

If we could keep track of that, that would help with the leaderboards (see #17) and allow people to sort games by "most played" (we were going to have this implemented, but it didn't happen).

Handle Wii VC injects for Wii U

I'm currently updating the Wii U plugin (see RiiConnect24/UTag#3). Wii U games work flawlessly, but Wii VC injects aren't working. I currently send the whole TitleID (e.g. 0005000252535050 which is a Wii Sports inject). The last 8 numbers (52535050) are the ID4 of the title (RSPP).
RiiTag only seems to support ID6 for Wii games, so one has to enter RSPP01 - this won't work for VC injects.

Covers are downloaded from GameTDB, but it doesn't support ID4... How should we proceed? Is it even possible?

Minor RiiTag setup issues

I was setting up RiiTag locally in preparation for some work I was going to do, and I noticed some issues when running app.js for it's first boot.

  1. Based on the files from the repo, app.js, if it can't find the config, looks for config.json.example. This file however is named config.example.json in the repo, and causes errors when running app.js for the first time without manually renaming it.
  2. app.js uses the connect-datadog node library, but it is not included in the repos packages.json list for npm install.

While I fixed these issues on my fork, I felt that these weren't big enough issues to warrant a separate PR just to fix them.

Curated Backgrounds

Allow users to upload backgrounds to be reviewed and possibly accepted by admins.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.