mirror of
https://github.com/leoherzog/TorrentParts.git
synced 2026-01-23 19:58:03 -08:00
Continue to Refine Design
This commit is contained in:
45
bundle.js
45
bundle.js
@@ -33752,13 +33752,14 @@ function start() {
|
||||
|
||||
if (window.location.hash) {
|
||||
originalSourceIcon.innerHTML = '<span class="fad fa-link fa-fw"></span>';
|
||||
originalSourceIcon.title = 'Originally sourced from Magnet URL in the address bar of this site';
|
||||
originalSourceIcon.title = 'Originally sourced from shared torrent.parts link';
|
||||
parse(window.location.hash.split('#')[1]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function parse(toLoad) {
|
||||
resetProperties();
|
||||
try {
|
||||
console.info("Attempting parse");
|
||||
parsed = parser(toLoad);
|
||||
@@ -33794,15 +33795,15 @@ function display() {
|
||||
resetProperties();
|
||||
|
||||
hash.value = parsed.infoHash;
|
||||
name.value = parsed.name || "";
|
||||
name.value = parsed.name ? parsed.name : "";
|
||||
if (parsed.created) {
|
||||
created.value = parsed.created.toISOString().slice(0, 19);
|
||||
created.type = "datetime-local";
|
||||
} else {
|
||||
created.type = "text";
|
||||
}
|
||||
createdBy.value = "by " + parsed.createdBy || "";
|
||||
comment.value = parsed.comment || "";
|
||||
createdBy.value = parsed.createdBy ? "by " + parsed.createdBy : "";
|
||||
comment.value = parsed.comment ? parsed.comment : "";
|
||||
|
||||
announce.innerHTML = "";
|
||||
if (parsed.announce && parsed.announce.length) {
|
||||
@@ -33817,9 +33818,9 @@ function display() {
|
||||
tracker.dataset.group = 'announce';
|
||||
tracker.addEventListener('input', propertyChange);
|
||||
row.appendChild(tracker);
|
||||
let remove = document.createElement('button');
|
||||
let remove = document.createElement('a');
|
||||
remove.dataset.index = i;
|
||||
remove.innerHTML = '<span class="fas fa-minus"></span>';
|
||||
remove.innerHTML = '<span class="far fa-trash"></span>';
|
||||
remove.addEventListener('click', removeRow);
|
||||
row.appendChild(remove);
|
||||
announce.appendChild(row);
|
||||
@@ -33854,7 +33855,7 @@ function display() {
|
||||
|
||||
files.innerHTML = "";
|
||||
if (parsed.files && parsed.files.length) {
|
||||
getFiles.disabled = true;
|
||||
getFiles.style.display = "none";
|
||||
for (let file of parsed.files) {
|
||||
let icon = getFontAwesomeIconForMimetype(mime.lookup(file.name));
|
||||
files.appendChild(createFileRow(icon, file.name, file.length));
|
||||
@@ -33863,8 +33864,12 @@ function display() {
|
||||
downloadTorrent.addEventListener('click', saveTorrent);
|
||||
downloadTorrent.disabled = false;
|
||||
} else {
|
||||
getFiles.disabled = false;
|
||||
files.innerHTML = "<em>Files information isn't included in the URL/File provided</em>";
|
||||
getFiles.style.display = "block";
|
||||
if (client.torrents.length > 0) {
|
||||
files.innerHTML = "<em>Attempting fetching files from Webtorrent...</em>";
|
||||
} else {
|
||||
files.innerHTML = "<em>Files information isn't included in the URL/File provided</em>";
|
||||
}
|
||||
downloadTorrent.removeEventListener('click', saveTorrent);
|
||||
downloadTorrent.disabled = true;
|
||||
}
|
||||
@@ -33940,9 +33945,9 @@ function getFontAwesomeIconForMimetype(mimetype) {
|
||||
|
||||
function propertyChange(e) {
|
||||
if (this.dataset.group) {
|
||||
parsed[this.dataset.group][this.dataset.index] = this.value || "";
|
||||
parsed[this.dataset.group][this.dataset.index] = this.value ? this.value : "";
|
||||
} else {
|
||||
parsed[this.id] = this.value || "";
|
||||
parsed[this.id] = this.value ? this.value : "";
|
||||
}
|
||||
window.location.hash = parser.toMagnetURI(parsed);
|
||||
updateModified();
|
||||
@@ -33960,8 +33965,7 @@ function resetProperties() {
|
||||
announce.innerHTML = "";
|
||||
urlList.innerHTML = "";
|
||||
client.torrents.forEach(torrent => torrent.destroy());
|
||||
getFiles.disabled = false;
|
||||
getFiles.innerHTML = '<span class="fad fa-chart-network"></span>';
|
||||
getFiles.style.display = "block";
|
||||
files.innerHTML = "";
|
||||
window.location.hash = "";
|
||||
copyURL.setAttribute('data-clipboard-text', "");
|
||||
@@ -34008,29 +34012,34 @@ function removeAllRows(type) {
|
||||
function updateModified() {
|
||||
parsed.created = new Date();
|
||||
parsed.createdBy = "Torrent Parts <https://torrent.parts/>";
|
||||
if (parsed.created) {
|
||||
created.value = parsed.created.toISOString().slice(0, 19);
|
||||
created.type = "datetime-local";
|
||||
} else {
|
||||
created.type = "text";
|
||||
}
|
||||
createdBy.value = parsed.createdBy ? "by " + parsed.createdBy : "";
|
||||
}
|
||||
|
||||
function getFilesFromPeers() {
|
||||
console.info("Attempting fetching files from Webtorrent");
|
||||
console.info("Attempting fetching files from Webtorrent...");
|
||||
getFiles.style.display = "none";
|
||||
parsed.announce.push("wss://tracker.webtorrent.io");
|
||||
parsed.announce.push("wss://tracker.openwebtorrent.com");
|
||||
parsed.announce.push("wss://tracker.btorrent.xyz");
|
||||
parsed.announce.push("wss://tracker.fastcast.nz");
|
||||
parsed.announce = parsed.announce.filter((v,i) => v && parsed.announce.indexOf(v) === i); // remove duplicates and empties
|
||||
display();
|
||||
getFiles.disabled = true;
|
||||
getFiles.innerHTML = '<span class="fa-blink fad fa-chart-network"></span>';
|
||||
client.add(parser.toMagnetURI(parsed), (torrent) => {
|
||||
parsed.info = Object.assign({}, torrent.info); // clone object
|
||||
parsed.files = torrent.files;
|
||||
parsed.infoBuffer = torrent.infoBuffer;
|
||||
parsed.length = torrent.length;
|
||||
parsed.lastPieceLength = torrent.lastPieceLength;
|
||||
getFiles.innerHTML = '<span class="fad fa-chart-network"></span>';
|
||||
updateModified();
|
||||
display();
|
||||
torrent.destroy();
|
||||
});
|
||||
display();
|
||||
}
|
||||
|
||||
// https://stackoverflow.com/a/36899900/2700296
|
||||
|
||||
8
bundle.min.js
vendored
8
bundle.min.js
vendored
File diff suppressed because one or more lines are too long
13
index.html
13
index.html
@@ -102,13 +102,12 @@
|
||||
<div class="property">
|
||||
<div>
|
||||
<label for="urlList">Webseed URLs</label>
|
||||
<button id="removeWebseeds">
|
||||
<span class="fas fa-eraser"></span>
|
||||
</button>
|
||||
<br />
|
||||
<a id="removeWebseeds">Remove All</a>
|
||||
</div>
|
||||
<div>
|
||||
<button id="addWebseed" data-type="urlList">
|
||||
<span class="far fa-plus-circle"></span> Add Tracker
|
||||
<span class="far fa-plus-circle"></span> Add Webseed
|
||||
</button>
|
||||
<div id="urlList"></div>
|
||||
</div>
|
||||
@@ -117,9 +116,7 @@
|
||||
<div class="property">
|
||||
<div>
|
||||
<label for="files">Files</label>
|
||||
<button id="getFiles">
|
||||
<span class="fad fa-chart-network"></span>
|
||||
</button>
|
||||
<a id="getFiles">Attempt to Fetch Files from WebTorrent</a>
|
||||
</div>
|
||||
<table id="files">
|
||||
<tbody id="filesBody"></tbody>
|
||||
@@ -128,7 +125,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script src="bundle.min.js"></script>
|
||||
<script src="bundle.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
45
parse.js
45
parse.js
@@ -89,13 +89,14 @@ function start() {
|
||||
|
||||
if (window.location.hash) {
|
||||
originalSourceIcon.innerHTML = '<span class="fad fa-link fa-fw"></span>';
|
||||
originalSourceIcon.title = 'Originally sourced from Magnet URL in the address bar of this site';
|
||||
originalSourceIcon.title = 'Originally sourced from shared torrent.parts link';
|
||||
parse(window.location.hash.split('#')[1]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function parse(toLoad) {
|
||||
resetProperties();
|
||||
try {
|
||||
console.info("Attempting parse");
|
||||
parsed = parser(toLoad);
|
||||
@@ -131,15 +132,15 @@ function display() {
|
||||
resetProperties();
|
||||
|
||||
hash.value = parsed.infoHash;
|
||||
name.value = parsed.name || "";
|
||||
name.value = parsed.name ? parsed.name : "";
|
||||
if (parsed.created) {
|
||||
created.value = parsed.created.toISOString().slice(0, 19);
|
||||
created.type = "datetime-local";
|
||||
} else {
|
||||
created.type = "text";
|
||||
}
|
||||
createdBy.value = "by " + parsed.createdBy || "";
|
||||
comment.value = parsed.comment || "";
|
||||
createdBy.value = parsed.createdBy ? "by " + parsed.createdBy : "";
|
||||
comment.value = parsed.comment ? parsed.comment : "";
|
||||
|
||||
announce.innerHTML = "";
|
||||
if (parsed.announce && parsed.announce.length) {
|
||||
@@ -154,9 +155,9 @@ function display() {
|
||||
tracker.dataset.group = 'announce';
|
||||
tracker.addEventListener('input', propertyChange);
|
||||
row.appendChild(tracker);
|
||||
let remove = document.createElement('button');
|
||||
let remove = document.createElement('a');
|
||||
remove.dataset.index = i;
|
||||
remove.innerHTML = '<span class="fas fa-minus"></span>';
|
||||
remove.innerHTML = '<span class="far fa-trash"></span>';
|
||||
remove.addEventListener('click', removeRow);
|
||||
row.appendChild(remove);
|
||||
announce.appendChild(row);
|
||||
@@ -191,7 +192,7 @@ function display() {
|
||||
|
||||
files.innerHTML = "";
|
||||
if (parsed.files && parsed.files.length) {
|
||||
getFiles.disabled = true;
|
||||
getFiles.style.display = "none";
|
||||
for (let file of parsed.files) {
|
||||
let icon = getFontAwesomeIconForMimetype(mime.lookup(file.name));
|
||||
files.appendChild(createFileRow(icon, file.name, file.length));
|
||||
@@ -200,8 +201,12 @@ function display() {
|
||||
downloadTorrent.addEventListener('click', saveTorrent);
|
||||
downloadTorrent.disabled = false;
|
||||
} else {
|
||||
getFiles.disabled = false;
|
||||
files.innerHTML = "<em>Files information isn't included in the URL/File provided</em>";
|
||||
getFiles.style.display = "block";
|
||||
if (client.torrents.length > 0) {
|
||||
files.innerHTML = "<em>Attempting fetching files from Webtorrent...</em>";
|
||||
} else {
|
||||
files.innerHTML = "<em>Files information isn't included in the URL/File provided</em>";
|
||||
}
|
||||
downloadTorrent.removeEventListener('click', saveTorrent);
|
||||
downloadTorrent.disabled = true;
|
||||
}
|
||||
@@ -277,9 +282,9 @@ function getFontAwesomeIconForMimetype(mimetype) {
|
||||
|
||||
function propertyChange(e) {
|
||||
if (this.dataset.group) {
|
||||
parsed[this.dataset.group][this.dataset.index] = this.value || "";
|
||||
parsed[this.dataset.group][this.dataset.index] = this.value ? this.value : "";
|
||||
} else {
|
||||
parsed[this.id] = this.value || "";
|
||||
parsed[this.id] = this.value ? this.value : "";
|
||||
}
|
||||
window.location.hash = parser.toMagnetURI(parsed);
|
||||
updateModified();
|
||||
@@ -297,8 +302,7 @@ function resetProperties() {
|
||||
announce.innerHTML = "";
|
||||
urlList.innerHTML = "";
|
||||
client.torrents.forEach(torrent => torrent.destroy());
|
||||
getFiles.disabled = false;
|
||||
getFiles.innerHTML = '<span class="fad fa-chart-network"></span>';
|
||||
getFiles.style.display = "block";
|
||||
files.innerHTML = "";
|
||||
window.location.hash = "";
|
||||
copyURL.setAttribute('data-clipboard-text', "");
|
||||
@@ -345,29 +349,34 @@ function removeAllRows(type) {
|
||||
function updateModified() {
|
||||
parsed.created = new Date();
|
||||
parsed.createdBy = "Torrent Parts <https://torrent.parts/>";
|
||||
if (parsed.created) {
|
||||
created.value = parsed.created.toISOString().slice(0, 19);
|
||||
created.type = "datetime-local";
|
||||
} else {
|
||||
created.type = "text";
|
||||
}
|
||||
createdBy.value = parsed.createdBy ? "by " + parsed.createdBy : "";
|
||||
}
|
||||
|
||||
function getFilesFromPeers() {
|
||||
console.info("Attempting fetching files from Webtorrent");
|
||||
console.info("Attempting fetching files from Webtorrent...");
|
||||
getFiles.style.display = "none";
|
||||
parsed.announce.push("wss://tracker.webtorrent.io");
|
||||
parsed.announce.push("wss://tracker.openwebtorrent.com");
|
||||
parsed.announce.push("wss://tracker.btorrent.xyz");
|
||||
parsed.announce.push("wss://tracker.fastcast.nz");
|
||||
parsed.announce = parsed.announce.filter((v,i) => v && parsed.announce.indexOf(v) === i); // remove duplicates and empties
|
||||
display();
|
||||
getFiles.disabled = true;
|
||||
getFiles.innerHTML = '<span class="fa-blink fad fa-chart-network"></span>';
|
||||
client.add(parser.toMagnetURI(parsed), (torrent) => {
|
||||
parsed.info = Object.assign({}, torrent.info); // clone object
|
||||
parsed.files = torrent.files;
|
||||
parsed.infoBuffer = torrent.infoBuffer;
|
||||
parsed.length = torrent.length;
|
||||
parsed.lastPieceLength = torrent.lastPieceLength;
|
||||
getFiles.innerHTML = '<span class="fad fa-chart-network"></span>';
|
||||
updateModified();
|
||||
display();
|
||||
torrent.destroy();
|
||||
});
|
||||
display();
|
||||
}
|
||||
|
||||
// https://stackoverflow.com/a/36899900/2700296
|
||||
|
||||
18
style.css
18
style.css
@@ -8,6 +8,7 @@ html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:b
|
||||
--accent: #63A079;
|
||||
--grey: #BDBDBD;
|
||||
--white: #FFF;
|
||||
background: #24384D;
|
||||
}
|
||||
|
||||
body {
|
||||
@@ -16,6 +17,7 @@ body {
|
||||
font-family: 'Alata', sans-serif;
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
input {
|
||||
@@ -52,17 +54,19 @@ button {
|
||||
padding: 8px;
|
||||
box-sizing: border-box;
|
||||
border-radius: 900px;
|
||||
text-align: center;
|
||||
text-align: left;
|
||||
margin: auto;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button:disabled {
|
||||
filter: brightness(0.6);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
a {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
header {
|
||||
@@ -170,13 +174,17 @@ input {
|
||||
padding: 8px;
|
||||
box-sizing: border-box;
|
||||
border-radius: 900px;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#announce > *, #urlList > * {
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
@media (max-width: 1080px) {
|
||||
|
||||
#reset {
|
||||
width: auto;
|
||||
top: 0px;
|
||||
right: 8px;
|
||||
}
|
||||
@@ -192,6 +200,7 @@ input {
|
||||
}
|
||||
|
||||
#download > * {
|
||||
width: auto;
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
@@ -211,7 +220,7 @@ input {
|
||||
#properties {
|
||||
margin: 0;
|
||||
padding: 0 2vw;
|
||||
width: 96vw;
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
.property {
|
||||
@@ -225,7 +234,8 @@ input {
|
||||
margin: 8px 0;
|
||||
}
|
||||
|
||||
input {
|
||||
input, button, #addTracker, #addWebseed {
|
||||
width: 95vw;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user