Skip to content

Instantly share code, notes, and snippets.

Created December 27, 2015 14:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/f53c66d48495c461c37e to your computer and use it in GitHub Desktop.
Save anonymous/f53c66d48495c461c37e to your computer and use it in GitHub Desktop.
LGRMLP
<h2>Magnet Link Generator</h2>
<div class="block">
<label for="info-hash">Info hash:</label>
<input id="info-hash" type="text" name="info-hash" />
</div>
<div class="block">
<label for="trackers">Trackers: <sup>One or more tracker, separated by newlines.</sup></label>
<textarea id="trackers" name="trackers"></textarea>
</div>
<div class="block">
<button id="generate-magnet">Create Magnet Link</button>
</div>
<hr />
<p><a href="#" id="magnet-target">Magnet link appears here</a></p>
<p><small>Not intended for purposes of copyright infringement.</small></p>
var generateMagnetButton = document.getElementById("generate-magnet"),
infoHashField = document.getElementById("info-hash"),
trackersField = document.getElementById("trackers"),
magnetLinkTarget = document.getElementById("magnet-target");
function generateMagnetLink(infoHash, trackers) {
var result = "magnet:?xt=urn:btih:";
result += infoHash;
for (var i = 0; i < trackers.length; i++) {
var tracker = trackers[i].replace(/\//g, '%2F').replace(/\:/g, '%3A');
result += '&tr=' + tracker;
}
return result;
}
function generateButtonHandler(e) {
var infoHashValue = infoHashField.value.trim();
var trackersList = trackersField.value.split("\n");
var magnetLink = generateMagnetLink(infoHashValue, trackersList);
magnetLinkTarget.innerHTML = magnetLink;
magnetLinkTarget.href = magnetLink;
}
generateMagnetButton.addEventListener('click', generateButtonHandler)
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
font-family: sans-serif;
color: #111;
background-color: #fbfcf7;
line-height: 1.4;
padding-left: 1em;
}
a, a:hover {
color: #0074d9;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
button {
padding: 0.4em;
}
.block {
margin-bottom: 1em;
}
.block label {
margin-right: 1em;
}
.block textarea {
display: block;
width: 85%;
height: 7em;
}
hr {
color: #403f4e;
width: 80%;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment