Well, hello one and all to the new Providence changelog blog.
Here I'll more or less be talking and showing off Providences features. Today? I have released 1.0! The very first release, would you look at that...
It's been 4 months since I wrote my initial thoughts on a discord logbot. Ever since then, I've opted to start writing one myself. Progress has been slow, in no small part due to motivational issues, but I really do believe that I'm currently in a state where I can release a first version of this application.
So, meet Providence.
There's a ton of features currently packed, but as of right now it can log pretty much everything aside from reactions (which have partial implementations in the frontend) and display all of it in a reasonably competent fashion using it's web UI.
You can find instructions to install in the README. Give it a glance.
As for what WSGI to use for your frontend, use whatever works for you for now. I don't have any immediate plans to lock it to one WSGI for support yet, but
gunicorn would be my choice from quickly testing it.
Or just use the Flask dev server, it's not like you should be running this on a place where tons of users can access it :p
The most immediate feature I want to work on is importing existing messages and users into the database. This will probably not be very hard, as it is just scanning through messages.
After that, I'll probably streamline the frontend templates more, removing the hard links and making better use of jinjas templating to access endpoints, as well as implementing breadcrumbs.
Longer term, I want to look into exporting day pages into panopticon style logs and freezing the entire instance to permit sharing using flask-freeze as well as generally smoothing out the process to get stuff running.
There's tons of little UI issues that still bother me, and I want to tackle those. I also will need to move away the members and role lists from the guild details page and into their own pages and only load previews of those.
It would also be handy to move to using blueprints rather than just mapping all endpoints in
viewer.py, but that's something I'm not fully out yet on.
After I get importing messages done, I'll also relicense the entire thing to the AGPL, which I'm picking as it closes the server loophole the GPL itself has.
See you next time!