CCExtractor / rutorrent-flutter

A ruTorrent-based client in Flutter
MIT License
130 stars 111 forks source link
dart flutter rutorrent rutorrent-mobile
ruTorrent Mobile

ruTorrent Mobile

GSOC 2020

A ruTorrent-based client build in Flutter

The project is a flutter application for ruTorrent web interface. The app communicates with ruTorrent's backend via REST APIs to display the information about the torrents and the functionality to control its basic features. It also supports some plugin functionalities as provided in the ruTorrent web.

Additionally, you can also stream torrents from your server (or seedbox) and download them locally to your mobile device (a save offline feature), which makes torrenting a seamless experience for ruTorrent users.

Download App

ruTorrent and rtorrent

ruTorrent Web

ruTorrent is the most popular web interface for rtorrent, which is possibly the most used BitTorrent client in Linux. It is mostly a web application, but it has its own backend that connects to rtorrent.

In short:

rtorrent ⇒ The BitTorrent client, a console-based tool that also has an API to interact with it.

ruTorrent ⇒ A web interface for rtorrent that uses that API. It also does other things, for example, it can download torrents from an RSS feed. You configure RSS feeds in rutorrent's web interface, but there's also a backend service (written in PHP) that is part of rutorrent to do the actual download.

Thus, our Flutter application talks with ruTorrent's backend service to provide a native interface.

Diagram

App Preview

📷 Screenshots
Login Screen | All Torrents Screen | Downloaded Torrents Screen | Drawer Screen :-------------------------:|:-------------------------:|:-------------------------:|:-------------------------: ![Login_screen](https://user-images.githubusercontent.com/47276307/113502426-e6aa3e00-9549-11eb-84d1-ef206be8c81d.jpeg)|![All_Torrents_screen](https://user-images.githubusercontent.com/47276307/113502413-de520300-9549-11eb-874c-75df7fdc9bb9.png)|![Downloaded_Torrents_screen](https://user-images.githubusercontent.com/47276307/113501966-be6d1000-9546-11eb-8e25-8712453db047.jpeg)|![Drawer_screen](https://user-images.githubusercontent.com/47276307/113501974-c6c54b00-9546-11eb-8293-348a66e19e30.jpeg)| Rss-Feed Screen | RSS-filters Screen | Settings Screen | Splash Screen :-------------------------:|:-------------------------:|:-------------------------:|:-------------------------: ![RSS_feed_screen](https://user-images.githubusercontent.com/47276307/113501981-cfb61c80-9546-11eb-8b96-74c959cf6bb2.jpeg)|![RSS_filters_screen](https://user-images.githubusercontent.com/47276307/113501983-d2b10d00-9546-11eb-853f-aeff84964462.jpeg)|![Settings_screen](https://user-images.githubusercontent.com/47276307/113501986-d6dd2a80-9546-11eb-8cfb-c85493c474fc.jpeg)|![Splash_screen](https://user-images.githubusercontent.com/47276307/113501988-d93f8480-9546-11eb-885d-85801fc71b3e.jpeg)| Disk Explorer Screen (seedbox) | History Screen | :-------------------------:|:---------------------:| ![Disk_Explore_screen](https://user-images.githubusercontent.com/47276307/113501965-bb721f80-9546-11eb-84d9-ea450462296e.jpeg)|![History_screen](https://user-images.githubusercontent.com/47276307/113501977-c927a500-9546-11eb-9bae-f13fb384828a.jpeg)|

Usage

In order to use this flutter application you should have ruTorrent configured on your system, after which you can connect your mobile on the same network as your system and use the app by entering the configuration (IP address).

If you find any difficulty to run ruTorrent and rtorrent on your system, you can use this docker image.

Though the primary usage of this application is to control ruTorrent hosted on your seedbox account.

Seedbox

A seedbox is a dedicated BitTorrent server. Oftentimes they are rented out by companies called seedbox providers.

Seedboxes usually have a high speed Internet connection. This allows users to download torrents quickly and seed the torrents for a long time.

You can learn more about seedbox here.

Getting Started

  1. Clone the repository from GitHub:
git clone https://github.com/CCExtractor/rutorrent-flutter
  1. Navigate to project's root directory:
cd rutorrent-flutter
  1. Check for Flutter setup and connected devices:
flutter doctor
  1. For IOS

    • Uncomment platform :ios, '9.0' from ios/Podfile
    • Cd into the new ios directorycd ios
    • From the ios directory pod install --verbose
  2. Run the app:

flutter run

Contributing

Contribution to the project can be made if you have some improvements for the project or if you find some bugs. You can contribute to the project by reporting issues, forking it, modifying the code and making a pull request to the repository.

Please make sure you specify the commit type when opening pull requests:

feat: The new feature you're proposing

fix: A bug fix in the project

style: Feature and updates related to UI improvements and styling

test: Everything related to testing

docs: Everything related to documentation

refactor: Regular code refactoring and maintenance

Community

You may join the gsoc-rutorrent channel of CCExtractor community through slack and propose improvements to the project.

License

The project is released under the MIT License. The license can be found here.

Flutter

For help getting started with Flutter, view online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.