Initial proof of concept

This commit is contained in:
Leo Herzog
2020-06-19 23:15:45 -04:00
commit 88a9210cdb
5 changed files with 11345 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
node_modules
package-lock.json

11249
bundle.js Normal file

File diff suppressed because it is too large Load Diff

24
index.html Normal file
View File

@@ -0,0 +1,24 @@
<!DOCTYPE html>
<head></head>
<body>
<div class="form-group">
<label class="col-form-label" for="magnet">Magnet URL</label>
<input id="magnet" type="text" class="form-control" placeholder="magnet:?xt=urn:btih…" />
<div>or</div>
<label class="col-form-label" for="torrent">Upload Torrent</label>
<input id="torrent" type="file" />
</div>
<div class="form-group">
<label class="col-form-label" for="name">Torrent Name</label>
<input id="name" type="text" class="form-control" value="" />
</div>
<script src="bundle.js"></script>
</body>
</html>

26
package.json Normal file
View File

@@ -0,0 +1,26 @@
{
"name": "torrentparts",
"version": "0.0.1",
"description": "🗃️ A website to inspect and edit Torrent files and Magnet URLs",
"main": "bundle.js",
"dependencies": {
"browserify": "latest",
"Buffer": "latest",
"dropzone": "latest",
"filesize": "latest",
"parse-torrent": "latest"
},
"devDependencies": {
"watchify": "latest"
},
"repository": {
"type": "git",
"url": "https://github.com/leoherzog/TorrentParts.git"
},
"author": "Leo Herzog",
"license": "CC BY-SA 4.0",
"bugs": {
"url": "https://github.com/leoherzog/TorrentParts/issues"
},
"homepage": "https://github.com/leoherzog/TorrentParts"
}

44
parse.js Normal file
View File

@@ -0,0 +1,44 @@
const parser = require('parse-torrent');
const Buffer = require('Buffer');
const size = require('filesize');
var name = document.getElementById('name');
var parsed;
document.addEventListener('DOMContentLoaded', start);
function start() {
document.getElementById('magnet').addEventListener('keyup', function(event) {
event.preventDefault();
if (event.keyCode === 13) {
parse(magnet.value);
}
});
document.getElementById('torrent').addEventListener('change', function(event) {
event.preventDefault();
event.target.files[0].arrayBuffer().then(arrayBuffer => parse(Buffer.from(arrayBuffer)));
});
}
function parse(toLoad) {
console.info(toLoad);
if (typeof toLoad === "string" && toLoad.toLowerCase().trim().startsWith("http")) {
parser.remote(toLoad, handleRemote);
} else {
parsed = parser(toLoad);
display();
}
}
function handleRemote(err, result) {
parsed = result;
display();
}
function display() {
console.log(parsed);
name.value = parsed.name;
}