User Tools

Site Tools


flyrouter:microdc2

microdc2

HomeSite *microdc2*

Консольный текстовый клиент для DirectConnect (DC), популярной пиринговой (P2P, peer-to-peer) файлообменной системы.

Для управления microdc2 использует командную строку:

  • поддерживается история команд через readline,
  • работает автодополнение команд и имён клавишей TAB,
  • имеется встроенная справка.

Инсталляция в FlyRouter (временно !!!):

ipkg install -d usb libreadline libncurses libpthread libxml2
cd /tmp
wget http://flyrouter.net/downloads/software/builder/microdc2_0.15.6-1_mipsel.ipk
ipkg install -d usb ./microdc2_0.15.6-1_mipsel.ipk

Дополнительная информация:

Удалось-таки победить microdc2 на предмет понимания "Великого и Могучего" русского языка. Проковырялся несколько дней, перекомпилировал и т.д., а оказалось все, как всегда, чрезвычайно просто!
Нужно всего лишь прописать в post-boot (ну или в скрипте, из которого запускается microdc2) ОДНУ строчку:
export LANG="ru_RU.KOI8-R"
ну или же
export LANG="ru_RU.UTF-8"
Тут уж кому как нравится. Просто при втором варианте вам в PuTTY в Window->Translation нужно будет выбрать/прописать вручную "UTF-8" без кавычек. Зато имена русских файлов на разделе ext3 будут читаться нормально. 
Т.е. microdc2 просто не мог определить какой язык используется в системе.
Далее опишу как лично я немного упростил использование microdc2.
1) кладу файлы microdc2 и tthsum в папку /usr/bin . Ну это понятно.
2) поскольку microdc2 имеет смысл запускать только из-под sreen, то его нужно установить, если он не установлен:
ipkg install screen
3) для удобной работы с microdc2 в окружении screen создаю два скрипта.
Первый с именем dcs , он будет запускать microdc2 в screen с прицепленным конфигом (о нем чуть позже):
#!/bin/sh
screen -dmS microdc /usr/bin/microdc2 -c /etc/.microdc2/config
Второй с именем dc будет "вытаскивать" консоль screen
#!/bin/sh
screen -x microdc
... и кладу оба скрипта опять же в /usr/bin . Ну и не забудьте сделать оба файла исполняемыми.
Теперь для ручного запуска достаточно просто набрать в консоли dcs
Для автоматического запуска просто нужно прописать в post-mount
/usr/bin/dcs
Чтобы вызвать окно с работающим microdc2, достаточно просто набрать dc в консоли. Чтобы скрыть окно не прерывая работы программы, нужно последовательно нажать Ctrl-A и Ctrl-D.
4) Очень важно. Создаем конфигурационный файл для microdc2 .
создаем папку /etc/.microdc2 (с точкой в начале. Просто где-то в поисках проблемы с русским языком я вычитал, что для того, чтобы конфиг "цеплялся", он должен лежать именно в такой папке. Скорее всего это неверно, но менять мне уже лень :) )
В этой папке создаем файл config примерно вот такого содержания:
set filesystem_charset UTF-8
set hub_charset cp1251
set log_charset koi8-r
set auto_reconnect on
set filelist_refresh_interval 600
set display connections download joinpart publicchat searchresults upload
set log connections download joinpart publicchat searchresults upload
share /tmp/harddisk/ftp_pub/Download
set downloaddir /tmp/harddisk/downloads
set listingdir /tmp/harddisk/microdc
set nick MyNick
set description "Me just BOT. Don't talk with me!"
set email me@mydomen.ru
set logfile /usr/var/log/microdc.log
set slots 5
set speed LAN(T3)
set active off
set listenport 2477
connect 10.10.10.10
В принципе здесь все прозрачно и понятно, но все-таки попробуем разобраться.
1) filesystem_charset - кодовая страница файловой системы. Чрезвычайно важный параметр, если вы предполагаете скачивать и раздавать файлы (или папки) с русскими именами. Поскольку у меня шары расположеным на разделе ext3, то у меня выставлено значение UTF-8. Если у вас ext2 или FAT, то наверное нужно будет выставлять koi8-r или cp866 соответственно. Попробуйте разобраться сами.
2) hub_charset - кодовая страница, используемая на конкретном хабе. Вероятнее всего на русских хабах будет cp1251. Теоретически возможно и UTF-8, но это врядли. Тоже чрезвычайно важный параметр, поскольку отвечает не только за правильное отображение и ввод языка в чате, но и за запрос/отдачу файлов с русскими именами.
3) log_charset - кодовая страница лога. Если вы в post-boot прописали ru_RU.KOI8-R, то выставляем koi8-r, чтобы мы могли читать лог в mc, если же выбрали ru_RU.UTF-8, то соответственно выставляем UTF-8.
4) auto_reconnect - автоматическое переподсоединение к хабу в случае разрыва коннекта. Ну здесь вес понятно - либо on, либо off. Переподсоединение происходит с периодичностью 10 сек.
5) filelist_refresh_interval (в секундах) - периодичность, с которой программа будет проверять папку с шарами на предмет изменения содержимого и, если таковое произойдет, именять файл-лист и хешировать новые файлы
6) display - что именно будет отображаться на дисплее. Понятно из названий. Если предполагается использовать программу чисто в виде робота без использования всяких чатов и т.п., то можно удалить, напривер, joinpart и publicchat. Если хочется заняться отладкой программы, то можно добавить debug
7) log - что будет записываться в лог. Аналогично предыдущему пункту.
8) share (обратите внимание, что для задания этой переменной не используется команда set) - папка, где у вас лежат файлы для раздачи.
9) downloaddir - папка, куда программа будет скачивать файлы
10) nick - ну это понятно. Ваш ник на хабе.
11) description - описание. Можно и не задавать эту переменную.
12) email - все понятно и так.
13) logfile - путь к файлу лога. Советую прописать.
14) slots - количество слотов на отдачу. Советую не слишком усердствовать. Ну ежели только у кого 128 метров памяти.... Количество слотов на закачку не лимитировано и не устанавливается конфигом.
15) speed - скорость. Честно говоря сильно сомневаюсь, что данный параметр в этой программе на что-то влияет, но... Доступные варианты:
"28.8Kbps", "33.6Kbps", "56Kbps", "Cable", "DSL", "ISDN", "LAN(T1)", "LAN(T3)", "Modem", "Satellite" - все, естественно, без кавычек.
16) active - видимо устанавливает режим соединения - "активный/пассивный", точно пока не разобрался. Ну это у кого проблемы с файрволом, серым адресом, провайдером и т.п. on или off (соответственно активный или пассивный). У меня сложилось ощущение, что в режиме off работает менее глючно. Разбирайтесь сами.
17) listenport - точно не уверен, но видимо порт, на котором будут ожидаться соединения в пассивном режиме. Может я не неправ. Пишете что-нть от балды, но желательно выше 2000, чтобы не попасть на зарезервированные под стандартные сервисы)
18) connect - соединяет с хабом с указанным адресом.
19) password - ваш пароль, если он требуется на данном конкретном хабе. Если не нужен, то и не прописываем.
20) listingdir - папка, где будут храниться файллисты.
Вроде все. Обращаю ваше внимание, что любой из этих параметров можно менять "на лету", не перегружая программу. Просто вводите в консоли команды в том виде, в котором они прописаны в конфиге. Чтобы просто просмотреть установленные параметры, достаточно набрать в консоли set
Чтобы узнать, какие комманды можно вводить, наберите в консоли help.
Но вкратце принцип таков:
who - выводит список пользователей на хабе
browse User1 - запрашивает файл-лист у пользователя User1. Когда файл-лист скачается, то строка из "microdc2:(User1)>" поменяется на строку "microdc2:User1>" и уже можно пролистывать файлы и папки
ls - показывает содержимое текущей папки
cd dir1 - переход в папку dir1. Еще пример - cd dir1/dir2/dir3. Если путь содержит пробелы, то его нужно брать в кавычки. Например cd "dir 1/dir 2/dir 3"
get - задание на скачивание папки или файла. Например - get dir1/dir2 или get dir1/dir2/file1.ext Есои путь/имя файла содержат пробелы, опять же берем в кавычки - get "dir 1/dir 2/my file.ext"
Если просто набрать browse, то выйдите из режима "пролистывания" текущего пользователя.
say Всем привет!!! - выдаст соответствующее сообщение в чате.
transfers - покажет текущее состояние закачек.
Ну и т.д., разбирайтесь сами.
microdc2 не умеет делать поиск по TTH и скачивать один файл сегментами с разных источников. Не понимает magnetto-ссылки. Не умеет соединяться одновременно с разными хабами. Но последнее, впрочем можно решить запуском одновременно в нескольких screen-ах с разными конфигами.
Имеются проблемы с докачкой в случае разрыва связи или ухода/прихода юзверя, с которого качается.
Но я тут сейчас пытаюсь списаться с человеком, который, по его словам, уже сделал с десяток патчей для microdc2. Посмотрим, может и удастся сделать нечто юзабельное ;)
flyrouter/microdc2.txt · Last modified: 2018/04/09 15:36 (external edit)