Difference between revisions of "Noname Client"

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
m (Переписал фразу)
m
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<b>noname Client</b> - непонятно зачем и для чего созданный консольный (ещё) [[Jabber]]-клиент, разрабатываемый [[USER:Andreymal|AndreyMal]].
+
{{RealTitle|noname Client|noplate=1}}
 +
{{Client
 +
|          name= noname Client <!-- название -->
 +
|          logo= <!-- логотип -->
 +
<!--      Общая информация          -->
 +
|          url=[http://lek.andreymal.org/jabber/client/ lek-ded.narod.ru] <!-- сайт -->
 +
|      language= {{lang|cl|Java}} <!-- язык -->
 +
|            os= {{OS|cl|Java ME}} <!-- ОС или платформа -->
 +
|      library= {{lib|JXA}} <!-- jabber-библиотека -->
 +
|      license= {{GPL}} <!-- лицензия -->
 +
|    developer= [[User:Andreymal|andreymal]] <!-- разработчик -->
 +
<!--        Характеристики  -->
 +
|          i18n=нет <!-- мультиязычность -->
 +
|      plugins=нет <!-- поддерживает ли он плагины -->
 +
|  acc_profiles= <!-- профили аккаунтов -->
 +
|    acc_multi=да <!-- использование нескольких аккаунтов одновременно -->
 +
|        smiles= <!-- поддержка смайликов -->
 +
|      history= <!-- хранение истории сообщений -->
 +
<!--        Поддержка стандартов  -->
 +
|  filetransfer= <!-- способы передачи файлов -->
 +
|      privacy= <!-- списки приватности -->
 +
|        disco=да <!-- дискавери -->
 +
|        adhoc= <!-- вызов Ad-Hoc команд -->
 +
|            rc= <!-- удаленное управление клиентом через Ad-hoc -->
 +
|          muc=да (частично) <!-- поддержка конференций -->
 +
|    bookmarks=да <!-- закладки -->
 +
|      headline= <!-- новости -->
 +
|        vcard=нет <!-- просмотр и редактирование Vcard -->
 +
|          zip=нет <!-- сжатие трафика (XEP-0138) -->
 +
|        crypt=нет <!-- шифрование трафика -->
 +
|          pgp= <!-- шифрование сообщений (GPG/PGP) -->
 +
|        pubsub= <!-- работа с PubSub -->
 +
|          pep= <!-- получение и отправка PEP событий -->
 +
|    d_register= <!-- регистрация на транпортах и т.д. (XEP-0077) -->
 +
|      d_search= <!-- поиск в JUD-ах, транпортах и т.д. (XEP-0055) -->
 +
|          voip= <!-- голосовое и видеообщение -->
 +
|        jingle= <!-- поддержка протокола Jingle -->
 +
}}
  
== История ==
+
<b>noname Client</b>&nbsp;— консольный [[Jabber]]-[[клиент]], разрабатывавшийся [[USER:Andreymal|andreymal]].
  
В марте 2010 года 14-летний мальчик решил поучить [[Java ME|J2ME]]. Точнее, решил ещё в конце 2009, но тогда он не разобрался. А сейчас разобрался, и его первой программой стала [http://lek-ded.narod.ru/j2me/ Расписание уроков].
+
=== Команды ===
  
После ещё пары месяцев изучения мальчик решил замахнуться на создание Jabber-[[Клиент|клиента]]. В качестве основы использовался [[JXA]]. Первоначально программа называлась amj (расшифровывается ак AndreyMal Jabber Client), но после гугления пришлось отказаться от этого названия, [http://amj.ru/ так как с ним могли быть проблемы].
+
В квадратных скобках указаны необязательные параметры
  
По мере разработки возникало всё больше проблем с интерфейсом. В то же время было большое желание реализовать как можно больше возможностей проткола. Было принято, наверно, безумное решение: сделать GUI всего лишь дополнением, без которого можно было бы обойтись. Клиент был переписан с нуля и стал консольным. В то же время его временно переименовали в noname, а позже в noname Client. Нужно придумать название.
+
* добавление аккаунта <pre>addacc <имя> <хост> <пароль> [ <адрес сервера> <порт> <ресурс> ]</pre>
  
== Возможности ==
+
** В ответе будет указан номер нового аккаунта.
  
Так как разработка только-только началась, возможности ещё малы. В данный момент только то, что было в библиотеке JXA. И ещё отправка уведомления о доставке сообщения. Со времён amj его коде осталась добавленная возможность получения закладок и подключения к конференции, но в noname Client они ещё не использованы.
+
* удаление аккаунта <pre>delacc <номер_аккаунта></pre>
  
=== Команды ===
+
* подключение <pre>connect <номер_аккаунта></pre>
  
(жирным выделенны обязательные, или none - вместо параметра можно написать "none")
+
* регистрация <pre>register <имя> <хост> <пароль> [ <адрес сервера> <порт> ]</pre>
  
* connect <b><имя> <хост> <пароль></b> <сервер/ip> <порт> <ресурс> - подключение
+
* отправка [[информация о присутствии|информации о присутствии]] <pre>presence <номер_аккаунта> <получатель> <тип> [ <show> <текст> <приоритет> ]</pre>
 +
В качестве получателя и типа можно указать «none», чтобы отправить информацию о присутствии без указания получателя и типа соответственно.
  
* presence <b><кому или none> <тип или none></b> <show> <текст> <приоритет> - отправка презенса
+
* упрощённая форма предыдущей команды, может использоваться вообще без параметров (кроме номера аккаунта) <pre>status <номер_аккаунта> [ <show> <текст> <приоритет> <название_клиента> <версия_клиента> ]</pre>
 +
** show - тип статуса: '''online''' - онлайн, '''chat''' - готов поболтать, '''away''' - отошёл, '''xa''' - недоступен, '''dnd''' - не беспокоить.
  
* status <show> <текст> <приоритет> <caps> <ver> - упрощённая форма предыдущей команды. Может использоваться вообще без параметров.
+
* отключение <pre>disconnect <номер_аккаунта></pre>
  
* disconnect - отключение
+
* отправка сообщения <pre>message <номер_аккаунта> <получатель> <тип> <подтверждение> <ID> <текст></pre> Подтверждение (0 или 1) и ID в настоящее время игнорируются. В качестве типа можно указать «none», чтобы отправить сообщение без указания его типа.
 +
** В параметре &laquo;тип&raquo; указывается тип письма: '''normal''' - обычное, '''chat''' - чат, '''groupchat''' - для конференции.
  
* message <b><кому> <тип или none> <подтверждение> <ID> <текст></b> - отправка сообщения. ПОдтверждение (0 или 1) и ID в данный момент игнорируются.
+
* Диско <pre>disco <номер_аккаунта> <получатель> [ <info или items> <ID> ]</pre>
 +
** info - зпарос информации, items - запрос списка сервисов.
 +
** Можно дискаверить также контакты (info) и конференции (items).
  
* clear - чистка консоли, работает с глюками.
+
* чистка консоли (работает с глюками) <pre>clear</pre>
  
* gui <b><on/off/min></b> - управление GUI. Так как его ещё нету, можно не использовать.
+
* Запрос [[Ростер|списка контактов]] <pre>getroster <номер_аккаунта></pre>
  
* help <команда> - список всех команд.
+
* Запрос закладок <pre>getbook <номер_аккаунта></pre>
 +
 
 +
* Удаление подключенного аккаунта <pre>removeacc <номер_аккаунта></pre>
 +
 
 +
* управление графическим интерфейсом <pre>gui on|off|min</pre>
 +
 
 +
* список всех команд, а также справка по конкретной команде (может работать некорректно) <pre>help [ <команда> ]</pre>
 +
 
 +
* выход <pre>exit</pre>
  
 
=== Интерфейс ===
 
=== Интерфейс ===
  
Две формы: консоль (текст) и окно ввода. Есть возможность подключить GUI, но ему ещё ничего не передаётся, поэтому это бесполезно. Так как используются только стандартные элементы интерфейса, возможно, при компиляции под MIDP1 можно использовать на чёрно-белых телефонах.
+
Две формы: консоль (текст) и окно ввода. Есть возможность подключить GUI. Так как используются только стандартные элементы интерфейса (без внешнего GUI), возможно, можно использовать на чёрно-белых телефонах.
  
 
=== Подключение ===
 
=== Подключение ===
  
 
Без сжатия, без шифрования, пароль открытым текстом. Зато быстро.
 
Без сжатия, без шифрования, пароль открытым текстом. Зато быстро.
 +
 +
После подключения необходимо отправить статус (команда '''status <номер_аккаунта>''').
 +
 +
== Управление подпиской ==
 +
 +
Так как подписка управляется через presence, можно использовать следующие команды:
 +
 +
* Запрос подписки <pre>presence <номер_аккаунта> <JID> subscribe</pre>
 +
 +
* Дать подписку <pre>presence <номер_аккаунта> <JID> subscribed</pre>
 +
 +
* Отписаться <pre>presence <номер_аккаунта> <JID> unsubscribe</pre>
 +
 +
== Конференции ==
 +
 +
Подключение:
 +
presence номер_аккаунта комната/ник available
 +
 +
Пример:
 +
presence 0 support@conference.jabber.ru/Vasya available chat А_вот_и_я! 5
 +
 +
Сообщение в конференцию:
 +
message номер_аккаунта комната groupchat 0 id текст
 +
 +
Пример:
 +
message 0 support@conference.jabber.ru groupchat 0 id !?? bots
 +
 +
Отключиться:
 +
presence номер_аккаунта комната/ник unavailable
  
 
== Загрузить ==
 
== Загрузить ==
  
Скачать можно только [http://lek-ded.narod.ru/files/noname.jar отсюда] (14кб). Но стоит ли?..
+
Скачать можно отсюда: [http://lek.andreymal.org/jabber/client/noname002.jar JAR] (15кб).

Latest revision as of 15:05, 13 March 2015

В соответствии с принятыми в данной вики договорённостями, правильное название этой статьи — noname Client.
noname Client
Информация
Сайт: lek-ded.narod.ru
Язык: Java
ОС/платформа: Java ME
Библиотека: JXA
Лицензия: GPL
Разработчик: andreymal
Характеристики
Мультиязычность: нет
Поддержка плагинов: нет
Несколько аккаунтов одновременно: да
Поддержка стандартов
Обзор сервисов: да
Конференции: да (частично)
Закладки: да
Правка vCard: нет
Сжатие трафика: нет
Шифрование трафика: нет


noname Client — консольный Jabber-клиент, разрабатывавшийся andreymal.

Команды[edit]

В квадратных скобках указаны необязательные параметры

  • добавление аккаунта
    addacc <имя> <хост> <пароль> [ <адрес сервера> <порт> <ресурс> ]
    • В ответе будет указан номер нового аккаунта.
  • удаление аккаунта
    delacc <номер_аккаунта>
  • подключение
    connect <номер_аккаунта>
  • регистрация
    register <имя> <хост> <пароль> [ <адрес сервера> <порт> ]

В качестве получателя и типа можно указать «none», чтобы отправить информацию о присутствии без указания получателя и типа соответственно.

  • упрощённая форма предыдущей команды, может использоваться вообще без параметров (кроме номера аккаунта)
    status <номер_аккаунта> [ <show> <текст> <приоритет> <название_клиента> <версия_клиента> ]
    • show - тип статуса: online - онлайн, chat - готов поболтать, away - отошёл, xa - недоступен, dnd - не беспокоить.
  • отключение
    disconnect <номер_аккаунта>
  • отправка сообщения
    message <номер_аккаунта> <получатель> <тип> <подтверждение> <ID> <текст>
    Подтверждение (0 или 1) и ID в настоящее время игнорируются. В качестве типа можно указать «none», чтобы отправить сообщение без указания его типа.
    • В параметре «тип» указывается тип письма: normal - обычное, chat - чат, groupchat - для конференции.
  • Диско
    disco <номер_аккаунта> <получатель> [ <info или items> <ID> ]
    • info - зпарос информации, items - запрос списка сервисов.
    • Можно дискаверить также контакты (info) и конференции (items).
  • чистка консоли (работает с глюками)
    clear
  • Запрос закладок
    getbook <номер_аккаунта>
  • Удаление подключенного аккаунта
    removeacc <номер_аккаунта>
  • управление графическим интерфейсом
    gui on|off|min
  • список всех команд, а также справка по конкретной команде (может работать некорректно)
    help [ <команда> ]
  • выход
    exit

Интерфейс[edit]

Две формы: консоль (текст) и окно ввода. Есть возможность подключить GUI. Так как используются только стандартные элементы интерфейса (без внешнего GUI), возможно, можно использовать на чёрно-белых телефонах.

Подключение[edit]

Без сжатия, без шифрования, пароль открытым текстом. Зато быстро.

После подключения необходимо отправить статус (команда status <номер_аккаунта>).

Управление подпиской[edit]

Так как подписка управляется через presence, можно использовать следующие команды:

  • Запрос подписки
    presence <номер_аккаунта> <JID> subscribe
  • Дать подписку
    presence <номер_аккаунта> <JID> subscribed
  • Отписаться
    presence <номер_аккаунта> <JID> unsubscribe

Конференции[edit]

Подключение:

presence номер_аккаунта комната/ник available

Пример:

presence 0 support@conference.jabber.ru/Vasya available chat А_вот_и_я! 5

Сообщение в конференцию:

message номер_аккаунта комната groupchat 0 id текст

Пример:

message 0 support@conference.jabber.ru groupchat 0 id !?? bots

Отключиться:

presence номер_аккаунта комната/ник unavailable

Загрузить[edit]

Скачать можно отсюда: JAR (15кб).