',i.addEventListener("click",K),t.appendChild(i),S.appendChild(t)}if(j.innerHTML="",u.files&&u.files.length){A.style.display="none";for(let e of u.files){let t=W(a.lookup(e.name));j.appendChild(z(t,e.name,e.length))}j.appendChild(z("folder-tree","",u.length)),M.setContent("Download Torrent file"),R.addEventListener("click",Q),R.disabled=!1}else P.torrents.length>0?(A.style.display="none",j.innerHTML=''):(A.style.display="block",j.innerHTML=''),M.setContent("Files metadata is required to generate Torrent file. Try fetching files list from WebTorrent."),R.removeEventListener("click",Q),R.disabled=!0;L.setAttribute("data-clipboard-text",window.location.origin+"#"+r.toMagnetURI(u)),I.setAttribute("data-clipboard-text",r.toMagnetURI(u)),d.style.display="flex",window.location.hash=r.toMagnetURI(u),u.name?document.title="Torrent Parts | "+u.name:document.title="Torrent Parts | Inspect and edit what's in your Torrent file or Magnet link",h.enable(),gtag("event","view_item",{items:[{item_id:u.infoHash,item_name:u.name,item_category:p}]})}function z(e,t,n){let i=document.createElement("tr"),r=document.createElement("td");r.innerHTML='',i.appendChild(r);let o=document.createElement("td");o.innerHTML=t,i.appendChild(o);let a=document.createElement("td");return a.innerHTML=s.format(n,{decimalPlaces:1,unitSeparator:" "}),i.appendChild(a),i}function W(e){if(!e)return"file";switch(!0){case e.includes("msword"):case e.includes("wordprocessingml"):case e.includes("opendocument.text"):case e.includes("abiword"):return"file-word";case e.includes("ms-excel"):case e.includes("spreadsheet"):return"file-powerpoint";case e.includes("powerpoint"):case e.includes("presentation"):return"file-powerpoint";case e.includes("7z-"):case e.includes("iso9660"):case e.includes("zip"):case e.includes("octet-stream"):return"file-archive";case e.includes("csv"):return"file-csv";case e.includes("pdf"):return"file-pdf";case e.includes("font"):return"file-contract";case e.includes("text"):case e.includes("subrip"):case e.includes("vtt"):return"file-alt";case e.includes("audio"):return"file-audio";case e.includes("image"):return"file-image";case e.includes("video"):return"file-video";default:return"file"}}function V(e){this.dataset.group?u[this.dataset.group][this.dataset.index]=this.value?this.value:"":u[this.id]=this.value?this.value:"",window.location.hash=r.toMagnetURI(u),J()}function $(){document.getElementById("magnet").value="",document.getElementById("torrent").value="",d.style.display="none",m.value="",v.value="",b.value="",x.value="",y.value="",E.innerHTML="",S.innerHTML="",P.torrents.forEach((e=>e.destroy())),A.style.display="block",j.innerHTML="",window.location.hash="",L.setAttribute("data-clipboard-text",""),I.setAttribute("data-clipboard-text",""),document.title="Torrent Parts | Inspect and edit what's in your Torrent file or Magnet link",h.disable(),gtag("event","reset")}async function G(){_.className="disabled",_.innerHTML="Adding...";try{let e=await fetch("https://newtrackon.com/api/100"),t=await e.text();u.announce=u.announce.concat(t.split("\n\n")),u.announce.push("http://bt1.archive.org:6969/announce"),u.announce.push("http://bt2.archive.org:6969/announce"),u.announce=u.announce.filter(((e,t)=>e&&u.announce.indexOf(e)===t)),N.success("Added known working trackers from newTrackon"),J()}catch(e){N.error("Problem fetching trackers from newTrackon"),console.warn(e)}_.className="",_.innerHTML="Add Known Working Trackers",F(),gtag("event","add_trackers")}function Y(){u[this.dataset.type].unshift(""),F()}function K(){u[this.parentElement.className].splice(this.parentElement.dataset.index,1),F()}function X(e){u[e]=[],J(),F()}function J(){u.created=new Date,u.createdBy="Torrent Parts ",u.created?(v.value=u.created.toISOString().slice(0,19),v.type="datetime-local"):v.type="text",b.value=u.createdBy?"by "+u.createdBy:""}function Z(){console.info("Attempting fetching files from Webtorrent..."),A.style.display="none",u.announce.push("wss://tracker.webtorrent.io"),u.announce.push("wss://tracker.openwebtorrent.com"),u.announce.push("wss://tracker.btorrent.xyz"),u.announce.push("wss://tracker.fastcast.nz"),u.announce=u.announce.filter(((e,t)=>e&&u.announce.indexOf(e)===t)),P.add(r.toMagnetURI(u),(e=>{u.info=Object.assign({},e.info),u.files=e.files,u.infoBuffer=e.infoBuffer,u.length=e.length,u.lastPieceLength=e.lastPieceLength,J(),F(),N.success("Fetched file details from Webtorrent peers"),e.destroy()})),F(),gtag("event","attempt_webtorrent_fetch")}function Q(){let e=r.toTorrentFile(u);if(null!==e&&navigator.msSaveBlob)return navigator.msSaveBlob(new Blob([e],{type:"application/x-bittorrent"}),u.name+".torrent");let t=document.createElement("a");t.style.display="none";let n=window.URL.createObjectURL(new Blob([e],{type:"application/x-bittorrent"}));t.setAttribute("href",n),t.setAttribute("download",u.name+".torrent"),document.body.appendChild(t),t.click(),window.URL.revokeObjectURL(n),t.remove(),gtag("event","share",{method:"Torrent Download",content_id:u.name})}window.addEventListener("resize",D),D(),document.addEventListener("DOMContentLoaded",(function(){document.getElementById("magnet").addEventListener("keyup",(function(e){e.preventDefault(),"Enter"===e.key&&(p="magnet",f.innerHTML='',h.setContent("Currently loaded information sourced from Magnet URL"),q(magnet.value))})),document.getElementById("torrent").addEventListener("change",(function(e){e.preventDefault(),e.target.files[0].arrayBuffer().then((function(e){p="torrent-file",f.innerHTML='',h.setContent("Currently loaded information sourced from Torrent file"),q(o.from(e))}))}));let e=new i("#copyURL");e.on("success",(function(e){N.success("Copied site URL to clipboard!"),console.info(e),gtag("event","share",{method:"Copy URL",content_id:e.text})})),e.on("failure",(function(e){N.error("Problem copying to clipboard"),console.warn(e)}));let t=new i("#copyMagnet");t.on("success",(function(e){N.success("Copied Magnet URL to clipboard!"),gtag("event","share",{method:"Copy Magnet",content_id:e.text})})),t.on("failure",(function(e){N.error("Problem copying to clipboard"),console.warn(e)})),m.addEventListener("input",V),m.addEventListener("change",V),m.addEventListener("reset",V),m.addEventListener("paste",V),g.addEventListener("click",$),x.addEventListener("input",V),x.addEventListener("change",V),x.addEventListener("reset",V),x.addEventListener("paste",V),_.addEventListener("click",G),w.addEventListener("click",Y),k.addEventListener("click",(()=>X("announce"))),C.addEventListener("click",Y),T.addEventListener("click",(()=>X("urlList"))),A.addEventListener("click",Z),l("[data-tippy-content]",{theme:"torrent-parts",animation:"shift-away-subtle"}),h.disable(),window.location.hash&&(p="shared-url",f.innerHTML='',h.setContent("Currently loaded information sourced from shared torrent.parts link"),q(window.location.hash.split("#")[1]))}))},{Buffer:2,bytes:62,clipboard:79,"mime-types":144,"parse-torrent":184,"tippy.js":289,webtorrent:309}]},{},[337]);
\ No newline at end of file
diff --git a/index.html b/index.html
index 08b558b..27d43e5 100644
--- a/index.html
+++ b/index.html
@@ -77,15 +77,21 @@
+
-
-
+
+
+
+
+
+
+
diff --git a/parse.js b/parse.js
index c921f08..803b05b 100644
--- a/parse.js
+++ b/parse.js
@@ -27,10 +27,11 @@ var files = document.getElementById('filesBody');
var getFiles = document.getElementById('getFiles');
var copyURL = document.getElementById('copyURL');
var copyMagnet = document.getElementById('copyMagnet');
+var downloadTorrentWrapper = document.getElementById('downloadTorrentWrapper');
var downloadTorrent = document.getElementById('downloadTorrent');
var copyURLTooltip = tippy(copyURL, {"theme": "torrent-parts", "animation": "shift-away-subtle", "content": "Copy torrent.parts link to clipboard"});
var copyMagnetTooltip = tippy(copyMagnet, {"theme": "torrent-parts", "animation": "shift-away-subtle", "content": "Copy Magnet link to clipboard"});
-var downloadTorrentTooltip = tippy(downloadTorrent, {"theme": "torrent-parts", "animation": "shift-away-subtle", "content": "Download Torrent file"});
+var downloadTorrentTooltip = tippy(downloadTorrentWrapper, {"theme": "torrent-parts", "animation": "shift-away-subtle", "content": "Download Torrent file"});
var parsed;
var client = new WebTorrent();
var notyf = new Notyf({
@@ -263,6 +264,7 @@ function display() {
files.appendChild(createFileRow(icon, file.name, file.length));
}
files.appendChild(createFileRow('folder-tree', '', parsed.length));
+ downloadTorrentTooltip.setContent('Download Torrent file');
downloadTorrent.addEventListener('click', saveTorrent);
downloadTorrent.disabled = false;
} else {
@@ -273,6 +275,7 @@ function display() {
getFiles.style.display = "block";
files.innerHTML = '';
}
+ downloadTorrentTooltip.setContent('Files metadata is required to generate Torrent file. Try fetching files list from WebTorrent.');
downloadTorrent.removeEventListener('click', saveTorrent);
downloadTorrent.disabled = true;
}
diff --git a/style.css b/style.css
index 5319d00..5925ea2 100644
--- a/style.css
+++ b/style.css
@@ -183,7 +183,7 @@ label[for="torrent"] {
flex-direction: column;
}
-#share > * {
+#share > div > button {
width: 64px;
height: 64px;
border-radius: 50%;