Source code for my personal quote bot project.
Rust 37.4%
Python 34.4%
Dockerfile 9.4%
Shell 9.0%
Nix 4.8%
Other 5.0%
99 4 0

Clone this repository

https://tangled.org/crashkeys.dev/audquotes
git@knot.crashkeys.dev:crashkeys.dev/audquotes

For self-hosted knots, clone URLs may differ based on your setup.

README.md

Aud Quotes#

This repository hosts a collection of my favorite quotes from various pieces of media, as well as some scripts I use to manage them or post them to social media websites.

File Structure#

Each subfolder is designated with a specific purpose:

  • schedule_script.py: This file is the script meant to be executed on a server to periodically post random quotes sampled from quotes/ at set time intervals. Currently, it assumes all posts are to be sent to Bluesky only. Supports fewer features than the Rust rewrite, but is simpler and more convenient to use at the moment.
  • src/: This directory contains the Rust source code for the quote bot. It connects to a running Redis server to use as persistent storage for its quote queue and supports some more advanced features, as well. Note that it is still a WIP and lacks polish or a proper CLI at the moment.
  • quotes/: This directory contains every quote added to the repository in the form of .txt files. Any .txt file within this subdirectory is therefore considered a quote by all of the utilities included in the repository, regardless of its nesting into any subdirectories. Files whose names end in any other extension are ignored.
    • My personal organization for this folder is to dedicate a unique subfolder to each piece of media or series a set of quotes share in common (e.g. quotes/ai-tsf for the "AI: The Somnium Files" game or quotes/zero-escape for the Zero Escape series).
    • This is entirely arbitrary, so any eventual forks are free to adopt the file structure they prefer, so long as quotes are placed under quotes/ and end in .txt.
  • util/: This directory contains various utility scripts to manage the quotes stored in the repository.

Note that not all files in this repository are currently documented. This has been a personal, private project for a few years and I have used multiple different tools and platforms with it, meaning some scripts present have been abandoned or remain outdated or obsolete.