Skip to content

features

DimLife edited this page Oct 15, 2026 · 1 revision

Возможности 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. Авторские права, уведомления и условия лицензии исходного проекта должны сохраняться.

Clone this wiki locally