The purpose of this project is to identify past strips from the Oglaf webcomic, with the ability to build reading guides based on tags applied to strips. I've enjoyed reading Oglaf over the years, and this is my way of getting back to the threads I love.
The project comes with code and a curated assemblage of information:
- rguide: Generate a reading guide based on tags or a story arc
- ogmeta: Manage metadata - get new strip info from the website, add/delete tags and story arcs, search metadata
- meta.json: Local metadata about published strips
- characters.png: A depiction of many recurring characters, with names, based on the original work of /u/Fraxinopolis as posted in this thread
Feel free to submit pull requests if you find errors or discrepancies in this code or the tagging. Tagging is totally subjective but I've tried to be straightforward.
To set up your environment to run this project:
python3 -m venv venv
. venv/bin/activate
pip3 install --upgrade pip
pip3 install -r requirements.txt
See brief help text by running:
./rguide -h
or:
./ogmeta -h
The tools put in a small effort to save you from yourself but, really, the onus is on you not to shoot yourself in the foot. I recommend backing up your JSON file occasionally just in case you play around and want to revert back.
The reading guide builder generates the titles and URLs for strips that contain all the specified tags or the provided story arc. The guide is presented in publication-date order.
Imagine you want to re-read all the great strips starring Ivan:
./rguide -tag ivan
or maybe you want to read the "Fun Cult" story arc:
./rguide -arc "Fun Cult"
Now imagine you only want to re-read the strips with both Ivan and Mistress:
./rguide -tag ivan -tag mistress
Please note that when searching, the tags you specify are not case sensitive. However when you add tags, they're added exactly as you type them. Consider checking the tag set before you add any and try to be consistent with the capitalization style.
Also note if you're using tags with spaces or other characters your system may interpret as command-line special characters, wrap those tags in quotes!
Search for a tag:
./ogmeta -s -tag ivan
Search for a tag with spaces in its name:
./ogmeta -s -tag "the golden hind"
Add a tag to one or more strips by specifying the strip's title or one of its page URLs:
./ogmeta -a -url https://www.oglaf.com/cumsprite/ -tag Mistress -tag Ivan
./ogmeta -a -title cumsprite -tag Mistress -tag Ivan
Dump a list of all tags:
./ogmeta -l tags
Dump a list of all titles:
./ogmeta -l titles
If you want to update your local metadata with new strip data, that's easy:
./ogmeta -fetchnew
I found the following sites helpful while working on this project: