mirror of
https://github.com/leoherzog/TorrentParts.git
synced 2026-01-24 04:08:04 -08:00
Add Files List
This commit is contained in:
11
index.html
11
index.html
@@ -1,6 +1,8 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|
||||||
<head></head>
|
<head>
|
||||||
|
<script src="https://kit.fontawesome.com/9ca49f101f.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
@@ -34,6 +36,13 @@
|
|||||||
<input id="hash" type="text" class="form-control" value="" placeholder="" disabled/>
|
<input id="hash" type="text" class="form-control" value="" placeholder="" disabled/>
|
||||||
</div>
|
</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>
|
<script src="bundle.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -4,10 +4,11 @@
|
|||||||
"description": "📑 A website to inspect and edit Torrent files and Magnet URLs",
|
"description": "📑 A website to inspect and edit Torrent files and Magnet URLs",
|
||||||
"main": "bundle.js",
|
"main": "bundle.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"browserify": "latest",
|
|
||||||
"Buffer": "latest",
|
"Buffer": "latest",
|
||||||
|
"browserify": "latest",
|
||||||
|
"bytes": "latest",
|
||||||
"dropzone": "latest",
|
"dropzone": "latest",
|
||||||
"filesize": "latest",
|
"mime-types": "^2.1.27",
|
||||||
"parse-torrent": "latest"
|
"parse-torrent": "latest"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
52
parse.js
52
parse.js
@@ -1,12 +1,15 @@
|
|||||||
const parser = require('parse-torrent');
|
const parser = require('parse-torrent');
|
||||||
const Buffer = require('Buffer');
|
const Buffer = require('Buffer');
|
||||||
const size = require('filesize');
|
const bytes = require('bytes');
|
||||||
|
const mime = require('mime-types');
|
||||||
|
|
||||||
var name = document.getElementById('name');
|
var name = document.getElementById('name');
|
||||||
var creationDate = document.getElementById('creationDate');
|
var creationDate = document.getElementById('creationDate');
|
||||||
var createdBy = document.getElementById('createdBy');
|
var createdBy = document.getElementById('createdBy');
|
||||||
var comment = document.getElementById('comment');
|
var comment = document.getElementById('comment');
|
||||||
var hash = document.getElementById('hash');
|
var hash = document.getElementById('hash');
|
||||||
|
var files = document.getElementById('filesBody');
|
||||||
|
var size = document.getElementById('torrentSize');
|
||||||
var parsed;
|
var parsed;
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', start);
|
document.addEventListener('DOMContentLoaded', start);
|
||||||
@@ -42,7 +45,9 @@ function handleRemote(err, result) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function display() {
|
function display() {
|
||||||
|
|
||||||
console.log(parsed);
|
console.log(parsed);
|
||||||
|
|
||||||
name.value = parsed.name || "";
|
name.value = parsed.name || "";
|
||||||
if (parsed.created) {
|
if (parsed.created) {
|
||||||
creationDate.disabled = false;
|
creationDate.disabled = false;
|
||||||
@@ -54,4 +59,49 @@ function display() {
|
|||||||
createdBy.value = parsed.createdBy || "";
|
createdBy.value = parsed.createdBy || "";
|
||||||
comment.value = parsed.comment || "";
|
comment.value = parsed.comment || "";
|
||||||
hash.value = parsed.infoHash;
|
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