Tourner[^1]
A Go-Powered ShareX Destination Rotator written in Go
[^1]: "Tourner" is a French Word that means to turn or rotate.
How it works?
Tourner proxies requests from a local web server to various LoliSafe (now ChibiSafe) instances, selecting, at random, an instance each time a request to upload a file is made to the "/upload" endpint.
Currenly Tourner only supports LoliSafe, which I believe is referred to as version 3.x of ChibiSafe, but as I continue to work on this project 4.X will be supported, as well as other file uploaders in general.
It's Purpose?
I really didn't like the idea of keeping all of my funny meme screenshots on one shitty server in Tunisia, and liked the idea of having screenshots spread out across various different hosts as using only one can definitely make it easier for one instance owner to track everything that you upload, with this they'll get bits and pieces, but likely not enough to piece together a full picture. In the future I also plan to add the ability to specify a proxy/proxies that can be applied to further improve your privacy, as ShareX on Windows does not currently support SOCKS Proxies in the first place.
Install
Download the latest executable release or grab the source code and run go build
with proper settings for your operating system.
Now that you have run the executable you should get a message that basically says that the server is starting, now you should open ShareX and head to your Custom Destinations
settings.
You should then copy these settings (adjust them if there are any issues, but as the time of writing this is how it's done)
Set your image and optionally file uploader to whatever you named the Uploader and then press test
IF everything worked correctly then you should see a link from one of the LoliSafe Instances like this:
And that's it! You've successfully setup Tourner and can now use it normally.
What's next?
I plan on adding a host of different features, as well as cleaning up the code any fixing other issues and bubblewrapping edge cases as I become more familiar with the Go Language, this Repository is purely for my own tracking of my progress, but if anyone comes across this and would like to use it or change it, feel free.