LINUX.ORG.RU
ФорумMobile

Написал клиент удаленного управления для Transmission под Android

 ,


4

3
  • Может переключаться между несколькими серверами.
  • Торренты можно сортировать по разным критериям, а также фильтровать по имени, статусу и трекеру.
  • Показывает файлы торрента в виде дерева вместо простого списка всех файлов, как некоторые другие приложения.
  • Возможность редактировать трекеры торрента.
  • Показывает список пиров.
  • Можно настраивать ограничения для каждого торрента.
  • При добавлении торрент-файла можно выбрать, какие файлы скачивать.
  • Возможность изменять почти все настройки сервера (в человекопонятном виде).
  • Статистика сервера.
  • Поддержка HTTPS, в том числе подключение к серверам с самоподписанными сертификатами и аутентификация с помощью клиентского сертификата.

Требуетcя Android 4.0.3 и выше.

Гитхаб

Google Play

Возможно, кому-то понадобится.

★★

Последнее исправление: equeim (всего исправлений: 2)

GNU GENERAL PUBLIC LICENSE Version 3

Одобрям.

mandala ★★★★★
()
Ответ на: комментарий от andreyu

Фильтр торрентов по имени и трекерам.

Показывает файлы торрента в виде дерева вместо простого списка всех файлов

Можно устанавливать приоритет файлов.

Возможность редактировать трекеры торрента.

При добавлении торрент-файла можно выбрать, какие файлы скачивать.

Возможность изменять почти все настройки сервера (в человекопонятном виде).

Статистика сервера.

Подключение к серверам с самоподписанными сертификатами и аутентификация с помощью клиентского сертификата.

Материальный дизайн (не все сочтут это плюсом, но тем не менее).

Опенсорс.

equeim ★★
() автор топика

Годно, нужно. Будем посмотреть.

dhameoelin ★★★★★
()

Поставил на телефон, вечером дома погоняю.

В целом список возможностей выглядит годно, присоединяюсь к товарищам и жду донат-версию.

mir-inoy ★★
()

Перемещение раздач есть?

У меня падает сразу после добавления сервера и позже просто при запуске. Отчет в GP отправил.

На иконке какой-то бородатый мужик в очках из южного парка. :)

Radjah ★★★★★
()
Последнее исправление: Radjah (всего исправлений: 1)

Клиент выглядит получше Remote Transmission, но у меня почему-то не работает сортировка по всем полям, кроме ETA

Автору спасибо за работу!

r0ck3r ★★★★★
()
Последнее исправление: r0ck3r (всего исправлений: 1)

Всё подумывал такое же сделать для rtorrent, если не появилось ещё (или появится).

orm-i-auga ★★★★★
()

Корованы-то хоть можно грабить? Написал я в 2009-м от скуки клиент для rtorrent (андроед? в браузере похер), но... у тебя это пройдет :)

Требуетcя Android 4.0.3 и выше

омг.

slackwarrior ★★★★★
()
Ответ на: комментарий от equeim

192.168.1.30 - это машина с transmission-daemon.

02-01 11:27:17.020 22895 23528 E AndroidRuntime: java.lang.RuntimeException: An error occurred while executing doInBackground()
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at android.os.AsyncTask$3.done(AsyncTask.java:309)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at java.util.concurrent.FutureTask.run(FutureTask.java:242)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:818)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Not a valid domain name: '192.168.1.30'
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:191)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at com.google.common.net.InternetDomainName.<init>(InternetDomainName.java:141)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at com.google.common.net.InternetDomainName.from(InternetDomainName.java:196)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at org.equeim.tremotesf.Tracker.update(Torrent.kt:466)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at org.equeim.tremotesf.Torrent.update(Torrent.kt:356)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at org.equeim.tremotesf.Torrent.<init>(Torrent.kt:251)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at org.equeim.tremotesf.Rpc$getTorrents$1$1.doInBackground(Rpc.kt:474)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at org.equeim.tremotesf.Rpc$getTorrents$1$1.doInBackground(Rpc.kt:463)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at android.os.AsyncTask$2.call(AsyncTask.java:295)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
02-01 11:27:17.020 22895 23528 E AndroidRuntime: 	... 4 more
Radjah ★★★★★
()
Последнее исправление: Radjah (всего исправлений: 1)

MIUI 8, работает. Спасибо. Удобно.

Crewger
()

А чем отличается от transdroid?

anonymous
()

Котлин это хорошо. А чего kotlin-extentions не заюзал? Tакже по феншую было бы держать весь котлин код в src/kotlin а не java. Добавляется парой строк в конфиге:

sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
        test.java.srcDirs += 'src/test/kotlin'
}

ii8_ ★★★★
()
Ответ на: комментарий от ii8_

А чего kotlin-extentions не заюзал?

Интересная штука, не знал о ней. А с фрагментами она работает? (если ты об этом, конечно)

