Forgejo AI defense with iocaine

This post was written for iocaine 2. Version 3 changed the way that scripts work significantly, including having to generate your own garbage. I have since rewritten my handler script as a modified version of the default script with a slightly customized HTML template. All of the checks explained below still exist, just with different Roto syntax. I would recommend that you start by using the…