View Single Post
  #4666  
Old 09-07-2010, 09:04
valerakvb valerakvb is offline
Forum Guru
 
Join Date: Aug 2007
Posts: 1,425
Описание и настройка microdc2

Консольный DC++ клиент. Интерфейс устроен на манер ftp-клиента: вводишь команду, получаешь ответ от сервера. Поддерживает все основные (и в большинстве случаев достаточные) возможности DC, в том числе чат и поиск. Не забыта функция автодополнения, причем как команд, так и ников пользователей. Также присутствует команда alias, с помощью которой, на манер консоли, можно заменить длинные комбинации короткими удобными командами. Быстрый и нетребовательный к ресурсам. поддерживается история команд через readline, работает автодополнение команд и имён клавишей TAB, имеется встроенная справка.



Из недостатков можно отметить отсутствие поддержки сегментированной загрузки файлов, работу не более чем с одним хабом одновременно и некоторое неудобство использования, порождаемое тем фактом, что все сообщения, как диагностические, так и чат-сессии, сыплются в одно окно (а ведь еще и команды надо вводить и читать список файлов!). Но это уже непоборимая проблема консольной сущности программы, и единственное, что можно сделать – это просто отключить мешающие сообщения командой set display. Как и всякое уважающее себя Unix-приложение, Microdc2 имеет конфигурационный файл, пример которого приведен ниже.

Файл конфигурации:
( /opt/etc/.microdc2 )

set filesystem_charset UTF-8
set hub_charset cp1251
set log_charset koi8-r
set auto_reconnect on
set listenaddr ваш_внешний_ip
set filelist_refresh_interval 3600
set display connections download joinpart publicchat searchresults upload
set log connections download joinpart publicchat searchresults upload
share /tmp/harddisk/torrent/work
set downloaddir /tmp/harddisk/microdc/downloads
set listingdir /tmp/harddisk/microdc
set nick ваш_логин
set password ваш_пароль
set description "Me just BOT. Don't talk with me!"
set email ваш@mail.ru
set logfile /opt/var/log/microdc.log
set slots 5
set speed LAN(T3)
set active off
set listenport 2477
connect 192.168.1.1:411

Команды и параметры:
  • filesystem_charset - кодовая страница файловой системы. Чрезвычайно важный параметр, если вы предполагаете скачивать и раздавать файлы (или папки) с русскими именами. Поскольку у меня шары расположеным на разделе ext3, то у меня выставлено значение UTF-8. Если у вас ext2 или FAT, то наверное нужно будет выставлять koi8-r или cp866 соответственно. Попробуйте разобраться сами.
  • hub_charset - кодовая страница, используемая на конкретном хабе. Вероятнее всего на русских хабах будет cp1251. Теоретически возможно и UTF-8, но это врядли. Тоже чрезвычайно важный параметр, поскольку отвечает не только за правильное отображение и ввод языка в чате, но и за запрос/отдачу файлов с русскими именами.
  • log_charset - кодовая страница лога. Если вы в post-boot прописали ru_RU.KOI8-R, то выставляем koi8-r, чтобы мы могли читать лог в mc, если же выбрали ru_RU.UTF-8, то соответственно выставляем UTF-8.
  • auto_reconnect - автоматическое переподсоединение к хабу в случае разрыва коннекта. Ну здесь вес понятно - либо on, либо off. Переподсоединение происходит с периодичностью 10 сек.
  • filelist_refresh_interval (в секундах) - периодичность, с которой программа будет проверять папку с шарами на предмет изменения содержимого и, если таковое произойдет, именять файл-лист и хешировать новые файлы
  • display - что именно будет отображаться на дисплее. Понятно из названий. Если предполагается использовать программу чисто в виде робота без использования всяких чатов и т.п., то можно удалить, напривер, joinpart и publicchat. Если хочется заняться отладкой программы, то можно добавить debug
  • log - что будет записываться в лог. Аналогично предыдущему пункту.
  • share (обратите внимание, что для задания этой переменной не используется команда set) - папка, где у вас лежат файлы для раздачи.
  • downloaddir - папка, куда программа будет скачивать файлы
  • nick - ну это понятно. Ваш ник на хабе.
  • description - описание. Можно и не задавать эту переменную.
  • email - все понятно и так.
  • logfile - путь к файлу лога. Советую прописать.
  • slots - количество слотов на отдачу. Советую не слишком усердствовать. Ну ежели только у кого 128 метров памяти.... Количество слотов на закачку не лимитировано и не устанавливается конфигом.
  • speed - скорость. Честно говоря сильно сомневаюсь, что данный параметр в этой программе на что-то влияет, но... Доступные варианты:
    "28.8Kbps", "33.6Kbps", "56Kbps", "Cable", "DSL", "ISDN", "LAN(T1)", "LAN(T3)", "Modem", "Satellite" - все, естественно, без кавычек.
  • active - видимо устанавливает режим соединения - "активный/пассивный", точно пока не разобрался. Ну это у кого проблемы с файрволом, серым адресом, провайдером и т.п. on или off (соответственно активный или пассивный). У меня сложилось ощущение, что в режиме off работает менее глючно. Разбирайтесь сами.
  • listenport - точно не уверен, но видимо порт, на котором будут ожидаться соединения в пассивном режиме. Может я не неправ. Пишете что-нть от балды, но желательно выше 2000, чтобы не попасть на зарезервированные под стандартные сервисы)
  • connect - соединяет с хабом с указанным адресом.
  • password - ваш пароль, если он требуется на данном конкретном хабе. Если не нужен, то и не прописываем.
  • listingdir - папка, где будут храниться файллисты.
  • listenaddr - адрес сообщаемый хабу и клиентам, он же будет прослушиваться.
