My torrents are downloaded by my desktop machine, which shares bandwidth with the rest of the devices on my network – my phone and my laptop, generally. I prefer the torrents not to use any bandwidth while I’m home, to free it all for whatever else I want it for.
Deluge offers scheduling, which is fine for weekdays – on almost any weekday the torrents can happily download during working hours and sleepy time. However, our weekends can vary wildly between home all weekend and barely home at all – it seems wasteful to schedule no downloading for the non-sleepy hours of the weekend on the off chance we’ll be home.
The Toggle plugin offers a better solution for my use-case – it stops all Deluge bandwidth usage when toggled. It integrates into the Deluge GUI and web clients.
However, I have found the web client to be quite slow and clunky on my phone, which is the primary device I want to use to toggle Deluge’s bandwidth usage – generally when I wake in the morning and go to bed at night. This is quite possibly my phone at fault, but it does make toggling Deluge’s bandwidth usage annoying, since I often need to use my laptop or the desktop machine.
Accordingly, I have written what I would imagine is the world’s simplest Deluge client: deluge-toggle. The client either reports what the current toggling status is, or toggles the bandwidth usage. That’s all it does, but that’s exactly what I needed.
I have also written an incredibly simple Flask webapp to interact with the deluge-toggle client, to save me having to use a console from my phone. I run this webapp on my desktop machine, and can now easily toggle Deluge’s bandwidth usage from anywhere that I can connect to my home network.
All of this is very simple, but it does say complimentary things about Flask and Deluge (particularly its plugin system) that this was as simple as it turned out to be.