Instant Messaging та Emacs

ICQ - засіб для швидкого обміну повідомленнями, особливо популярний серед користувачів Windows, також може використовуватися і з Emacs. В даний час існує одна реалізація ICQ - eicq, але вона може використовуватися тільки з XEmacs. Ця реалізація підтримує такі можливості:

Підтримка протоколу ICQ версії 8 (версія з CVS);

Реєстрацію нових користувачів та зміну пароля;

Передавати повідомлення та URL;

Авторизувати користувачів, оновлювати мета-інформацію та отримувати список контактів;

Перетворювати список контактів micq та licq у власний формат;

Змінювати прив'язки клавіш і писати функції на Emacs Lisp.

На жаль, дана реалізація не підтримує чати, передачу файлів.

У зв'язку з тим, що я не користуюся XEmacs, я не зміг протестувати цю реалізацію, але, судячи з документації, вона досить просто встановлюється і налаштовується.

Yahoo! Chat Messenger

Існує дві продажі клієнта Yahoo! Chat для Emacs. Перша з них називається ElGyach і доступна з http://www.nongnu.org/elgyach, а друга називається yod.el і доступна з http://users.starpower.net/marti1/yod.el.html, проте ElGyach має більше можливостей порівняно з yod.el, тому я зупинюся на його описі більш детально.

Можливості ElGyach

ElGyach підтримує такі можливості:

Збереження буферів із повідомленнями у файлах;

Підтримка шифрування за допомогою AES;

Механізм доповнень імен, команд та тексту;

Налаштування кольорів та атрибутів тексту;

Одночасне використання різних облікових записів;

Історія повідомлень, якою можна переміщатися вперед і назад;

ігнорування повідомлень від користувачів;

Інтеграція з іншимимодулями Emacs

Більш детальну інформацію ви можете знайти на сторінках, які стосуються розробки ElGyach.

Установка ElGyach

Для встановлення ElGyach необхідно завантажити його з http://savannah.nongnu.org/projects/elgyach, розгорнути та скомпілювати (оскільки для спілкування з сервером Yahoo, ElGyach використовує реалізацію мовою С). Ось так буде виглядати завантаження ElGyach у файлі ініціалізації:

Після завантаження ви можете задати необхідні параметри за допомогою команд налаштування Emacs - M-x customize-group gyach. Тут ви можете вказати ім'я та пароль користувача Yahoo! Chat, а також ім'я програмиelgyach, якщо вона стоїть у нестандартному місці.

Використання ElGyach

Для запуску ElGyach використовується команда M-x gyach, яка створить буфер процесу. Ви також можете використати кілька процесів ElGyach одночасно. Це станеться, якщо ви перед виконанням команди поставите префікс, ось так C - u M - x gyach . Однак ви не можете увійти більше ніж в один чат, використовуючи одне і те саме ім'я - це обмеження Yahoo! Chat.

Команди ElGyach

ElGyach підтримує виконання різних команд, що задаються у формі/ім'я. В даний час доступні такі команди:

/ignore User та/unignore User — для ігнорування повідомлень від певних користувачів та для скасування цього обмеження;

/highlight User та/unhighlight User — для підсвічування повідомлень від певного користувача та закінчення використання цієї настройки;

/version - друкує номер версії ElGyach.

Налаштування ElGyach

Основним параметром налаштування є ім'я та пароль користувача, які використовуються для підключення до Yahoo! Chat. Ці значення зберігаються в змінних gyach-yahoo-username та gyach-yahoo-password .

Для налаштування параметрів буфера ElGyach може використовуватися код, який буде виконуватися за допомогою хука gyach-mode-hook .

ElGyach легко розширюється. При кожному виклик команди виду/КОМАНДА, буде викликатися функція gyach-custom-КОМАНДА . Таким чином, можна додати свою функціональність за допомогою невеликого обсягу коду.

AOL Instant Messaging (AIM)

Підтримка AIM в Emacs здійснюється пакетом TNT. Він дозволяє обмінюватися повідомленнями та брати участь у групових чатах.

Встановлення пакету

Робота з пакетом

Основна робота з пакетом здійснюється за допомогою клавіш, що дозволяє зручно працювати з пакетом. Усі команди можна розділити на кілька частин, які представлені у вигляді відповідних розділів.

Підключення, відключення та статус

Підключення до сервісу AIM здійснюється за допомогою команди tnt-open ( C - x t o ). При підключенні вам необхідно вказати ваше ім'я та пароль, і якщо все пройде нормально, пакет повідомить про те, що ви підключилися до системи. Щоб кожного разу не вводити ім'я та пароль, ви можете задати їх за допомогою змінних tnt-default-username та tnt-default-password. Ви також можете використовувати кілька різних імен для входу до системи. Докладнішу інформацію можна знайти в розділі Налаштування.

