Skip to content

Generate data files for Wii Channels that have the latest news, forecast data, etc.

License

Notifications You must be signed in to change notification settings

RiiConnect24/File-Maker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File-Maker

License Discord

These scripts will create static data files for these Wii Channels:

  • Everybody Votes Channel
  • Forecast Channel
  • News Channel
  • Nintendo Channel
  • Check Mii Out Channel/Mii Contest 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.

Services and Modules

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 and Check Mii Out 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.
  • feedparser to parse RSS feeds.
  • newspaper for news article scraping.
  • nlzss for LZ compressing the files.
  • 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.

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.

Installing Requirements

These scripts run on Python 3.

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.