https://github.com/krisives/metalink-to-torrent
Seeing as the solution is based on metalinks and metalinks only get populated as mirrors pick up the file we may have to have a delay or generate the torrent multiple times.
Possibly a good approach would be:
- publish iso
- trigger secondary job
- generate torrent from initial metalink (which only has the master server)
- re-generate the torrent after 3 and again after 6 hours to pick up new servers
Torrent hashes are based on their `info` blob and so long as that doesn't change the torrent should be considered "the same". To inject new mirror seeds we do not need to change the info blob.
Open issues:
- what to do about gpg signatures? should probably also add them to the torrent
- ktorrent kaput https://bugs.kde.org/show_bug.cgi?id=382375
- in light of ktorrent being bust, should we maybe run a seed? it would kinda defeat the purpose of load balancing through mirrors though
Todo:
- write rigging to wrap around generator
-- sftp locate iso
-- make expected meta4 and torrent url
-- download meta4 and torrent (dont fail on latter)
-- generate
-- push new torrent file
- extend generator to update a torrent if it already exists
- add job that runs every 3 hours?
-- possibly track remote list, if it didn't change we don't need to refresh the torrent