mirror of
https://gitlab.com/foxixus/neomovies_mobile.git
synced 2025-10-28 01:18:50 +05:00
v0.0.2
This commit is contained in:
@@ -1,20 +1,8 @@
|
||||
# TorrentEngine Library
|
||||
|
||||
Мощная библиотека для Android, обеспечивающая полноценную работу с торрентами через LibTorrent4j.
|
||||
Либа для моего клиента и других независимых проектов где нужен простой торрент движок.
|
||||
|
||||
## 🎯 Возможности
|
||||
|
||||
- ✅ **Загрузка из magnet-ссылок** - получение метаданных и загрузка файлов
|
||||
- ✅ **Выбор файлов** - возможность выбирать какие файлы загружать до и во время загрузки
|
||||
- ✅ **Управление приоритетами** - изменение приоритета файлов в активной раздаче
|
||||
- ✅ **Фоновый сервис** - непрерывная работа в фоне с foreground уведомлением
|
||||
- ✅ **Постоянное уведомление** - нельзя закрыть пока активны загрузки
|
||||
- ✅ **Персистентность** - сохранение состояния в Room database
|
||||
- ✅ **Реактивность** - Flow API для мониторинга изменений
|
||||
- ✅ **Полная статистика** - скорость, пиры, сиды, прогресс, ETA
|
||||
- ✅ **Pause/Resume/Remove** - полный контроль над раздачами
|
||||
|
||||
## 📦 Установка
|
||||
## Установка
|
||||
|
||||
### 1. Добавьте модуль в `settings.gradle.kts`:
|
||||
|
||||
@@ -38,7 +26,7 @@ dependencies {
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
```
|
||||
|
||||
## 🚀 Использование
|
||||
## Использование
|
||||
|
||||
### Инициализация
|
||||
|
||||
@@ -127,7 +115,7 @@ lifecycleScope.launch {
|
||||
}
|
||||
```
|
||||
|
||||
## 📊 Модели данных
|
||||
## Модели данных
|
||||
|
||||
### TorrentInfo
|
||||
|
||||
@@ -180,7 +168,7 @@ enum class FilePriority(val value: Int) {
|
||||
}
|
||||
```
|
||||
|
||||
## 🔔 Foreground Service
|
||||
## Foreground Service
|
||||
|
||||
Сервис автоматически запускается при добавлении торрента и показывает постоянное уведомление с:
|
||||
- Количеством активных торрентов
|
||||
@@ -190,12 +178,10 @@ enum class FilePriority(val value: Int) {
|
||||
|
||||
Уведомление **нельзя закрыть** пока есть активные торренты.
|
||||
|
||||
## 💾 Персистентность
|
||||
## Персистентность
|
||||
|
||||
Все торренты сохраняются в Room database и автоматически восстанавливаются при перезапуске приложения.
|
||||
|
||||
## 🔧 Расширенные возможности
|
||||
|
||||
### Проверка видео файлов
|
||||
|
||||
```kotlin
|
||||
@@ -215,54 +201,6 @@ val selectedCount = torrent.getSelectedFilesCount()
|
||||
val selectedSize = torrent.getSelectedSize()
|
||||
```
|
||||
|
||||
## 📱 Интеграция с Flutter
|
||||
[Apache License 2.0](LICENSE).
|
||||
|
||||
Создайте MethodChannel для вызова из Flutter:
|
||||
|
||||
```kotlin
|
||||
class TorrentEngineChannel(private val context: Context) {
|
||||
private val torrentEngine = TorrentEngine.getInstance(context)
|
||||
private val channel = "com.neomovies/torrent"
|
||||
|
||||
fun setupMethodChannel(flutterEngine: FlutterEngine) {
|
||||
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, channel)
|
||||
.setMethodCallHandler { call, result ->
|
||||
when (call.method) {
|
||||
"addTorrent" -> {
|
||||
val magnetUri = call.argument<String>("magnetUri")!!
|
||||
val savePath = call.argument<String>("savePath")!!
|
||||
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
val hash = torrentEngine.addTorrent(magnetUri, savePath)
|
||||
result.success(hash)
|
||||
} catch (e: Exception) {
|
||||
result.error("ERROR", e.message, null)
|
||||
}
|
||||
}
|
||||
}
|
||||
// ... другие методы
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 📄 Лицензия
|
||||
|
||||
MIT License - используйте свободно в любых проектах!
|
||||
|
||||
## 🤝 Вклад
|
||||
|
||||
Библиотека разработана как универсальное решение для работы с торрентами в Android.
|
||||
Может использоваться в любых проектах без ограничений.
|
||||
|
||||
## 🐛 Известные проблемы
|
||||
|
||||
- LibTorrent4j требует минимум Android 5.0 (API 21)
|
||||
- Для Android 13+ нужно запрашивать POST_NOTIFICATIONS permission
|
||||
- Foreground service требует отображения уведомления
|
||||
|
||||
## 📞 Поддержка
|
||||
|
||||
При возникновении проблем создайте issue с описанием и логами.
|
||||
Made with <3 by Erno/Foxix
|
||||
Reference in New Issue
Block a user