Repository navigation
features
Возможности DimLife IRC
Здесь описано, что умеет DimLife IRC и как им пользоваться. Полный список параметров и настроек можно разместить в отдельном справочнике.
Основные возможности
Несколько IRC-сетей
- Одновременное подключение к нескольким сетям.
- Автоматическое подключение при запуске приложения для каждой сети отдельно.
- Повторное подключение после перезагрузки устройства, в том числе с возможностью ожидания Wi-Fi вместо использования мобильного интернета.
- Автоматическое восстановление соединения с увеличивающимися интервалами между попытками.
- Автоматический вход в каналы, в том числе с паролями.
- Выполнение команд после подключения с настраиваемой задержкой.
- Закрепление избранных сетей в верхней части списка.
- Изменение порядка сетей перетаскиванием в боковой панели и на экране сетей.
Безопасность по умолчанию
- TLS 1.2 и TLS 1.3.
- SASL-аутентификация: PLAIN, SCRAM-SHA-256 и EXTERNAL.
- Клиентские TLS-сертификаты в форматах ".pem", ".crt" + ".key", ".p12" и ".pfx".
- TOFU-проверка сертификатов: приложение запоминает SHA-256-отпечаток сертификата при первом подключении и проверяет его при последующих соединениях.
- Повторное использование TLS-сессий.
- Хранение учётных данных SASL в зашифрованном хранилище Android.
- Исключение учётных данных из резервных копий Android.
- Сквозное шифрование сообщений AES-256-GCM ("+AGM") и Blowfish/FiSH ("+OK").
Резервное копирование и восстановление
- Экспорт настроек и IRC-сетей в один файл JSON.
- Возможность переноса конфигурации между устройствами.
- Пароли SASL и клиентские сертификаты не включаются в экспорт по соображениям безопасности.
Кодировки текста
- Автоматическое определение кодировки сообщений с использованием UTF-8 в качестве запасного варианта.
- Ручной выбор кодировки для каждой сети.
- Поддержка "windows-1251" для русского языка и стран СНГ.
- Поддержка "KOI8-R" для старых кириллических систем.
- Поддержка "ISO-8859-1" и "ISO-8859-15" для западноевропейских языков.
- Другие кодировки, доступные в Java "Charset".
Поддержка IRC-bouncer
- Совместимость с soju, ZNC, kiwiBNC, pounce и другими решениями, использующими схему "user/network".
- Отдельные буферы сообщений для клиентов в ZNC и отдельная история для клиентов soju.
- Воспроизведение истории сообщений через "chathistory".
- Команды "/znc" и "/bouncerserv", а также сокращение "/bnc" для непосредственного взаимодействия с bouncer.
Учёт ограничений IRC-сервера
- Автоматическое ограничение длины тем, сообщений об отсутствии, причин выхода и причин исключения в соответствии с параметрами сервера.
- Учитывание ограничений сервера при запросе истории сообщений.
- Команда "/knock <#channel> [reason]" для запроса приглашения, если сервер поддерживает "KNOCK".
- Обработка ограничений на количество каналов с учётом параметра "CHANLIMIT".
- Отображение отметки "[bot]" для ботов, если сервер сообщает об этом через режим "BOT" или тег сообщения "bot".
Возможности IRCv3
Во время подключения клиент согласовывает поддерживаемые расширения IRCv3. Их можно отключать отдельно для каждой сети в настройках возможностей IRCv3.
Доступность функций зависит от поддержки соответствующих расширений IRC-сервером.
История сообщений на сервере
- Получение последних сообщений при входе в канал.
- Загрузка предыдущих сообщений при прокрутке истории вверх.
- Получение сообщений, отправленных во время отсутствия пользователя в сети.
- Сохранение закрытого состояния каналов, в которых пользователь больше не состоит.
- Предотвращение дублирования сообщений при загрузке истории с помощью идентификаторов сообщений.
- Работа при наличии поддержки "chathistory" на сервере.
Push-уведомления
- Получение уведомлений о выделении ника и личных сообщениях без открытого IRC-соединения, если сервер поддерживает расширение Web Push.
- Использование UnifiedPush с возможностью выбора приложения-доставщика уведомлений.
- Шифрование содержимого уведомлений: приложение-доставщик передаёт зашифрованные данные и не может прочитать их содержимое.
- Функция отключена по умолчанию и требует установки совместимого приложения-доставщика.
Реакции на сообщения
- Добавление реакции-эмодзи к сообщению командой "/react [n]".
- Выбор сообщения по номеру строк назад; по умолчанию используется последнее сообщение.
- Удаление реакции командой "/unreact [n]".
- Отображение количества реакций под сообщением.
- Для полноценной работы требуется расширение "draft/message-reactions".
Индикаторы набора текста
- Отображение информации о том, что собеседник набирает сообщение в канале или личном чате.
- Передача собственного статуса набора текста.
- Остановка индикатора после отправки или очистки поля ввода.
- Использование тега клиента "+typing" через "message-tags" с учётом политики "CLIENTTAGDENY" сервера.
- Индикаторы временные и не сохраняются в истории.
Загрузка файлов через Filehost
- Кнопка прикрепления файла, если сервер предоставляет совместимый интерфейс загрузки "soju.im/FILEHOST".
- Использование существующих учётных данных подключения.
- Автоматическая вставка полученной ссылки в поле сообщения с возможностью добавить текст.
- Запрет небезопасных ссылок "http://" при защищённом TLS-подключении.
- Поддержка работы через прокси без отправки загрузки за пределы прокси.
- Возможность отключения функции для каждой сети.
Удаление сообщений
- Удаление собственного сообщения долгим нажатием и выбором пункта удаления.
- Использование расширения IRCv3 "draft/message-redaction" ("REDACT").
- Отображение отметки об удалении сообщения вместо бесследного исчезновения.
- Изменение отображения только после подтверждения удаления сервером.
- Работа на серверах, поддерживающих соответствующее расширение.
Регистрация аккаунта
- Пошаговая регистрация аккаунта через диалог в меню приложения.
- Поддержка последовательности регистрации, подтверждения электронной почты и завершения.
- Использование IRCv3 "draft/account-registration".
- Адаптация полей регистрации к требованиям сервера.
- Возможность сохранить пароль для последующей автоматической авторизации через SASL.
- Команды "/register" и "/verify
". - Понятные сообщения об ошибках регистрации.
- Возможность перейти к регистрации через NickServ на серверах без поддержки расширения.
Отображаемые имена и метаданные
- Отображение дополнительного имени пользователя рядом с ником при поддержке "display-name".
- Использование цвета ника при наличии метаданных "color".
- Просмотр аватара и статуса пользователя при нажатии на ник.
- Ограничение внешних изображений правилами безопасности.
- Очистка метаданных от управляющих символов и цветовых кодов.
- Настройка собственного имени, статуса, цвета и аватара через меню или команду "/metadata".
- Просмотр метаданных другого пользователя командой "/metadata list".
- Использование расширения "draft/metadata-2".
Интерфейс и удобство использования
Интерфейс Material 3
- Интерфейс на Jetpack Compose и Material Design 3.
- Темы оформления: тёмная, светлая, Matrix (зелёный на чёрном), Terminal (янтарный) и системная.
- Настройка размера шрифта, межстрочного интервала и высоты строк сообщений.
- Шрифты Open Sans, Inter, моноширинный шрифт или пользовательский файл шрифта.
- Независимая настройка шрифтов интерфейса и области чата.
- Настройка оформления временных меток и ников: квадратные, круглые, угловые, фигурные скобки или без скобок.
- Отдельная настройка цвета временных меток.
- Отображение цветовых кодов mIRC/ANSI.
- Палитра из 99 цветов.
- Цветное отображение ников.
- Разделённый экран в альбомной ориентации с регулируемыми границами панелей.
Уведомления
- Уведомления при упоминании ника.
- Уведомления о личных сообщениях и пользовательских ключевых словах.
- Раздельные каналы звуковых и беззвучных уведомлений.
- Настройка интенсивности вибрации.
- Push-уведомления без фонового IRC-подключения при поддержке сервером необходимого расширения.
Удобство общения
- Предварительный просмотр ссылок на изображения и видео.
- Автодополнение ников и упоминаний из списка участников канала.
- Нажимаемые ссылки и адреса электронной почты.
- Отдельный черновик для каждого разговора с сохранением позиции курсора.
- Копирование текста сообщения долгим нажатием.
- Закрытие канала или выход из него свайпом по буферу.
- Необязательная панель с темой канала.
- Индикатор задержки соединения.
- Обучающий тур для новых пользователей.
- Отображение сообщений, отправленных командами "/msg" и "/notice", в текущем окне общения.
- Отображение CTCP-запросов и ответов в текущем разговоре.
- Поиск настроек по названию, описанию, категории и альтернативным терминам.
- Настраиваемый размер истории сообщений; значение по умолчанию — 800.
- Возможность глобально скрыть события JOIN, PART и QUIT.
Действия с пользователями и каналами
- Меню действий с ником: WHOIS, личный чат, упоминание, DCC, игнорирование и снятие игнорирования.
- Панель управления режимами канала с описаниями.
- Управление списками банов, quiet, исключений и приглашений.
- Инструменты IRC-оператора: kick-ban, принудительный вход и выход из канала, рассылка сообщений.
Автодополнение ников и команд
- Всплывающий список для упоминаний "@nick".
- Вставка "nick: " в начале сообщения или "@nick " внутри текста.
- Автодополнение по клавише Tab на физической клавиатуре.
- Переключение между совпадениями повторным нажатием Tab и обратный переход через Shift+Tab.
- Автодополнение IRC-команд, начинающихся с "/".
- Сокращённые команды NickServ и ChanServ: "ns", "cs", "as", "hs", "ms", "bs".
Предварительный просмотр медиа
- Предварительный просмотр изображений внутри чата с кнопкой загрузки.
- Встроенный видеоплеер YouTube.
- Воспроизведение видео из публикаций X/Twitter по ссылкам.
- Ограничение размера изображений до 5 МБ.
- Возможность ограничить загрузку медиа только Wi-Fi.
- Предварительный просмотр отключён по умолчанию и включается в настройках медиа.
Маркер непрочитанного места
- Тонкая линия показывает место, на котором пользователь остановился при чтении.
- Появляется при прокрутке вверх за пределы видимых сообщений.
- Автоматически сбрасывается при возвращении к нижней части чата.
Список игнорирования
- Отдельный список игнорирования для каждой IRC-сети.
- Сопоставление ников без учёта регистра.
- Добавление пользователя командой "/ignore nick" или через настройки.
- Сообщения от игнорируемых пользователей скрываются.
Журналирование чатов
- Необязательная запись истории каждого сеанса; по умолчанию отключена.
- Настраиваемый срок хранения журналов; по умолчанию — 14 дней.
- Выбор пользовательской папки через Android Storage Access Framework (SAF).
- Необязательное журналирование буфера сервера.
- Поиск по истории и журналам командой "/find keyword".
- Необязательный журнал сырого IRC-протокола для диагностики с сокрытием паролей.
Передача файлов DCC
DCC SEND, CHAT и пассивная передача
- Отправка и получение файлов от других пользователей.
- Зашифрованная передача файлов DCC SSEND.
- Прямые текстовые сеансы DCC CHAT.
- Пассивный и обратный DCC с совместимым с HexChat обменом токенами — полезно при работе за NAT.
- Turbo DCC (TSEND) без подтверждения каждого пакета для увеличения скорости передачи.
- Поддержка IPv6 для DCC SEND, CHAT и пассивных соединений.
- Отображение прогресса на экране передач.
- Настраиваемый диапазон входящих портов для NAT и межсетевых экранов.
- Сохранение полученных файлов в Downloads или в выбранную папку через SAF.
- DCC отключён по умолчанию и включается в настройках.
Безопасность: DCC устанавливает прямое соединение между клиентами. Принимайте файлы только от пользователей, которым доверяете.
Пассивный DCC позволяет инициировать соединение со стороны получателя и может лучше работать за NAT или CGNAT.
Большие файлы размером более 4 ГБ
- Для файлов более 4 ГБ используются 64-битные подтверждения DCC размером 8 байт.
- Для небольших файлов сохраняются стандартные 4-байтовые подтверждения.
- Поддерживаются оба порядка байтов — big-endian и little-endian — для совместимости с mIRC.
- Передачи с неизвестным размером файла ("size 0") также используют 64-битные подтверждения.
Возобновление прерванной передачи
- После неудачной загрузки сохраняются данные о частично полученном файле: отправитель, имя, размер и путь.
- При повторном предложении того же файла появляется кнопка возобновления рядом с принятием и отклонением.
- Поддерживаются входящие запросы "DCC RESUME" при отправке файлов с ответом "DCC ACCEPT" и согласованного смещения.
- Состояние незавершённых передач сохраняется после перезапуска приложения.
- Устаревшие данные очищаются через 30 дней; предусмотрена обработка повреждённого состояния.
Прокси и Tor
- Передача файлов через настроенный для сети прокси SOCKS5 или SOCKS4a.
- Поддержка работы через Tor с помощью Orbot одновременно с IRC-подключением.
Примечание о совместимости
Возможности IRCv3, история сообщений, реакции, регистрация, push-уведомления и некоторые другие функции требуют поддержки со стороны IRC-сервера или bouncer. Наличие функции в документации не означает, что она доступна на каждом сервере.
Исходный код
"Репозиторий DimLife IRC на GitHub" (https://github.com/dimliferu/DimLifeIRC)
DimLife IRC основан на открытом проекте HexDroid. Авторские права, уведомления и условия лицензии исходного проекта должны сохраняться.
DimLife IRC — IRC-клиент для Android, с помощью которого можно подключаться к IRC-сетям, общаться в каналах и личных сообщениях.
Для начала достаточно выполнить три действия: добавить сеть, подключиться к серверу и войти в канал. Остальные настройки можно изменить позже.
- Откройте главное меню приложения и перейдите в раздел Networks (Сети).
- Выберите готовую сеть или нажмите Add (Добавить).
- Укажите название сети, адрес сервера и порт.
- Оставьте TLS включённым, если сервер поддерживает защищённое подключение.
- Укажите свой никнейм. При необходимости задайте запасной ник, имя пользователя и настоящее имя.
Для большинства IRC-серверов с TLS используется порт 6697, однако точный порт зависит от сети.
Чтобы сеть отображалась в боковой панели, включите параметр Show in network sidebar. Закрепить её вверху списка можно значком звезды.
Откройте нужную сеть, нажмите Connect (Подключиться) и дождитесь завершения подключения.
Сообщения сервера появятся в отдельном окне сети. Если подключение прошло успешно, вы сможете переходить в каналы и общаться с другими пользователями.
Чтобы приложение подключалось автоматически при запуске, включите Auto-connect on startup в настройках сети.
В окне сети можно использовать команды:
-
/join #channel— войти в канал. -
/join #channel key— войти в канал, защищённый паролем. -
/list— открыть список доступных каналов.
Замените #channel на название нужного канала.
Если хотите автоматически входить в каналы после подключения, добавьте их в список автоматического входа в настройках сети.
Если у вас ещё нет выбранной сети, можно попробовать одну из перечисленных ниже. Перед подключением уточните актуальный адрес сервера и порт на официальном сайте соответствующей сети.
| Сеть | Сервер | Обычный Порт | SSL/TLS-порт | Особенности |
|---|---|---|---|---|
| DimLife | irc.dimlife.ru | 6667 | 6697 | Сообщество DimLife IRC |
| RusChat | irc.ruschat.net | 6667 | 6697 | Русскоязычная Сеть RusChat |
Для защищённого подключения оставляйте TLS включённым. Если сервер не отвечает на порту 6697, проверьте документацию выбранной сети.
Чтобы подключиться к IRC-серверу DimLife, создайте сеть в приложении и введите адрес и порт, предоставленные администратором сервера. Убедитесь, что настройки TLS соответствуют настройкам сервера.
На многих IRC-сетях можно зарегистрировать никнейм или отдельный аккаунт. Способ регистрации зависит от сервисов конкретной сети.
Если сеть поддерживает SASL:
- Откройте настройки сети.
- Перейдите в раздел Authentication (Аутентификация).
- Включите SASL.
- Выберите поддерживаемый сервером механизм аутентификации.
- Укажите имя аккаунта и пароль.
SASL позволяет пройти аутентификацию во время подключения, до входа в каналы.
Основные механизмы:
- PLAIN — имя пользователя и пароль. Используйте только через защищённое TLS-соединение.
- SCRAM-SHA-256 — проверка с криптографическим обменом, если поддерживается сетью.
- EXTERNAL — аутентификация с помощью клиентского TLS-сертификата, если она настроена на сервере.
Если SASL не поддерживается, некоторые сети позволяют авторизоваться после подключения через NickServ или другой сервис. Команды и порядок регистрации уточняйте в документации своей сети.
IRC не является обычным мессенджером с серверным почтовым ящиком: если клиент отключён, вы можете пропустить сообщения.
Чтобы сохранять соединение:
- Откройте Settings (Настройки).
- Перейдите в раздел Connection (Подключение).
- Включите Keep alive in background.
Android может показывать постоянное уведомление, пока приложение поддерживает соединение в фоновом режиме. Это ожидаемое поведение.
При потере соединения приложение может автоматически выполнять повторные попытки подключения. Если Android завершает работу приложения после закрытия экрана, проверьте настройки энергосбережения и разрешения для фоновой работы на своём устройстве.
Приложение может уведомлять о:
- упоминании вашего никнейма в канале;
- новых личных сообщениях;
- появлении заданных вами ключевых слов.
На Android 13 и более новых версиях необходимо разрешить отправку уведомлений. Проверить разрешение можно в системных настройках Android в разделе приложений.
Некоторые IRC-серверы поддерживают передачу истории сообщений. Если сервер поддерживает эту функцию, клиент может загружать недавние сообщения при входе в канал.
Количество загружаемых сообщений настраивается в параметре History limit. Доступность истории зависит от возможностей сервера и его настроек.
TLS шифрует соединение между приложением и IRC-сервером. По возможности используйте защищённый порт и не отключайте проверку сертификатов без необходимости.
При первом подключении приложение может запомнить отпечаток сертификата сервера. Если впоследствии отпечаток изменится, внимательно проверьте причину перед повторным подключением: это может быть обычное обновление сертификата, но также может указывать на проблему безопасности.
Если используемая версия приложения поддерживает прокси, для отдельной сети можно настроить SOCKS-прокси в её параметрах.
Для подключения через Tor можно использовать локальный SOCKS-прокси, предоставляемый Orbot или другим совместимым сервисом. Адрес и порт зависят от конфигурации прокси.
Прокси может скрыть от IRC-сервера ваш прямой IP-адрес, но сам по себе не гарантирует полной анонимности. Учитывайте особенности выбранной сети и настройки устройства.
Баунсер — это сервис, который поддерживает соединение с IRC-сетью вместо вашего устройства и может сохранять историю сообщений.
Если вы используете баунсер, откройте настройки нужной сети, включите Bouncer mode и выберите тип сервиса, если такая настройка доступна.
Поддерживаемые форматы имени пользователя зависят от типа баунсера. Например, soju и ZNC используют разные варианты записи имени пользователя, сети и идентификатора клиента. Уточните параметры у администратора своего баунсера.
Если приложение поддерживает экспорт настроек:
- Откройте Settings → Backup & Restore.
- Нажмите Export и сохраните файл резервной копии.
- На новом устройстве откройте тот же раздел.
- Нажмите Import и выберите сохранённый файл.
После восстановления проверьте настройки сетей и подключения. Пароли SASL и клиентские TLS-сертификаты могут не включаться в резервную копию, поэтому при необходимости добавьте их заново.
Если не удаётся подключиться к серверу:
- проверьте адрес и порт;
- убедитесь, что TLS включён или выключен в соответствии с требованиями сервера;
- проверьте интернет-соединение;
- уточните, не требуется ли регистрация аккаунта;
- проверьте документацию или обратитесь к администратору сети.
Если приложение отключается в фоновом режиме, проверьте разрешения на уведомления, работу фоновых служб и системные ограничения энергосбережения.
DimLife IRC — проект на основе свободного программного обеспечения. Лицензия и сведения об исходном проекте доступны в репозитории приложения.