API Layers:
-----------------------
УПРАВЛЕНИЕ ПОТОКАМИ (ОЧЕРЕДЬЮ) СКАЧИВАНИЯ/ЗАКАЧИВАНИЯ
        (+) Просмотр очереди (queue.list)
                Args: none
                Return: @queue list {all targets with all params}@ (string)
        (+) Просмотр всех элементов очереди (queue.listtargets)
                Args: separator (string)
                Return: @all targets in queue@ (string)
        (+) Изменить место назначения для элемента очереди (queue.move)
                Args: source (string), target (string)
                Return: 0 | 1 (integer)
        (+) Удаление элемента очереди (queue.remove {alias - queue.del})
                Args: target (string)
                Return: 0 | 1 (integer)
        (+) Постановка в очередь магнета (magnet.add)
                Args: magnet (string), directory (string)
                Return: 0 | 1 (integer)
        (+) Установка приоритета элемента очереди (queue.setpriority)
                Args: target (string), priority (integer; 0-PAUSED, 1-LOWEST, 2-LOW, 3-NORMAL, 4-HIGH, 5-HIGHEST)
                Return: 0 | 1 (integer)
        (+) Список источников для элемента очереди (queue.getsources)
                Args: target (string), separator (string)
                Return: online (integer), sources (string)
        (+) Запуск согласования текущей очереди для всех скачанных файллистов (queue.matchlists)
                Args: none
                Return: 0 | 1 (integer)
        (+-) Просмотр конкретного элемента очереди (queue.getiteminfo)
                Args: target (string)
                Return: @info about item@ (string map)
                Comment: not tested
        Добавление источника к элементу очереди.
        Удаление источника для элемента очереди.
        (wip) Добавление элемента очереди (queue.add)
                Args: directory (string), filename (string), tth (string), size (int64_t)
                Return: 0 | 1 (integer)
                Comment: add file in queue by tth
        (+) Очистка очереди (queue.clear)
                Args: none
                Return: 0 (integer)

-----------------------
РАБОТА С ФАЙЛЛИСТАМИ
        (+) Скачивание файллиста (list.download)
                Args: huburl (string), nick (string)
                Return: 0 | 1 (integer)
                Comment:
        (+) Список файллистов (list.local)
                Args: separator (string)
                Return: @all filelists in filelist dir@ (string) | 1 (integer)
                Comment:
        (+) Список файллистов (list.ls) alias to list.local
        (wip) Передача файллиста на клиента (list.get)
                Args: filelist (string)
                Return: @base32 encoded xml.bz2 file@ | 1 (integer)
                Comment:
		(wip) Передача файллиста на клиента (list.fetch) alias to list.get
        (+) Открыть файллист (list.open)
                Args: filelist (string)
                Return: 0 | 1 (integer)
                Comment:
        (+) Закрыть файллист (list.close)
                Args: filelist (string)
                Return: 0 | 1 (integer)
                Comment:
        (+) Закрыть все файллисты (list.closeall)
                Args: none
                Return: 0 (integer)
                Comment:
        (+) Вернуть список открытых файллистов (list.listopened)
                Args: separator (string)
                Return: @all opened file lists@ (string)
                Comment:
        (+) Список файлов и директории в (list.lsdir)
                Args: filelist (string), directory(string)
                Return: @all files and dirs in directory of filelist@ (string)
                Comment: In return if item is directory param Name prepended "d".
                         In args directory should finished by "\\".
        (+) Постановка файла в очередь с указанием директории назначения (list.downloadfile)
                Args: target(string), downloadto(string), filelist (string)
                Return: 0 | 1 (integer)
                Comment:
                        For argument target directory separator should be "\\".
                        If downloadto is empty, it's set to SETTING(DOWNLOAD_DIRECTORY) on server.
                        Now works for latin encoded targets only. l10n is wip for now
        (+) Постановка директории в очередь с указанием директории назначения (list.downloaddir)
                Args: target(string), downloadto(string), filelist (string)
                Return: 0 | 1 (integer)
                Comment:
                        In args target should finished by "\\".
                        If downloadto is empty, it's set to SETTING(DOWNLOAD_DIRECTORY) on server.
                        Now works for latin encoded targets only. l10n is wip for now

