MyChat 8.4 — свій месенджер з шифруванням

  1. Розширення скриптового движка
  2. Покращення MyChat для Android
  3. Система кешування WEB-сервера
  4. Всі зміни загальним списком + історія розробки
  5. Як оновитися на останню версію?

1. Розширення скриптового движка


У MSL тепер можна використовувати клас для роботи з рядками — TStringList. У комплекті 7 властивостей і 13 методів. Швидке завантаження текстових файлів у пам'ять, сортування, вставки, видалення і пошук.

Покращена підтримка динамічних масивів. У новій версії ми додали кілька функцій для роботи з датою і часом в стандарті ISO, функції для профілювання скриптів і роботи з користувачами.

Функція mSendPrivateMessage змінена (прибрано останній параметр bSaveToHistory), тому перевірте свої робочі скрипти.

Також з бібліотеки видалена функція mGetUserCID, як застаріла.


2. Покращення MyChat для Android


В додатку можна приховати особисті і загальні контакти, згідно набору прав групи користувачів на сервері. Якщо обидва правила відключені, то на головному екрані не буде показуватись вкладка "Контакти".

Якщо ви підключаєтесь до сервера за QR-кодом, в налаштування автоматично додається "зовнішня" адреса вашого сервера, спеціально для автоматичного перемикання між мережами. Коли ви на роботі — додаток підключається по Wi-Fi всередині локальної мережі компанії, коли в дорозі або вдома — на зовнішню адресу, через інтернет.

Прибрали спливаюче віконце повідомлення про те, що пропала мережа або сервер недоступний, тепер короткочасно показується ненав'язливий статус:

Відсутнє підключення на MyChat для Android

Також додали правило в групах прав для Android-користувачів "Відображати вкладку "Дзвінки" на головному екрані". Якщо вона вам не потрібна — можна вимкнути.


3. Система кешування WEB-сервера


Всі файли, які заливаються на сервер, тепер кешуються у пам'яті. Також у кеш потрапляє WEB-адмінка, довідка, вбудований форум і канбан-дошка.

Це дає значний приріст швидкості для роботи всіх WEB-сервісів і економить трафік, тому що дані стискаються GZIP (якщо в цьому є сенс, звичайно. Наприклад, JPG-зображення або ZIP-архіви система не стискає).

Якщо сервер бачить, що до файлів немає звернень — вони автоматично видаляються з пам'яті.

Кешування WEB сервера MyChat

В адмінці сервера MyChat ми зробили спеціальний інструмент для більш тонкого налаштування системи кешування.

За замовчуванням система кешування ввімкнена та налаштована на оптимальну швидкодію, але ви можете її відключити.


4. Всі зміни загальним списком + історія розробкии


Історія розробки версії з коментарями розробників

MyChat Client

[+] (Android) додане опрацювання правил для відображення особистого та загального списку контактів. Також, якщо обидва ці правила вимкнені, на головному екрані не буде показуватись вкладка "Контакти";

[*] (Android) перероблена система система відображення відсутності підключення до сервера (при переключенні між мережами або коли сервер недоступний). Тепер замість спливаючого вікна внизу статус підключення буде відображатись на тулбарі;
[*] якщо ввімкнути фільтр у діалогах чи контактах, а потім клікнути по результату — фільтр автоматично знімається;
[*] покращений рендеринг персонального списку контактів, тепер добре видно групи та виділених користувачів, навіть якщо вікно не в фокусі;
[*] оновлена бібліотека перевірки правопису Hunspell;
[*] автозаміна ком на крапки при введенні адреси сервера в менеджері облікових записів і мастері першого підключення;
[*] при підключенні Android-користувачів за QR-кодом, якщо немає альтернативної адреси сервера, автоматично підставляється зовнішній host сервера MyChat, котрий вказується у налаштуваннях MyChat Server (адмінка, "Налаштування", "Мережеві настройки", "IP адреса або Host сервера для зовнішніх клієнтів");
[*] зменшене навантаження на сервер при запитах аватарів користувачів;

