Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import * as magnet from 'magnet-uri';
// "Leaves of Grass" by Walt Whitman
// tslint:disable-next-line:max-line-length
const uri = 'magnet:?xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36&dn=Leaves+of+Grass+by+Walt+Whitman.epub&tr=udp%3A%2F%2Ftracker.example4.com%3A80&tr=udp%3A%2F%2Ftracker.example5.com%3A80&tr=udp%3A%2F%2Ftracker.example3.com%3A6969&tr=udp%3A%2F%2Ftracker.example2.com%3A80&tr=udp%3A%2F%2Ftracker.example1.com%3A1337';
const parsed = magnet.decode(uri);
console.log(parsed);
console.log(magnet.encode(parsed));
function fromMagnet(name, type, uri) {
const parsed = magnet.decode(uri);
const infoHash = parsed.infoHash.toLowerCase();
const tags = [];
if (uri.match(/720p/i)) tags.push("720p");
if (uri.match(/1080p/i)) tags.push("1080p");
return {
name: name,
type: type,
infoHash: infoHash,
sources: (parsed.announce || []).map(function(x) { return "tracker:"+x }).concat(["dht:"+infoHash]),
tag: tags,
title: tags[0], // show quality in the UI
}
}
var dupes = Object.keys(torrents).filter(function (key) {
return magnet.decode(data.magnet).infoHash == torrents[key].infoHash;
});
if (dupes.length > 0) {
var dupes = Object.keys(torrents).filter((key) => {
return magnet.decode(data.magnet).infoHash == torrents[key].infoHash;
});
if (dupes.length > 0) {
}}
>
Save
))}
}
{ `${displayName} shared a file` }
{ (!file.active && !file.files) &&
<div>
{ magnet.decode(magnetUri).dn }
{ canShareFiles ?
<button>
{
roomClient.handleDownload(magnetUri);
}}
>
Download
</button>
:
Your browser does not support downloading files using WebTorrent.</div>
<p>{this.props.data.name} shared a file.</p>
)}
{!this.state.active && !this.state.files && (
<div>
{WebTorrent.WEBRTC_SUPPORT ? (
<span>
<img src="resources/images/download-icon.svg">
</span>
) : (
<p>
Your browser does not support downloading files using WebTorrent.
</p>
)}
<p>{magnet.decode(this.props.data.file.magnet).dn}</p>
</div>
)}
{this.state.active && this.state.numPeers === 0 && (
<p>
Locating peers
</p>
{this.state.timeout && (
<p>
If this process takes a long time, there might not be anyone seeding
this torrent. Try asking someone to reupload the file that you want.
</p>
)}