УПРАВЛЕНИЕ ШАРОЙ
        (+) Добавление (share.add)
                Args: directory (string), virtual name (string)
                Return: 0 | 1 (integer)
        (+) Удаление (share.del)
                Args: virtual name of directory (string)
                Return: 0 | 1 (integer)
        (+) Переименование (share.rename)
                Args: directory (string), virtual name (string)
                Return: { 0 | 1 (integer) } || {ShareException? (string)}
        (+) Листинг (share.list)
                Args: separator (string)
                Return: @list of shared directoriess in string with separator@ (string)
        (+) Обновление (share.refresh)
                Args : none
                Return: 0 | 1 (integer)
        (+) Показать статус хеширования (hash.status)
                Args: none
                Return: bytesleft (int64_t), currentfile (string), filesleft (uint32_t), status (string)
        (+) Приостановить хеширование (hash.pause)
                Args: none
                Return: 0 | 1 (int)
        (wip) perfolderlimits api (?)
-----------------------
УПРАВЛЕНИЕ ХАБАМИ
        (+) Добавление (hub.add)
                Args: huburl (string), enc (string)
                Return: 0 | 1 (integer)
        (+) Удаление (hub.del)
                Args: huburl (string)
                Return: 0 | 1 (integer)
        (+) Листинг (hub.list)
                Args: separator (string)
                Return: @list of hubs in string with separator@ (string)
        (+) Листинг хабов с некоторой информацией (hub.listfulldesc)
                Args: none
                Return: @list of hubs {all hubs with params}@ (string)
-----------------------
ЧАТ
        (+) Сообщение в чат (hub.say)
                Args: huburl (string), message (string)
                Return: 0 | 1 (integer)
        (+) Сообщение в приват юзеру (hub.pm)
                Args: huburl (string), nick(string), message (string)
                Return: 0 | 1 (integer)
        (+) Возврат сообщений чата с указанного хаба (hub.getchat)
                Args: huburl(string), separator(string)
                Return: @last messages on huburl@ (string)
-----------------------
ПОИСК
        (+) Инициация поиска (search.send)
                Args: searchstring (string), searchtype (int), sizemode (int), sizetype (int), size (double), huburls (string, separator=";")
                Return: 0 | 1 (integer)
        (+) Просмотр результатов поиска (search.getresults)
                Args: huburl (string)
                Return: @search results@ (array of map)
                Comment:
        (+) Очистить полученные результаты для указанного хаба/все. (search.clear)
                Args: huburl (string)
                Return: 0 | 1 (integer)
СТАТИСТИКА
        (+) Версия (show.version)
                Args: none
                Return: @version@ (string)
        (+) Байт принято/отдано (show.ratio)
                Args: none
                Return: @ratio@ (string)
        (+) Список методов (methods.list) //deleted
                Args: none
                Return: separated list of methods
                Comment: This method has been deleted - use system.describe
-----------------------
IPFILTER
        (wip) Добавление (ipfilter.addrules)
                Args: rules {list rules with direction(in,out,both) and action(drop,accept) separated by ";"} (string)
                Return: 0 (integer)
                Example: "rules" = "192.168.1.0/23|in;!192.168.6.0/24|both"
        (wip) Удаление (ipfilter.purgerules)
                Args: rules {list rules separated by ";"} (string)
                Return: 0 (integer)
                Example: "rules" = "192.168.1.0/23;192.168.6.0/24"
        (wip) Список (ipfilter.list)
                Args: separator (string)
                Return: separated list of rules in ipfilter (string)
        (wip) Вкл/выкл (ipfilter.onoff)
                Args: on (int{0,1})
                Return: 0 (integer)
        (wip) Переместить правило выше/ниже (ipfilter.updown)
                Args: up (int{0,1}), rule (string)
                Return: 0 (integer)
-----------------------
УПРАВЛЕНИЕ ДЕМОНОМ
        (+) Стоп демона (daemon.stop)
                Args: none
                Return: 0 | 1 (integer)
        (wip) Изменение/просмотр настроек (settings.getset)
                Args: param (string), value (string)
                Return:
                    if param empty - return 1 (integer)
                    if value is empty - value (string)
                    if value isn't empty - try set param to value,
                        return 0 (integer) on success,
                        return 1 (integer) on fail
                    (string)
                Example: 
                    Request:  {"jsonrpc": "2.0", "id": "1", "method": "settings.getset", "params" : { "key": "DownloadDirectory"}}
                    Reply:    {"id":"1","jsonrpc":"2.0","result":{"value":"/home/egik/Downloads1/"}}
-----------------------
ПОЛЬЗОВАТЕЛИ
        (+) Просмотр списка пользователей хаба (hub.getusers)
                Args: huburl (string)
                Return: @list of users on huburl@ (string)
        (+) Просмотр полной информации по юзеру (hub.getuserinfo)
                Args: nick (string), huburl (string)
                Return: @info about user on huburl@ (string map)


Пожелания:
        (+) Выполнение команды и выход (./cli.pl -c show.version)
        (+) Поддерка UTF8
        (wip) queue.remove -> queue.del
        (wip) list.local -> list.ls
        (wip) list.get -> list.fetch