[-] (Android) вхідний дзвінок у деяких випадках міг не проходити в локальній мережі. Виправлено;
[-] (Linux)(macOS)(Web) не відображалось спливаюче сповіщення про непрочитане повідомлення у конференціях. Виправлено;
[-] (Android) неправильно відображались видалені повідомлення. Виправлено;
[-] (Linux)(macOS)(Web) не можна було видалити Email у своєму профілі. Виправлено;
[-] (Linux)(macOS)(Web) помилка при вигнанні користувача призводила до відключення. Виправлено;
[-] неправильно відображались індикатори непрочитаних повідомлень біля чатів та конференцій, якщо їх більше 100. Виправлено;
[-] (Android)помилка від час запуску додатка в "Другому просторі" на пристроях Xiaomi. Виправлено;
[-] помилка ID: F4DCFCCF, інколи виникала під час перегляду інформації про користувача в його профілі (F4)
[-] "Скопіювати лінк" на LAN-лінку працювало неправильно, копіювався сам текст опису, а не самий лінк;
[-] якщо почати набирати текст, потім зайти в налаштування (Alt+O), а потім закрити вікно налаштувань, то текст чорновика зникав;
[-] (Android) при скануванні QR-кодів, не підставлявся логін в поле для его введення. Виправлено
[-] (Android) якщо під час дзвінка з сервера приходив неповний набір IP-адрес, дзвінок не відбувався. Виправлено;

MyChat Server

[+] додане динамічне кешування файлів WEB-сервера;
[+] нове правило в групах прав "Android", "Показувати вкладку "Дзвінки" на головному екрані";
[+] (MSL) клас TStringList, 7 властивостей і 13 методів для швидкого опрацювання текстових списків і файлів;
[+] (MSL) функція Frac для отримання дробової частини дійсного числа;
[+] (MSL) функція GetTickCount для отримання аптайму системи в мілісекундах і профілювання продуктивності скриптів;
[+] (MSL) функція Sqr для зведення чисел у другу ступінь;
[+] (MSL) функція Sqrt для обчислення квадратних коренів;
[+] (MSL) подія OnConfKick для обробки вигнання користувача з текстової конференції;
[+] (MSL) функція DateTimeToISOStr для перетворення дати й часу в ISO-формат;
[+] (MSL) функція ISOStrToDateTime для перетворення рядку ISO-формата в double-значення дати й часу;
[+] (MSL) функція mAddNewBBSMessage для додавання повідомлень на дошку оголошень;
[+] (MSL) функція mGetBirthdayUsers для отримання списку користувачів, у котрих день народження співпадає із вказаних днем;
[+] (MSL) функція StringCharsCount для підрахунку входжень вказаного символу в рядок;
[+] (MSL) функція mGetCIDSByUINAndClientType для отримання списку підключень вказаного користувача по типам додатків;
[+] (MSL) функція GetArrayLength для отримання кількості елементів одномірного динамічного масиву;
[+] (MSL) функція SetArrayLength для установлення розміру одномірного динамічного масиву;
[+] (MSL) функція mGetConfUsersList для отримання списку користувачів текстової конференції

[*] видалене налаштування для заборони виходу з автоствореної конференції в адмінці. Тепер ця опція увімкнена за умовчуванням для усіх автостворених конференцій на сервері;
[*] якщо користувач створив конференцію — він в ній модератор, автоматично. Але це не повинно показуватись у списках модераторів конференцій, котрі назначаються вручну на сервері в адмінці;
[*] (MSL) видалений параметр bSaveToHistory із функції mSendPrivateMessage;
[*] (MSL) видалена функція mGetUserCID, як застаріла;
[*] додана система кешування для аватарів різних розмірів. Це значно прискорює сервер під час перезавантаження з великою кількістю користувачів онлайн і/або на повільному "залізі";

[-] при виборі конференції для модераторів могли показуватись порожні позиції у спадаючому списку, з вказанням UID;
[-] видалення автостворених конференцій працювало некоректно, користувачі, у котрих така конференція була додана вручну, продовжували входити в неї після перепідключення;
[-] (Kanban) при створення нового проекту залишався напис "обробка запиту" і нічого не відбувалось. Виправлено;
[-] (MSL) виправлена робота функцій mIncUIN і mDecUIN;
[-] помилка "Out of memory" при генерації preview дуже великих зображень (більше 5К);
[-] не працювала реєстрація користувачів із клієнтської сторони;
[-] проблема з зависанням сервера в деяких випадках після рестарту і великої кількості онлайн-користувачів через некоректні статуси тільки що підключених користувачів. Виправлено.

5. Як оновитися на останню версію?


І комерційна, і безкоштовна версії оновлюються однаково. Спочатку оновлюється сервер, потім — клієнти. В цілому, в автоматичному режимі.

Інструкція щодо оновлення MyChat

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