Після підключення, ви можете виконувати стандартні завдання – ведення переговорів, спілкування у чатах тощо.

Зміна статусу з "доступний" у "зайнятий" здійснюється за допомогою команди tnt-away-toggle (або C - x t A). Ви можете задати повідомлення, яке буде відображатися для користувачів, які намагатимуться з'єднатися з Вами, коли Ви перебуваєте в цьому режимі.

Припинення роботи з AIMвиконується за допомогою команди tnt-kill (C – x t q).

Обмін інформацією

TNT підтримує два типи обміну інформацією – прямі розмови між двома користувачами та спілкування до чатів.

Для прямого спілкування використовується команда tnt-im (або комбінація клавіш C - x t i). При цьому у вас запитають ім'я користувача з яким ви хочете поспілкуватися, і після встановлення зв'язку буде відкрито буфер, в якому ви зможете друкувати свої повідомлення та бачити відповіді. Якщо користувач є у списку користувачів, ви можете використовувати механізм доповнення для введення імені.

Для початку спілкування в чатах використовується команда tnt-join-chat (або поєднання C - x t j). Ви можете ввести ім'я існуючого чату або ввести нове, і тоді чат буде створено. Як і в попередньому випадку, створюється новий буфер, в якому ведуться всі переговори. Для виходу з чату можна використовувати tnt-leave-chat (або C - x t l ).

У тому випадку, якщо хтось інший надсилає вам запрошення до чату, або повідомлення, то ви можете прийняти його за допомогою tnt-accept ( C - x t a ) або відхилити за допомогою tnt-reject ( C - x t r ) - це може бути корисним якщо ви зайняті, або не хочете розмовляти з цим користувачем. У тому випадку, якщо ви отримуєте кілька повідомлень або запрошень у чат, то вони накопичуються в черзі, в якій їх можна переглядати за допомогою команд tnt-next-event (C - x t n) - для отримання наступного повідомлення, і tnt-prev- event ( C - x t p ) - Для отримання попереднього повідомлення.

Інші команди

У тому випадку, якщо у вас декілька зареєстрованих імен, то ви можете використовувати команду tnt-switch-user (C - x t s) для перемикання між різними іменами.

Команда tnt-mute ( C - x t m ) може використовуватися для включення та відключеннязвукових сигналів, що використовуються TNT для оповіщення користувача.

Налаштування TNT можна здійснювати як за допомогою стандартних механізмів налаштування Emacs, так і за допомогою коду Emacs Lisp. Для виклику настройки можна використовувати команду M - x tnt-customize або M - x customize-group tnt .

Налаштування входу в систему
Налаштування звуку

TNT дозволяє настроїти програвання різних сигналів залежно від різних подій. Налаштування сигналів керується за допомогою змінних tnt-beep-on-. наприклад tnt-beep-on-incoming-message . Крім цього, ви можете налаштувати те, за допомогою якої програми будуть програватись звукові сигнали. Ці настройки визначаються змінними tnt-sound-exec та tnt-sound-exec-args .

Інші налаштування

Користувач має можливість налаштувати безліч інших параметрів, повний опис яких доступний у файлі README з постачання TNT і які можна налаштувати використовуючи буфер налаштування Emacs.

