A Flask webapp using Python Image Library to reconstruct and display a summary of the player and farm from a Stardew Valley save file. A deployed instance is hosted at upload.farm.
config.py goes in the sdv subfolder. The SDV_APP_SETTINGS environment variable is used in order to specify which Python object to load for configuration from config.py as per Flask's config.from_object. In that file the following settings can be used:
UPLOAD_FOLDER where uploaded files are stored
SECRET_KEY for Flask's sessions etc.
MAX_CONTENT_LENGTH in bytes for uploads
PASSWORD_ATTEMPTS_LIMIT (currently unused)
PASSWORD_MIN_LENGTH used to determine minimum password length for registering users
IMGUR_CLIENTID for imgur integration
IMGUR_SECRET for imgur integration
IMGUR_DIRECT_UPLOAD to upload directly to imgur by sending file rather than by directing imgur to url (can't redirect imgur to localhost, for example, when testing)
RECAPTCHA_ENABLED for the ReCaptcha on the signup form
RECAPTCHA_SITE_KEY as above
RECAPTCHA_SECRET_KEY as above
ANALYTICS_ID to report interactions server-side to Google Analytics using google-measurement-protocol
DEBUG set to True for helpful debugging; never set to True in production environment
USE_SQLITE NOTE: in testing we've moved to Postgres, so this probably doesn't work any more
DB_SQLITE
DB_NAME
DB_USER
DB_PASSWORD
As per flask-mail docs and your email server
Install prerequisites using a tool like pip (pip3 if you're using Python 3) by running the following command from the root directory:
pip install -r requirements.txtYou need PostgreSQL installed and running. Then create a database:
createdb sdv_summary_developmentTo create a config file for SDV-Summary:
cp sdv/config.py.sample sdv/config.pyModify sdv/config.py to specify the user name and password for the PostgreSQL database you created.
Once the config file has been written, run createadmin.py and createdb.py and follow the prompts to create the database structure:
SDV_APP_SETTINGS=development python sdv/createadmin.py
SDV_APP_SETTINGS=development python sdv/createdb.pyTo run, the templating engine jinja2 needs sdv\templates\analytics.html to exist.
Run the app using Flask:
FLASK_APP=runserver.py flask runAssets for image generation go in sdv\assets\[subfolder]. Assets used as-is go in sdv\static\assets\[subfolder].
In order to keep the code style consistent, this project is formatted using Black.
However, to avoid hiding previous changes in git blame the file .git-blame-ignore-revs has been introduced. This file
can be used with the flag --ignore-revs-file for by adding it to the git config with:
git config blame.ignoreRevsFile .git-blame-ignore-revs
Thank you to our translators, specifically:
- Leonardo Francisco ([email protected]) for Brazilian Portuguese
- Yiming Wang ([email protected]) for Chinese
- Jhordi Rodriguez ([email protected]) for Spanish
- Federico Grandi ([email protected]) for Italian