Add Files List

This commit is contained in:
Leo Herzog
2020-06-21 21:32:19 -04:00
parent 31649fc59b
commit d7fd9d860e
4 changed files with 8718 additions and 72 deletions

8722
bundle.js

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,8 @@
<!DOCTYPE html>
<head></head>
<head>
<script src="https://kit.fontawesome.com/9ca49f101f.js"></script>
</head>
<body>
@@ -34,6 +36,13 @@
<input id="hash" type="text" class="form-control" value="" placeholder="" disabled/>
</div>
<div class="form-group">
<label class="col-form-label" for="files">Files <span id="torrentSize"></span></label>
<table id="files">
<tbody id="filesBody"></tbody>
</table>
</div>
<script src="bundle.js"></script>
</body>

View File

@@ -4,10 +4,11 @@
"description": "📑 A website to inspect and edit Torrent files and Magnet URLs",
"main": "bundle.js",
"dependencies": {
"browserify": "latest",
"Buffer": "latest",
"browserify": "latest",
"bytes": "latest",
"dropzone": "latest",
"filesize": "latest",
"mime-types": "^2.1.27",
"parse-torrent": "latest"
},
"devDependencies": {

View File

@@ -1,12 +1,15 @@
const parser = require('parse-torrent');
const Buffer = require('Buffer');
const size = require('filesize');
const bytes = require('bytes');
const mime = require('mime-types');
var name = document.getElementById('name');
var creationDate = document.getElementById('creationDate');
var createdBy = document.getElementById('createdBy');
var comment = document.getElementById('comment');
var hash = document.getElementById('hash');
var files = document.getElementById('filesBody');
var size = document.getElementById('torrentSize');
var parsed;
document.addEventListener('DOMContentLoaded', start);
@@ -42,7 +45,9 @@ function handleRemote(err, result) {
}
function display() {
console.log(parsed);
name.value = parsed.name || "";
if (parsed.created) {
creationDate.disabled = false;
@@ -54,4 +59,49 @@ function display() {
createdBy.value = parsed.createdBy || "";
comment.value = parsed.comment || "";
hash.value = parsed.infoHash;
size.innerText = bytes.format(parsed.length, {"decimalPlaces": 1, "unitSeparator": " "});
files.innerHTML = "";
for (let file of parsed.files) {
let row = document.createElement('tr');
let iconcell = document.createElement('td');
iconcell.innerHTML = '<span class="far fa-' + getFontAwesomeIconForMimetype(mime.lookup(file.name)) + '"></span>';
row.appendChild(iconcell);
let namecell = document.createElement('td');
namecell.innerHTML = file.path;
row.appendChild(namecell);
let sizecell = document.createElement('td');
sizecell.innerHTML = bytes.format(file.length, {"unitSeparator": " "});
row.appendChild(sizecell);
files.appendChild(row);
}
}
function getFontAwesomeIconForMimetype(mimetype) {
if (!mimetype) return 'file';
switch (true) {
case mimetype.includes("7z-"):
case mimetype.includes("iso9660"):
case mimetype.includes("zip"):
return 'file-archive';
case mimetype.includes("audio"):
return 'file-audio';
case mimetype.includes("csv"):
return 'file-csv';
case mimetype.includes("font"):
return 'file-contract';
case mimetype.includes("image"):
return 'file-image';
case mimetype.includes("pdf"):
return 'file-pdf';
case mimetype.includes("text"):
case mimetype.includes("subrip"):
case mimetype.includes("vtt"):
return 'file-alt';
case mimetype.includes("video"):
return 'file-video';
default:
return 'file';
}
}