HowToCreatePlugin.fr - Novik/ruTorrent GitHub Wiki


=Как написать плагин самому=

<wiki:TOC />

== Теория ==

Плагины ruTorrent располагаются внутри директории plugins. Каждому плагину должна соответствовать директория с уникальным именем, в которой, собственно, файлы плагина и лежат. Ряд файлов плагина имеют зарезервированные имена и цели применения. Это

=== plugin.info ===

Файл описания плагина. В отличие от прочих файлов, наличие этого - обязательно. Файл содержит ряд строк с директивами, каждая директива - на новой строке. Директивы имеют формат имя_директивы: значение_директивы и могут быть следующими:

|| Имя || Значение || Значение по умолчанию || Необходима || || description || Описание плагина. Строка на английском языке, которая будет показана на интерфейсе в закладке "Плагины". || Пустая строка || Нет || || author || Автор плагина. Строка на английском языке, которая будет показана на интерфейсе в закладке "Плагины". || unknown || Нет || || version || Версия плагина. Десятичное число с плавающей точкой. Будет показано на интерфейсе в закладке "Плагины", также может использоваться прочими плагинами для проверки. || Отсутствует || Да || || need_rtorrent || 1, если для работы плагина требуется rTorrent, в противном случае 0. || 1 || Нет || || remote || Директива управляет поведением плагина в случае, если rTorrent находится на другой машине (не на той же, что ruTorrent). Возможные значения: error - плагин не будет загружен, и будет выдано сообщение об ошибке. warning - плагин будет загружен, но на интерфейсе будет показано замечание. ok - плагин будет загружен. || ok || Нет || || runlevel || Номер в очереди загрузки, десятичное число с плавающей точкой. Плагины с меньшим номером загружаются раньше, с бОльшим, соответственно, позже. || 10.0 || Нет ||

=== init.js ===

Содержимое данного файла полностью внедряется в код ruTorrent в момент загрузки пользователем последнего. Т.е. это хорошее место для для замены или добавления логики в скрипт ruTorrent. При внедрении весь наличный код оформляется как javascript заключение, проще говоря, все локальные переменные, объявленные в коде, не будут видны нигде за его пределами.

В коде может использоваться уже созданный экземпляр объекта rPlugin с именем plugin. Если кому-то хочется подробностей относительно его методов - предлагаю обратиться непосредственно к коду, файл ru/torrent/js/plugins.js.

=== init.php ===

Данный файл просто выполняется при загрузке ruTorrent. Обычно он содержит какую-либо инициализацию, требующую проверки состояния rTorrent на данный момент - например, там может проверяться версия rTorrent, выдаваться указания планировщику, частично формироваться внедряемый javascript.

Последнее может быть выполнено путем корректирования двух строковых переменных - $jResult и $jEnd. Первая содержит код, добавляемый к началу скрипта плагина (перед содержимым init.js), второй - код, добавляемый в конец. Обращаю внимание, что данные переменные могут уже содержать некоторые строки скрипта, переписывать их нежелательно, следует использовать конкатенацию.

=== done.php ===

Этот скрипт выполняется, когда пользователь на закладке "Плагины" выбирает в контекстном меню команду "Выгрузить" для конкретного плагина. Как правило, скрипт содержит действия, обратные заданным в файле init.php. Т.е., например, если в init.php Вы добавляли задание в планировщик rTorrent, то здесь Вы должны это задание удалить.

Under construction

⚠️ **GitHub.com Fallback** ⚠️