Skip to content

About

ShmooCon Ticket Bot

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

ShmooCon Ticket Bot 🎫🤖

This was a bot to automatically purchase tickets for ShmooCon, a conference that is notoriously hard to get tickets for. This repository serves as a directory for everything that has been orchestrated.

Caution

This project is provided for research and educational purposes only. It is intended as a historical writeup of the system. The author is not responsible for any misuse or actions taken by end users based on this code. Use at your own risk. We are not affiliated with ShmooCon in any way.

About

This project was an attempt to build a working ticket bot for ShmooCon, considering that it was the last year the conference was occurring. It did the years, including a feature for automatically answering the riddles using AI. Everything was written in TypeScript, and I would consider this overengineered (but that just makes it even more fun!).

A talk was even done on this very thing! (~2 hour mark) (note: this is not my talk)

Architecture

Everything was run with Docker. Below is the architecture for the latest proof-of-concept:

  • dashboard: Served as the "user-facing" portion of the bot and was where configuration (accounts, URLs, etc.) was managed. Built with NextJS and a very nice UI.
  • bot-ts: The actual "bot," which used Playwright to execute its commands. Used a "stages" system to execute its tasks. Handles errors incredibly and communicates with the API.
  • ticket-server: Acted as a replicated mock version of the ShmooCon ticket server, as using the real ShmooCon ticket server would be unwanted. Built with Bun, SQLite, Elysia, and React.
  • api: Did the "heavy lifting" / processing for the bot. Handled AI responses, configuration, and user management. Communicated with bot-ts, extension, and dashboard. Built with Bun, SQLite, and Elysia.
  • extension: Sent the riddle to the API, retrieved the answer, and input it. Meant for a human version (which was not the final version, still a cool concept though). THIS PART WAS MORE OF A CONCEPT AND IS NOT PART OF THE FINAL VERSION.

Below is a diagram of the above (for the final version): image

Contributing

This project / experiment is over and is not open to changes. Please contact me @ makors [at] discern.computer if you have questions.

About

ShmooCon Ticket Bot

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors