I'm sure there's a million things wrong with this but I'm going to implement it on my server for uploading Gemini content instead of using ssh/sftp in Termux all the time: https://codeberg.org/oppenlab/iapetus It's similar to Titan by @kensanata but I think it sticks closer to the #gemini protocol (in fact it came together just now while attempting to implement Titan locally with node.js for the server and Ariane 4 running on an Android emu)
@oppen hm. So you’re always relying on file name extension to determine mime type? That was something I wanted to avoid, but perhaps I was wrong.
@kensanata in practice I'll be uploading .gmi and images, maybe mp3s all from a phone. Just daily posts, I've got a plan for a Twitter/Mastodon style posting UI as well as a more involved editor with Gemtext highlighting.
@kensanata I got a little lost with Titan, could you maybe add a client/server flow like in the Gemini Protocol docs to your pages? I'd still like to implement that too.
@oppen I noticed Iapetus uses 10 Continue and 20 Success in a strange way. How about replacing "10 Continue\r\n" with "21 text/plain\r\nPlease continue\n" (a new status code if you must, but why not just use 20?) and "20 Success\r\n" with "22 text/plain\r\nSuccess\n" (again, or a regular code 20)
@oppen OK, got a Iapetus implementation plus test going… (but it's not live and I need to sleep¸ haha)
@kensanata let me think about it. The idea was it mirrored Geminis input response code, and I wanted a different code for each stage so there's no state to manage in the clients, but two 2X would manage that too.
@cage not heard of inimeg! I'll have a look, as for coordinating if the mailing list is anything to go by that's maybe impossible!
@cage inimeg looks practially identical to Iapetus though, only a couple of small semantic differences, but the flow is identical from a quick look. One thing it's missing is a payload size which I think is important to prevent the server hanging with an open socket.
@cage implement all 3! I was already going to do Titan as well in the Ariane upload area and will do inimeg now as well.
Merveilles is a community project aimed at the establishment of new ways of speaking, seeing and organizing information — A culture that seeks augmentation through the arts of engineering and design. A warm welcome to any like-minded people who feel these ideals resonate with them.