burnaki

Application for monitoring burnination efforts on the Stack Exchange network.

View the Project on GitHub

Burnaki

The purpose of this project is to monitor burnination efforts on the Stack Exchange network. The goals are threefold:

Tracking

This project only relies on the Stack Exchange API and no screen-scraping is performed. During a burnination, the list of questions having the burninated tag are stored, and their status are updated every 5 minutes.

The information that is tracked are edits, close votes, reopen votes, deletion by the system (a.k.a., the roomba) and deletion by users. Since the API does not return deleted questions, the tracking logic considers a question is deleted when it is not returned by the API anymore. To distinguish between a manual and a system deletion, it performs a best guess based on the roomba logic.

Progress is monitored and updated every hour. Each question has its history throughout the burnination stored (date of a retag, date of a closure…).

Notifications

During a burnination process of a tag, notifications will be sent to the dedicated chat room:

Notifications are sent by batches every 5 minutes. An example is:

Closed: Codeigniter on Godaddy results in 404 removing index.php, GoDaddy issues with directory (differences with “webroot” and “root”), godaddy shared hosting NICE command path and PHP path.

Chat bot

The chat bot head quarters is the SOCVFinder chat room. It can handle multiple burnination efforts at the same time but there can only be one chat room for a given burninated tag.

Every command can be run either in the dedicated burn room, or in the HQ room. As convenience, the [tag] can be omitted from the commands if it is ran inside the dedicated burn room.

This command starts the burnination process of the given tag. All questions with that tag will be queried from Stack Exchange API and stored. The bot will then start the notification process for the configured chat room.

@burnaki get progress [tag]

This command outputs the current progress of the burnination: number of opened questions / number of closed questions / number of retagged questions / number of deleted questions (either manually or by the roomba). An example message is:

Here’s a recap of the efforts so far for [godaddy]: Total questions (1563), Retagged (261), Closed (1213), Roombad (287), Manually deleted (101).

It also prints a graph of the progress:

Burnination progress

@burnaki update progress [tag]

The progress is updated automatically every hour. This command forces an update of the progress immediatly.

@burnaki delete candidates [tag]

This command queries all posts that are eligible for deletion. It queries posts that have a score <= -1, are closed since more than 2 days and have at least one answer. It also returns posts with pending delete votes.

Sample list

@burnaki stop tag [tag]

This command ends the burnination process of the given tag. No new notifications will be sent.

Database schema

Accounts

The bot runs under the user Burnaki and sits in the SOBotics chat room on Stack Overflow.