Обращаю ваше внимание, что любой из этих параметров можно менять "на лету", не перегружая программу. Просто вводите в консоли команды в том виде, в котором они прописаны в конфиге.

Как работать с microdc2:

Запускаем microdc2 в screen командой dcs.
Заходим в microdc2 командой dc.
Чтобы просто просмотреть установленные параметры, достаточно набрать в консоли set.
Чтобы узнать, какие комманды можно вводить, наберите в консоли help.
who - выводит список пользователей на хабе
browse User1 - запрашивает файл-лист у пользователя User1. Когда файл-лист скачается, то строка из "microdc2User1)>" поменяется на строку "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 - покажет текущее состояние закачек.
unshare - перехешировать файлы шары.
disconnect - отлючение от хаба.
status - статус клиента
alias l="ls -l" - сокращения команд. Например: Команды для быстрого переключения между хабами
alias hub1="disconnect; set nick vasya; set password secret1; connect 192.168.1.1"
alias hub2="disconnect; set nick petya; set password secret2; connect 192.168.1.2"
alias hub3="disconnect; set nick boris; set password secret3; connect 192.168.1.3"

Запуск и останов microdc2:

- запуск microdc2 в screen (запуск в фоновом резиме): dcs
- заход на microdc2: dc
- выход из microdc2: exit
- оставить в фоновом режиме (оставить запущенным в screen): Ctrl+A и Ctrl+D
- убить процесс: killall microdc2

Недостатки microdc2:
  • не умеет делать поиск по TTH и скачивать один файл сегментами с разных источников
  • не понимает magnetto-ссылки
  • не умеет соединяться одновременно с разными хабами (можно решить запуском одновременно в нескольких screen-ах с разными конфигами)
  • имеются проблемы с докачкой в случае разрыва связи или ухода/прихода юзверя, с которого качается
  • очень долгое хеширование файлов (у меня расшаривал ~ 200 ГБ ~ 24 часа)

Last edited by valerakvb; 09-07-2010 at 18:21..
  #4666  
Old 09-07-2010, 09:04
AsusForum valerakvb is offline
Member
 
Join Date: Nov 2003
Location: Netherlands
Posts: 1,425