MyChat 2023.2 — улучшенные конференции

  1. Закрытие и удаление конференций
  2. Переименование конференций
  3. Оптимизации
  4. Улучшения MyChat для Android и iOS
  5. Разные полезности
  6. Все изменения общим списком + история разработки
  7. Как обновиться на последнюю версию?

1. Закрытие и удаление конференций


Следует пояснить отличия, потому что они довольно существенны. Если конференция закрывается — от неё отключаются все пользователи и сама конференция блокируется (как бы попадает в архив). В будущих версиях мы планируем сделать механизм возврата таких конференций в работу, если это будет нужно:

Администрирование конференций MyChat

Удаление — это почти то же самое, но с важным отличием: история сообщений в конференции удаляется навсегда, с сервера и на клиентских приложениях. Сама конференция также удаляется без возможности восстановления:

Удаление конференций MyChat

Удалять можно любые конференции, кроме автосоздаваемых на сервере.

Как обычно, все эти функции регулируются правами групп пользователей на сервере, в админке, раздел "Управление правами", "Конференции".


2. Переименование конференций


Теперь для этого не нужно закрывать конференцию и создавать её заново:

Переименование конференций MyChat

Перезапуск сервера не требуется, всё применяется "на лету". Единственное ограничение — названия конференций не должны совпадать. Причём, даже в регистре букв.

Например "Главная конференция" и "главная КОНФЕРЕНЦИЯ" будут считаться одинаковыми названиями. Сделано специально, чтобы избежать попыток фишинга и обмана.


3. Оптимизации


Продолжаем рефакторинг, начатый в предыдущей версии, связанный с конференциями с большим количеством людей онлайн. Разные кеши, "умные" алгоритмы для сглаживания пиковых нагрузок при массовых подключениях/отключениях, связанных с проблемами сетевого оборудования.

Помимо этого, консольные серверные команды (remove privates, remove confs) для массового удаления истории приватных диалогов и конференций теперь работают на порядок быстрее.

Поскольку MyChat — это ещё и безопасный self hosted мессенджер, то теперь эти команды отправляются даже тем устройствам, что были офлайн (windows, android, ios, macos и linux). История будет удалена в любом случае, а локальные базы данных ещё и сжаты для дополнительной защиты.


4. Улучшения MyChat для Android и iOS


В MyChat для iPhone добавлена поддержка альтернативного адреса сервера. Это удобно, если вы пользуетесь мессенджером на работе, в закрытой Wi-Fi сети, и дома или в дороге. Приложение автоматически переключается между внутренним и внешним адресами, что добавляет скорости работы и экономит мобильный трафик.

Улучшены механизмы загрузки файлов, сделана обработка датчика приближения при звонках, добавлена поддержка Android 13, обновлена библиотека для работы с emoji.

В MyChat для iOS добавлен список всех активных конференций с возможностью входа в любую из них.


5. Разные полезности


При создании новой конференции, чтобы не потерять введённые данные, если конференция уже существует — ошибка показывается во всплывающем сообщении (toast):

Ошибка названия конференции MyChat

Сделали автоматическое переключение на английскую раскладку при входе в консоль (Ctrl+`). Это удобно, потому что консольные команды на английском языке, можно не следить за текущей раскладкой клавиатуры.

В списке конференций для подключения улучшили работу фильтров и показываем, сколько именно людей сейчас онлайн из общего количества мемберов:

Онлайн из общего количества мемберов конференции MyChat

А ещё в дистрибутив MyChat Server теперь включена справка на украинском языке.


6. Все изменения общим списком + история разработки


История разработки версии с комментариями разработчиков

MyChat Client

[+] (win32) инструмент для закрытия конференций;
[+] (win32) инструмент для переименования конференций;
[+] (win32) автоматическое переключение на английскую раскладку при входе в консоль (Ctrl+`);
[+] (win32) инструмент для удаления текстовых конференций;
[+] (iOS) добавлен список всех активных конференций с возможностью входа в них;
[+] (websupport) отправка/получение статусов сообщений ("отправлено", "получено", "прочитано") в чате WEB-поддержки для сайта;
[+] (ios) добавлена возможность использования альтернативного адреса сервера;