Підтримку сервісу Jabber в даний час здійснюють кілька пакетів для Emacs - ejab, який вже не розвивається (заморожена версія доступна з http://ejab.sourceforge.net), smyrno, який також майже не розвивається, але має достатній набір можливостей (він доступний з http://www.nongnu.org/smyrno/) і Jabber.el, який активно розвивається і представляє досить повну та розширювану підтримку протоколу Jabber. Оскільки Jabber.el динамічно розвивається, я зосереджуся виключно на даному пакеті.

Отримання та встановлення

Пакет вимагає для своєї роботи GNU Emacs 21 і Gnus 5.10.x (з нього потрібно лише пара файлів - sha1-el.el і hex-util.el , так що ви можете встановити їх не встановлюючи весь Gnus), або XEmacs з підтримкою Mule , а також встановленими пакетами gnus , net-utilsта mule-ucs . Крім цього, якщо встановлено пакет FLIM, то Jabber.el може використовувати його для підтримки SASL.

Установка пакета досить проста — треба просто завантажити його дистрибутив з http://emacs-jabber.sourceforge.net, розгорнути його та налаштувати завантаження у стартовому скрипті Emacs'а, наприклад, наступними командами:

Після завантаження пакета необхідно задати ім'я користувача та сервера, що робиться за допомогою команди M - x jabber-customize . За допомогою цієї команди можна зареєструвати нового користувача, якщо перед виконанням команди задати префікс.

Основні дії

Після налаштування Jabber.el готовий до роботи, необхідно лише підключитися до вибраного сервера Jabber.

Підключення, відключення та стан

Підключення до сервера виконується однією командою — M-x jabber-connect, після підключення за допомогою команди M-x jabber-send-presence можна надіслати на сервер повідомлення про присутність. Ця команда дає можливість вказати статус присутності, якщо ви залишили статус порожнім, то буде встановлено значення за умовчанням рівне Online.

Для відключення від сервера Jabber просто виконайте команду M - x jabber-disconnect , і ваше підключення буде закрито.

Jabber.el дозволяє змінювати стан вашої доступності. Це можна зробити як явно, за допомогою команди M-x jabber-send-presence, так і програмно, за допомогою цієї ж функції. Крім цього, ви можете запрограмувати сервер Jabber на повідомлення вас про зміну статусу потрібної вам людини. Це виконується за допомогою команди M - x jabber-send-subscription-request.

Переговори (chatting)

Після підключення користувачу стає доступний буфер roster'а, перебуваючи в якому він може виконуватися різні дії. Одне з такихдій - переговори (або chatting). Для початку переговорів, потрібно лише вибрати персону з ким ви будете перемовлятися і набрати C - c C - c і буде створено буфер з ім'ям *-jabber-chat-:-ІМ'ЯПЕРСОНИ-* , в якому ви і зможете вести переговори.

Групові чати

Для підключення до групового чату користувач може використовувати команду M - x jabber-groupchat-join або використовувати поєднання клавіш C - c C - m перебуваючи в буфері roster'а. Після підключення до чату буде створено буфер з ім'ям *-jabber-groupchat-:-ІМ'ЯЧАТА-* , що дозволяє одночасно брати участь у кількох обговореннях. Робота з буфером здійснюється так само, як і при звичайних переговорах. Для виходу з групового чату просто наберіть M-x jabber-groupchat-leave.

Крім того, якщо ви є власником цього чату, пакет дозволяє зробити його налаштування, використовуючи команду M - x jabber-groupchat-get-config .

Робота з буфером roster

Буфер roster'а називається *-jabber-* і містить у собі список контактів вашого roster'а. З використанням даного буфера проводяться всі операції, які вимагають вказівки Jabber ID, такі як переговори, групові та розраховані на багато користувачів чати, отримання інформації roster'а і робота з сервісами.

Робота із сервісами jabber

Пошук по сервісах виконується за допомогою команди M - x jabber-get-search або вибором пункту меню, що відображається за допомогою поєднання клавіш C - c C - s . Після виконання запиту вам буде показана форма пошуку, яку необхідно заповнити для його виконання.

Реєстрація проводиться аналогічно до проведення пошуку, тільки використовується команда M - x jabber-get-register . За допомогою даного сервісу, ви можете, наприклад, змінити свій пароль, або зареєструватися для використанняконкретного обслуговування. Як і у випадку з пошуком, при реєстрації модуль відобразить форму реєстрації, яку вам необхідно буде заповнити.

Для роботи зі спеціалізованими командами, спочатку користувач повинен отримати їх список, підтримуваних сервером. Це виконується за допомогою команди M - x jabber-ahc-get-list. Для виконання спеціалізованої команди використовується команда M - x jabber-ahc-execute-command . Спеціалізовані команди можуть використовуватися, наприклад, щоб віддалено змінити стан вашого клієнта, або інші речі.

Налаштування та розширення можливостей

Налаштування клієнта

Налаштування клієнта виконується за допомогою команди M-x jabber-customize або, що теж саме, за допомогою команди M-x customize-group jabber. Переходячи по розділах групи, ви можете налаштувати основні параметри, такі як ім'я, сервер, так і інші, наприклад повідомлення про події, параметри накреслень (faces) і різні хуки.

Цей процес є інтуїтивно-зрозумілим, і тому я не загострюватиму на ньому увагу. Список змінних, які використовуються для налаштування за допомогою цих команд, наведено у посібнику Jabber.el .

Розширення можливостей пакету

Jabber.el дозволяє користувачеві розширювати можливості пакета, надаючи можливості прийому та відправлення нових типів запитів і відповідей, здійснювати доступ до даних з'єднання та багато іншого.

XML, який використовується для спілкування з сервером jabber, представляється у вигляді списків, які створюються модулем xml.el - кожен тег представляється у вигляді списку, першим елементом якого є символ представляє тег, за тим слідує список зі списків атрибутів, а потім йдуть вкладені теги та вміст.

Поточний стан roster'а представляєтьсясписок з ім'ям *jabber-roster* . У цьому списку можна знайти детальну інформацію про групи, стан з'єднання та інші параметри.