Digibuyer
A personal project for my wife that helped complete a Digimon memorabilia collection. This monitors auction and sale sites for specific Japanese language words and reports price, translation, etc. through a Discord bot. It runs serverless on AWS (lambda) and doesn't use more resources than the free tier. This is now opened up to a small community of other collectors who stay in the channel.
Fig. 1: Primary Interface
⤢ ZOOMThese things sell fast and their built-in notification system basically doesn't work, but this does. This is stupidly simple, but it's worked out really well.
Tech Detail
Fig. 2: Functional Overview
⤢ ZOOM
| Cloud | AWS (serverless) |
| Interface | Discord bot |
| Trigger | Event-driven / scheduled |
| Year | 2023 |
| Visibility | Personal |
| Cost | AWS Free Tier |
Notes
Technical Notes
Scraping
Auction site renders its results to HTML response, and the item data is in a JSON blob. Instead of running a headless browser I pull the JSON out with a regex and parse it. It's simple and low cost, and it doesn't stress their server refreshing every few mins. It is fragile though so if they change their HTML I need to update.
Simple Dedupe
Each run grabs the current listing IDs, does one DynamoDB batch_get_item for all of them at once, and uses set subtraction to find the ones I haven't seen yet. Reads are eventually consistent.
Cost
It's a scheduled Lambda so nothing else runs between checks. AWS Translate only fires on new items where the English name is stored next to the Japanese one. This project works fine on the AWS free tier.
Grows Pretty Easily
When a new item lands, the Lambda posts to Discord and also publishes an event to EventBridge. The Discord message is the "interface", but the event is there so I can expand later if desired, like adding price updates.