mirror of
https://github.com/leoherzog/TorrentParts.git
synced 2026-01-23 19:58:03 -08:00
Add Files List
This commit is contained in:
11
index.html
11
index.html
@@ -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>
|
||||
|
||||
@@ -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": {
|
||||
|
||||
52
parse.js
52
parse.js
@@ -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';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user