ifhttp provides an HTTP REST interface for interacting with Z-Machine interactive fiction (IF) stories (typically .z8
files). Clients can connect to the service to start a game and then POST commands to it. Sessions are deleted after a while in a feeble attempt to save memory. This service is definitely DoS-able.
See a live example on https://www.langworth.com/
$ docker pull ghcr.io/statico/ifhttp
$ docker run -p 8080:8080 -v /path/to/stories:/data ghcr.io/statico/ifhttp npm run -s start -- /data/story.z8
All request and response bodies should be JSON. In addition to a status code, requests may return a JSON object with an error
property which describes the error.
Returns a session ID for a new game.
Response:
{
"session": "<id>",
"output": "<text>"
}
Sends a command to the game.
Request:
{
"session": "<id>",
"message": "<user input>"
}
Response:
{
"output": "<text>"
}