Get rid of your Twitter followers
If, like me, you don’t like having too many Twitter followers, you’ve come to the right place. Volgnie helps you easily purge your Twitter followers. Pick from one of the available criteria, and any followers that don’t meet it will be removed (by blocking/unblocking them).
Note
Retired. This project is retired. I’m tired of struggling with Twitter. Perhaps later, I’ll resurrect it as a self-service option
To use, go to volgnie.com, or read on for technical details.
Tip: Take a look at the serverless.yml file. It’s a concise description of the stack.
There are five key Lambda functions:
web
: Handles volgnie.com and the whole web UI. Runs a Sinatra app via serverless-rack. Code is in app/web.rb
.start_purge
: When you trigger a purge from the web app, an event (purge_start
) is fired, which triggers this function. The start_purge
function fetches the user’s followers and following and fires the purge_ready
event, which kicks off the purge by triggering the next function…purge_followers
: This takes a batch of followers, check if they match the user’s criteria and purges the ones that fail. Then it sleeps. It does this batch-sleep thing to avoid hitting Twitter’s rate limits.push_next_batch
: This runs at intervals and checks if enough time has passed for us to try the next batch. If so, it fires the purge_ready
event again, so purge_followers
can process the next batch before sleeping again.finish_purge
: When there are no more batches, the purge_finish
event is fired, which triggers this function. The function sends a report of the purge to the user’s email, records metrics and cleans up any unnecessary data.For more details, see the docs/
folder.
The Twitter API’s search only returns results from a few days, so I had to build a custom search implementation (a better version of what’s currently on oldtweets.today), called Zearch. Unfortunately, it’s not yet open source.
npm ci --production=false
bundle install
.env.example
to .env
and set the needed environment variablesdocker run --name redis --rm -p 6379:6379 redis
)npm run offline
Redirect URLs:
Tests are written with RSpec. To run tests: bundle exec rspec