Мобильная версия ruTorrent

в 20:06, , рубрики: linux, Peer-to-Peer, plugin, rtorrent, ruTorrent, плагин, метки: , , ,

У меня дома стоит мини-сервер сделанный из старого ноутбука. Одно из основных предназначений – торренты. В качестве клиента используется rTorrent + rutorrent. В такой связке меня всё устраивало кроме одного: невозможность использовать rutorrent со смартфона. Причин на это две:

  1. Сильная зависимость от правой кнопки мыши. Лечится при помощи плагина ipad, но как можно сделать вывод из названия плагина этот вариант подходит только для планшетов из-за второй причины.
  2. Неприспособленность интерфейса к маленьким дисплеям. Пример можно увидеть на скриншоте ниже (скриншот сделан на HTC Incredible S. Разрешение: 800x480, размер экрана: 4")

Мобильная версия ruTorrent

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

Одно из преимуществ rutorrent – расширяемость при помощи плагинов. Собственно мной и был написан плагин полностью меняющий интерфейс под мобильные устройства. Вот что получилось:

Мобильная версия ruTorrent Мобильная версия ruTorrent Мобильная версия ruTorrent

Если вас заинтересовал данный плагин то вот ссылка на архив с последней версией. Текущая разрабатываемая версия доступна на github-е.

Как видно на скриншотах интерфейс был полностью переделан для удобства использования на маленьких дисплеях. Старый естественно никуда не исчезает. Плагин сам определяет по «User Agent»-у когда надо включатся, или вы можете сами включать-выключать мобильный интерфейс, изменяя URL. Подробности в разделе «использование».
Для создания интерфейса был использован Twitter Bootstrap. Для автоопределения использован скрипт с сайта http://detectmobilebrowser.com/.

Возможности

Мобильная версия не полностью реализует функционал стандартной версии. Вот список доступных функций:

  • Просмотр текущих торрентов (с фильтрацией на скачивающиеся и законченные), их состояния и детальной информации о них
  • Просмотр и редактирование меток
  • Изменение глобальных ограничений скорости на скачивание и отдачу
  • Список трекеров торрента и браузер файлов
  • Добавление новых торрентов как файлом, так и по magnet ссылкам
  • Удаление торрентов (в том числе вместе с данными)

Установка

Всё как обычно для плагинов rutorrent: просто скопировать папку с плагином в папку rutorrentplugins.

Если вы хотите удалять торренты вместе с данными, то так же необходимо установить плагин erasedata, который можно скачать с официальной страницы rutorrent.

Настройка

Все настройки хранятся в файле init.js. Всего на данный момент всего два параметра для изменения:

1. plugin.enableAutodetect – автоопределение браузера (мобильный или нет). Если отключить то мобильный интерфейс можно будет включить только изменяя URL
2. plugin.eraseWithDataDefault – «удалить вместе с данными», значение по умолчанию. Возможно три значения:

  • undefined – в первый раз данные не удалять. В последующих сохраняется предыдущее значение до первой перезагрузки страницы.
  • false (по умолчанию) – по умолчанию всегда не удалять
  • true – по умолчанию всегда удалять.

Если в настройках rutorrent отключено подтверждение удаление торрента, то мобильная версия будет вести себя так же. Решение об удалении данных принимается в зависимости от параметра plugin.eraseWithDataDefault.

Использование

Если включено автоопределение браузера то плагин начинает работать автоматически при загрузке страницы. Так же можно принудительно запустить мобильную версию путём добавления строчки " ?mobile=1" в конце адреса.

Послесловие

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

Автор: zebraxxl

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js