Tакже по феншую было бы держать весь котлин код в src/kotlin а не java

Строка в build.gradle у меня есть, а код все равно в java. Надо бы переместить.

equeim ★★
() автор топика
Последнее исправление: equeim (всего исправлений: 1)

кто может помочь с настройкой transmission daemon? запускаю демона а он запускается на порту который прописан в peer-port": 51413, а на порту «rpc-port»: 9091 ничего нет

denix123
()
Ответ на: комментарий от denix123

Что выдает «netstat -anp | grep 9091»?

Как запускаешь transmission-daemon? В прошлых версиях был баг, если на момент запуска демона не было сети (при загрузке системы, например), то он не запускал rpc-сервер.

Еще проверь, что редактируешь settings.json там, где нужно. Во многих дистрибутивах он по умолчанию запускается от своего пользователя с домашней директорией где-нибудь в /var/lib.

equeim ★★
() автор топика

Radjah s0n1k

Обновил.

  • Добавлена возможность перемещать торренты
  • Добавлена возможность переименовывать файлы в торренте
  • Исправлено падение в случае если адрес трекера является IP-адресом
equeim ★★
() автор топика
Ответ на: комментарий от equeim

Вот теперь интерфейс оценить можно. :)

Я в построении интерфейсов не особо силён, поэтому скажу как есть.

Смутил значок паузы у запущенный торрентов.
«Раздаётся 1 пиру» ИМХО лучше, чем «Раздаётся к 1 пиру».
Не сразу понял, что значок бесконечности - это ETA, а не ratio.
И пустота между скоростью раздачи/загрузки и состоянием ИМХО много места съедает. У меня на телефона на один экран влезает 5 раздач, если сделать «загрузка | отдача | состояние» в одну строку, то должна поместиться еще одна.

А так шустро работает, до этого пользовался почившим «TransGUI Pro», который как раз обеспечивал полный функционал десктопной проги «Transmission remote GUI».

Radjah ★★★★★
()
Ответ на: комментарий от equeim

А с фрагментами она работает?

Конечно работает. На самом деле там нет никакой магии - грубо говоря оно вызывает getView().findViewById... Во фрагменте просто нужно их вызывать в onViewCreated() и после, ну чтобы вьюхабыл уже засетана. А так удачи,молодец!

ii8_ ★★★★
()
Ответ на: комментарий от ii8_

Да, я уже разобрался, спасибо. Но, насколько я понял, оно не работает с вложенными классами, т.е. когда в xml view создается так:

<view
    android:id="foo"
    class="org.foo.Foo$Bar"/>
В коде foo будет типа View и его надо будет вручную кастовать до Foo.Bar.

equeim ★★
() автор топика
Ответ на: комментарий от ii8_

Иногда логичнее (с точки зрения структуры кода) сделать кастомный View в виде вложенного класса. Также выведение типов не работает при использовании тэга include. Т.е. например у меня xml-код Toolbar'ов везде одинаковый, поэтому я его вынес в отдельный файл и вставляю с помощью include. В kotlin-коде его нужно кастовать вручную.

equeim ★★
() автор топика

Еще по обозначениям:

Стрелка вниз - торрент загружается (сейчас стрелка вверх)
Стрелка вверх - торрент загружен и раздаётся (сейчас пауза)
Пауза - торрент приостановлен (сейчас стрелка вниз)

Не думаю, что глюк системы или сервера.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

Да, в светлой теме иконке торрентов на главном экране перепутаны.

equeim ★★
() автор топика
Ответ на: комментарий от Deleted

Плюсую этого регистранта: пилишь и читаешь и голова не болит, где взять денег на продолжение разработки.

anonymous
()

BRE Radjah

1.2.0

  • Добавлена возможность изменять порядок сортировки торрентов
  • Способ и порядок сортировки торрентов теперь сохраняется в настройках
  • Исправлена сортировка по дате добавления
  • Дата добавления теперь показывается на вкладке сведений торрента
  • Исправлена иконка статуса торрента в светлой теме
equeim ★★
() автор топика
Ответ на: комментарий от equeim

В transmission daemon есть возможность последовательной загрузки?

denix123
()

Не нужно, есть Transdroid.

FIL ★★★★
()

А может кто кинуть нормальный русифицированный мануал по настройкам в конфиге Transmission? Пробовал настраивать через Remote Transmission, они после каждой перезагрузки Transmission сбрасываются на дефолт.

Grantrol
()
Ответ на: комментарий от Grantrol

При изменении настроек через клиент удаленного управления они сбрасываться не должны. Возможно, что-то не так с правами. Вручную settings.json нужно редактировать либо когда transmission не запущен, либо посылать процессу SIGHUP сразу после редактирования. В transmission-qt и сабже (у Tremotesf есть и десктопная версия, кстати) можно настроить большинство параметров.

equeim ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.