#+TITLE : Trackers
* About
The scripts in this repository build static webpages based on information from two sources:
- a structured set of =.org= files;
- APIs of selected third-party websites (so far: Discogs).
These pages can be used as a replacement for third-party services e.g. Backloggery.
* Dependencies
- =orgparse= (install via pip)
- =python3=
- =rclone= (for syncing to the server)
- =geopy= if you are tracking places visited (install via pip)
- =python3-discogs-client= if you are displaying a record collection (install via pip)
* General setup
** Structure of the .org files
See =demo.org= for an example.
** Setting the variables
Copy =variables-template.py= to =variables.py= and edit:
- =orgpath= : absolute path to the root directory in which =.org= files are stored, including trailing slash
- =localpath= : absolute path to this directory, including trailing slash
- =domain= : =https://yourdomain.tld= without trailing slash
- =rclonesiteroot= : path =rclone= uses to access your webserver
* Tracking games with a backloggery clone
** Setup
*** Fonts
Upload the fonts Lato, Titillium Web, and Material Icons to the directory =/fonts= on your server (I recommend [[https://gwfh.mranftl.com/fonts ][google-webfonts-helper ]]). Check the filenames are consistent with those in =gamebuild/backloggery.css= . Alternatively, you can load the fonts remotely and adjust the page head HTML generated by =gameskel.py= .
*** Setting the variables
In =variables.py= , edit:
- =trackgames= : set to =True=
- =gameserverpath= : path to directory on the server where files will be uploaded, including trailing slash
- =endlessgames= : a list of “endless” games in the format =title (console)=
- =description= : content for the “about” section (can include HTML tags)
- =gamestartyear= : year from which to begin tracking (an integer)
- =gamehue= : theme colour expressed as a hue from 0 to 360
- =consoles= : add or remove consoles following the format provided (=.png= images must be added to the build directory with a filename corresponding with the value of ="img"= for each console)
** Testing
- Run =python3 generategames.py local= to build in =gamebuild= .
* Tracking places visited using Leaflet
** Setup
Upload a CSS file to the server if necessary. Most CSS is set by Leaflet.
*** Setting the variables
In =variables.py= , edit:
- =trackplaces= : set to =True=
- =placeserverpath= : path to directory on the server where files will be uploaded, including trailing slash
- =placestartyear= : year from which to begin tracking (an integer)
- =placecss= : location of the CSS file you wish to apply, relative to the site root
** Testing
- Run =python3 generateplaces.py local= to build in =placebuild= . (This may take some time.)
- Check whether places are displayed accurately in the output file. If not, add regions/countries to disambiguate any incorrectly displayed places to the =disambig= dictionary in =variables.py= (see examples).
* Displaying a record collection (taking data from Discogs)
** Setup
- Upload a CSS file to the server for styling fonts etc; most CSS is set inline.
- Get a Discogs API token [[https://www.discogs.com/settings/developers ][here ]].
*** Setting the variables
In =variables.py= , edit:
- =trackrecords= : set to =True=
- =recordserverpath= : path to directory on the server where files will be uploaded, including trailing slash
- =recordcss= : location of the CSS file you wish to apply, relative to the site root
- =discogstoken= : the API token you generated
- =discogsuser= : your Discogs username
** Testing
- Run =python3 generaterecords.py local= to build in =recordbuild= .
* First run (or if adding any new trackers)
- Run =python3 init.py= and then =chmod +x build.sh= .
- Create directories on the server corresponding to any =*serverpath= variables you have set.
* Building
- Run =./build.sh= to build and upload to the server.