These scripts will create static data files for these Wii Channels:
- Everybody Votes Channel
- Forecast Channel
- News Channel
These files are downloaded on the Wii, and contain news, weather info, etc that the Channel(s) display, as well as influencing some games' environments.
We use the following services for this project:
- Datadog for analytics.
- For News Channel, Google Maps Geocoding API to get location coordinates.
- For Everybody Votes Channel, MySQL to hold votes and suggestions.
- Sentry for error logging.
- Webhooks to log when a script has been ran.
Some notable Python modules used in the project are:
- BeautifulSoup for HTML parsing.
- ElementTree to parse XML.
- feedparser to parse RSS feeds.
- newspaper for article scraping.
- requests for various HTTP requests.
- rsa to create an RSA signed SHA-1 (that the Wii verifies downloaded files with).
AccuWeather is used as the weather source for the Forecast Channel. For a list of news sources we use for the News Channel, refer to this webpage.
All files are LZ10 compressed; we use lzss
from the set of Nintendo DS/GBA compressors by CUE, because it can compress the files quite fast, which is desirable for our usage.
If you want to know the format of the files used by the Channels, you can look at our Kaitais, check the wiki, or look at the code.
These scripts run on Python 2.
Just run pip install -r requirements.txt
in the root folder and it'll install. You might have to run as sudo
due to permissions.
It's required to have a config.json
for each Channel in the Channels
folder. Fill out config.json.template
for the Channels you want to run this script for, and rename it to config.json
.
Run the scripts as modules, e.g. python -m Channels.Forecast_Channel.forecast
.