-1

我是 React Native 的新手。我想在我的 react 本机应用程序中添加一个功能,用于下载和保存种子文件。我已经知道如何在 nodejs 中使用 webtorrent 做到这一点,但不知道如何在 react native 中实现它。

这是nodejs代码

const WebTorrent = require('webtorrent')

const fs = require('fs')
const torrentId = 'magnet:?xt=urn:btih:D448523AFAFC571D7FA5C58078E9AD8C5D09DD7F&dn=Jimmy+Fallon+2022+02+25+Uma+Thurman+720p+HEVC+x265-MeGusta&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.dler.org%3A6969%2Fannounce&tr=udp%3A%2F%2Fopentracker.i2p.rocks%3A6969%2Fannounce&tr=udp%3A%2F%2F47.ip-51-68-199.eu%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.internetwarriors.net%3A1337%2Fannounce&tr=udp%3A%2F%2F9.rarbg.to%3A2920%2Fannounce&tr=udp%3A%2F%2Ftracker.pirateparty.gr%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.cyberia.is%3A6969%2Fannounce'

console.log('Torrent id: \t' + torrentId)

const client = new WebTorrent()

client.add(torrentId, torrent => {
    const files = torrent.files
    let length = files.length

    console.log('Number of files:- \t' + length)

    let interval = setInterval(() => {
        console.log("Progress: " + (torrent.progress * 100).toFixed() + "%")
    }, 5000)

    files.forEach(file => {
        console.log(file)
        const source = file.createReadStream()
        const destination = fs.createWriteStream(file.name)

        source.on('end', () => {
            console.log('file \t\t', file.name)
            length -= 1

            if (length) clearInterval(interval)
        }).pipe(destination)
    })
})

4

0 回答 0