riiconnect24 / riitag Goto Github PK
View Code? Open in Web Editor NEWRiiTag is a customizable gamertag for the Wii.
Home Page: https://tag.rc24.xyz/
License: GNU Affero General Public License v3.0
RiiTag is a customizable gamertag for the Wii.
Home Page: https://tag.rc24.xyz/
License: GNU Affero General Public License v3.0
The previews are currently inconsistent. Just create a consistent preview for different overlays.
A gallery to select your background rather than a monolithic dropdown menu
Post a tweet on behalf of the user when they play a new game.
Create and design an admin portal to manage various parts of the website.
Determined functionality includes:
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.
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.
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
Allow front page tags to be changed by changing ID values.
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.
I've thought of two potential options (with pros and cons listed):
I hope it's appreciated the amount of time I took to write this feature request. :)
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.
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.
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.
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:
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
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:
../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.)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!)
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?
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).
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?
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.
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.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.
Allow users to upload backgrounds to be reviewed and possibly accepted by admins.
Some overlays don't work properly without a specific font. Overlays need an option to force a font.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.