Плагин Flutter для скачивания торрентов

Я хочу разработать приложение Flutter для поиска и загрузки файлов с торрента. Часть поиска завершена, но теперь я не знаю, как реализовать функцию загрузки.

Я хочу загрузить фактический файл, на который указывает торрент-файл или магнитная ссылка. Например, я хочу, чтобы приложение загружало дистрибутив Linux из заданного торрент-файла или по заданной магнитной ссылке.

Есть ли для этого какой-нибудь плагин или мне нужно его собрать самому? Если мне нужно его создать, то как?


person T Hansda    schedule 14.07.2019    source источник
comment
Разве это не эквивалентно загрузке файла?   -  person 10101010    schedule 14.07.2019
comment
Нет, это не так. У Torrent есть собственный протокол для обработки нескольких одноранговых узлов и сбора фрагментов от всех одноранговых узлов.   -  person T Hansda    schedule 14.07.2019
comment
Думаю, у вас вопрос как скачать торрент файл. Вы хотите спросить о другом?   -  person 10101010    schedule 14.07.2019
comment
Прошу прощения, мой вопрос не так понятен. Я не хочу скачивать торрент-файл. Я хочу загрузить фактический файл, на который указывает магнитная ссылка или торрент-файл. Например, загрузите дистрибутив Linux из его .torrent-файла или по магнитной ссылке.   -  person T Hansda    schedule 14.07.2019
comment
Для загрузки фактических файлов вам понадобится bitorrent-клиент. Я не знаю плагина bittorrent для флаттера. github.com/mpetazzoni/ttorrent написан на java. Как это сделать - большой вопрос. Вам нужно будет реализовать протокол BitTorrent. Спецификация для которого доступна на bittorrent.org/beps/bep_0003.html.   -  person 10101010    schedule 14.07.2019
comment
Раньше я искал GitHub, есть несколько библиотек, написанных на Java, но я изо всех сил пытаюсь реализовать их во флаттере. Спасибо за ссылку на спецификацию, это должно быть полезно, если мне придется создавать плагин сам.   -  person T Hansda    schedule 14.07.2019
comment
Вы можете отправить этот торрент-файл на сервер, делать там что-то и отправлять контент в приложение. Клиентов на стороне сервера очень много.   -  person 10101010    schedule 18.07.2019


Ответы (1)


Я разработал пакет Torrento для работы с торрентами.

Он поддерживает множество торрент-клиентов и позволяет управлять ими удаленно.

Вот что можно попробовать скачать с торрентов:

  • Установите программное обеспечение вашего торрент-клиента
  • Установите имя пользователя и пароль для веб-интерфейса в настройках.

Затем вы можете загрузить или добавить торренты и т. Д., Включив указанный выше пакет в файл pubspec.yaml вашего flutter.

Вот небольшой пример:

import 'package:torrento/torrento.dart';

QbitTorrentController obj = QbitTorrentController('192.168.0.101' , 8080) ; 
await obj.logIn('username' , 'password') ; 

await obj.addTorrent('magnet:?xt=urn:btih:0d18397945bcc9f495818aa2c823ab167dc8da5c&dn=The.Lion.King.2019.1080p.BluRay.H264.AAC-RARBG') ; 

var torrents = await obj.getTorrentsList(filter: TorrentFilter.paused) ; 

torrents.forEach((t)=>print('${t['name']} : ${t['hash']}')) ; 

print("Starting all torrents") ;
await obj.startAllTorrents() ; 

print(await obj.getVersion()) ; 

await obj.logOut() ; 
person Natesh bhat    schedule 27.04.2020
comment
Искал торрент-клиент, который можно интегрировать в проект flutter. - person T Hansda; 20.02.2021