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 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, програма аварійно завершувала роботу;
[-] відображалися технічні повідомлення у вигляді "рупора". Виправлено;
[-] (win32) перестав працювати перегляд переміщень користувачів по карті через оновлення сервісу OpenLayers, який ми використовуємо. Виправлено;
[-] (win32) баг при перемиканні між основним та резервним сервером, http(s) адреса для upload/download файлів не змінювалась;
[-] (android) (ios) після реєстрації нового користувача неправильно завантажувався список користувачів із сервера. Виправлено;
[-] (win32) якщо клікнути правою кнопкою мишки в "Сповіщеннях" (Ctrl+4), то пункт у списку виділявся, але не робився рендеринг у вікні праворуч. Виправлено;
[-] (win32) не запускався майстер першого запуску після встановлення MyChat Client "з нуля". Виправлено;
[-] (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

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