[*] (win32) после полного удаления истории приватов и приватных диалогов на сервере, база данных "сжимается" для полного удаления истории и уменьшения размера на диске;
[*] (win32) при создании новой конференции, чтобы не потерять введённые данные, если конференция уже существует — ошибка показывается во всплывающем сообщении (toast);
[*] (win32) дополнено сообщение про нехватку свободного места на сервере при заливке файла, указывается, сколько свободного места в байтах осталось и буква диска (ошибка #0277);
[*] (win32) в списке доступных для входа конференций теперь показывается, сколько пользователей онлайн из общего количества находится внутри;
[*] (win32) в списке конференций для входа не показываются те конференции, в которых уже сейчас находится пользователь;
[*] (android) добавлена поддержка Android 13, обновлена библиотека для работы с emoji;
[*] (win32) если открыть консоль (Ctrl+~), а слева, например, открыт список диалогов с выделенным пользователем или конференцией, а затем кликнуть по тому же элементу в диалоге — программа не переключалась на историю чата, консоль оставалась активной на экране. Исправлено;
[*] (win32) полностью отключен встроенный FTP сервер, оставшийся от старых версий, когда обмен файлами был "точка-точка";
[*] (win32) добавлены проверки для загрузки информации о пользователях, если в чате показывается "noname (xxx)". Проблема иногда наблюдалась при обновлении со старых версий;

[-] (win32) баг с рендерером списка людей в конференции, что создаётся (Alt+C), не всегда показывалась подсказка в пустом списке пользователей для приглашения в центре экрана;
[-] (android) иногда приложение падало с ошибкой на странице добавления сервера. Исправлено;
[-] (win32) баг с фильтром названий/тем конференций в инструменте входа в существующие конференции (Alt+E), иногда после первого применения фильтр начинал сбоить;
[-] (win32) в некоторых ситуациях MyChat Client мог генерировать очень большую нагрузку на сервер, делая запросы на информацию об отображаемом имени в чате для других пользователей. Исправлено;
[-] (android) во время аудио-звонка датчик приближения отключал экран только после установки соединения. Исправлено;
[-] (android) исправлена загрузка файлов и изображений по http, приложение аварийно завершало работу;
[-] (websupport) отображались технические сообщения в виде "рупора". Исправлено;
[-] (win32) перестал работать просмотр перемещений пользователей по карте из-за обновления сервиса OpenLayers, который мы используем. Исправлено;
[-] (win32) баг при переключении между основным и резервным сервером, http(s) адрес для upload/download файлов не менялся;
[-] (android) (ios) после регистрации нового пользователя неправильно загружался список пользователей с сервера. Исправлено;
[-] (win32) если кликнуть правой кнопкой мышки в "Уведомлениях" (Ctrl+4), то пункт в списке выделялся, но не делался рендеринг в окне справа. Исправлено;
[-] (win32) не запускался мастер первого запуска после установки MyChat Client "c нуля". Исправлено;
[-] (win32) не работали плагины, которые используют команды для отправки/приёма raw data, исправлено;
[-] (win32) баг с переключением на информацию про android/ios через главное меню "Справка";
[-] (macos, linux, web) не отображались имена в списках контактов. Исправлено;
[-] (win32) ошибка ID: F0D0849E, при попытке выхода из программы, если после запуска был открыт менеджер учётных записей;
[-] (win32) если переключиться на личные контакты, список пуст, и затем свернуть окно — MyChat Client "зависал". Исправлено;
[-] (ios) исправлено получение пуш-уведомлений, теперь статус "доставлено" отправляется корректно;

MyChat Server

[+] 4 новых правила в правах групп пользователей раздела "Конференции": "Удаление конференций", "Закрытие конференций", "Удаление своих конференций" и "Закрытие своих конференций";
[+] в дистрибутив сервера добавлена справка на украинском языке;

[*] увеличена скорость работы консольной команды "remove privates";
[*] заблокированные пользователи теперь не включаются в списки пользователей конференций (любых, user defined либо автосоздаваемых на сервере).

[-] ошибка в рендерере списка конференций GUI сервера, если в названии или теме конференции были символы, отличные от стандартных букв/цифр и знаков препинания, сервер "падал". Исправлено;
[-] (admin) в разделе скриптов "User defined scripts" не отображались галочки для включения/отключения скриптов. Исправлено;
[-] (admin) не обновлялся счетчик в группах пользователей, при удалении пользователя из группы. Исправлено;
[-] функция проверки пароля пользователя в админке при получении QR-кода пользователя в менеджере пользователей работала некорректно. Исправлено;
[-] не всегда корректно работало изменение шаблона вида имён пользователей в чате. Исправлено.


7. Как обновиться на последнюю версию?


И коммерческая, и бесплатная версии обновляются одинаково. Сначала обновляется сервер, затем — клиенты. В основном, в автоматическом режиме.

Инструкция по обновлению MyChat

Служба поддержки