Шпаргалка по xdcc

Искал я как-то одну штуку в торрентах, искал, да так и не нашёл. :( Но обнаружил, что есть искомое на одном irc-канале, раздаваемое ботом. С irc раньше дела иметь не приходилось (необходимости не возникало), но тут уж решил пройти этот квест – уж очень хотелось файликов заветных, которые так долго искал.

Итак, в качестве клиента был взят найденный в пакетах и бывший на слуху irssi. Пакет был вмиг поставлен; процедура запуска и соединения с сервером проста:

irssi -c irc.rizon.net

После запуска клиента и установки соединения можно ознакомиться со списком команд клиента, набрав в строке ввода /help. Так была выяснена команда для задания ника: /nick nickname, а также нужная команда для соединения с каналом: /join #channelname. Итак, я оказался на заветном канале (hint: в irssi различные окна переключаются по Alt-N, где N – соответствующая цифра; после соединения с каналом надо переключиться в его окно).

Передача файлов в irc реализована с использованием расширения xdcc, при этом устанавливаются прямые соединения между двумя клиентами, по аналогии с p2p сетями. Поддержка xdcc в irssi имеется.

Запрос нужного файла у бота выполняется следующей командой:

/msg BotName xdcc get NUM

Где NUM – это номер файла. В моём случае список файлов с указанием соответствующих им номеров был опубликован на форуме, поэтому мне оставалось только указывать правильные номера. После подачи вышеуказанной команды, в irssi откроется новое окно диалога с этим ботом (переключаемся на него по Alt-NUM), где надо согласиться с приёмом файла, введя команду /dcc get. Если всё в порядке, закачивание файла должно начаться (по умолчанию – в домашний каталог). Проследить за статусом скачивания можно используя команду /dcc list на первом экране (Alt-1).

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

Первый же запрос в google привёл к успеху: был найден скрипт multiget, предназначенный для автоматизации скачивания файлов через xdcc.

Скрипт нужно сохранить в каталог ~/.irssi/scripts, после чего загрузить его в irssi: /script load mg.pl. Для более правильной работы скрипта установим также соответствующие переменные:

/set dcc_download_path ~/downloads
/set dcc_autoget on
/set dcc_autoresume on

За что отвечают эти параметры понятно из их имён. Сейчас всё полностью готово для автоматизированного закачивания всех нужных мне файлов, осталось только дать соответствующую команду:

/mg BotName 309-332

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

Итог: оказывается, irc не так уж и страшен, а я теперь знаю ещё один механизм передачи файлов.