rwTorrent é um cliente bittorrent-restful para controlar a sessão de downloads atráves do navegador.E com port-forward é possivel acessar remotamente.
- Faltando 5 meses para eu entregar o tcc, eu ainda não tinha o tema em mente, então veio essa ideia de fazer um client torrent para ser utlizado no navegador
- Devido ao trabalho eu estava querendo aprimorar meu conhecimento no angular.
- Aprender coisas novas, no caso python e como a biblioteca de flask && libtorrent funcionam.
Por meio da biblioteca libtorrent juntamente com python-flask é possivel expor informações da sessão de torrent atráves de apis e por fim consumir pela SPA escrita em Angular.
- Adicionar/Remover Torrents por arquivo ou magnet link
- Controle de Velocidade de torrents a nivel de sessão ou de torrent
- Download Sequencial
- Pause/Resume
- Autenticação por simples chave
- Front End responsivo com Angular Material e Flexlayout
- Persistir as configurações particulares de cada torrent no disco
- Quando desenvolvido a rwTorrent a biding do python-libtorrent que foi compilada acabou faltando algumas funções dentre elas o session::find_torrent() que resultou em ter que fazer session::get_torrents() e iterar até achar o hash nescessario, sendo N vezes para achar no pior caso,ao invez do session::find_torrent() que faria 1 lookup na estrura interna da sessão (acredito que esteja implementado como dicionario)
- Adicionar suporte https
- pip3
- flask
- aenum
- flask_restful
- flask_cors
- flask_httpauth
- geoip2
- python3-libtorrent
python3-libtorrent está presente no repositorio do ubuntu e pode ser adiquirido também com apt-get, o resto é possivel obter com pip3
- npm
- angular-cli
cd ./ng-ui
npm i
cd ../../
python3 build_and_copy_ng.py #copiar output do ng build para os arquivos estaticos da api
cd ./torrent-api/
chmod +x rwTorrent.py
./rwTorrent.py [...args]
ou
cd ./torrent-api/
python3 rwTorrent.py [...args]
-o ,--open #abrir navegador
-p , --port {port_number} #setar a porta
-k , --key {key} #chave de autenticacao