MyChat 5.24 — импорт структуры компании из домена и новая технология обмена изображениями

10 февраля 2017 года мы выпускаем новую версию корпоративного офисного мессенджера MyChat. Это первое крупное обновление в новом году, изменений очень много, поэтому традиционно расскажем про самые главные.


1. Новая технология обмена изображениями в чате


Это первое, что сразу "бросится в глаза" после обновления программы. Картинки-миниатюры стали крупнее, контрастнее, быстрее отправляются на сервер, быстрее загружаются.

Скриншоты (PrintScreen / Alt+PrintScreen, Ctrl+V) теперь вставляются в чат на порядок быстрее, чем в старых версиях. Улучшенный алгоритм сжатия делает размер картинок в 2-3 раза меньше, чем раньше, а качество — выше. Скорость обработки изображений также увеличилась. Скриншотам теперь автоматически даются осмысленные названия, чтобы можно было понять, когда и кто отправлял их в чат.

Если какая-то картинка вставляется в чат повторно, она отправляется мгновенно, без заливки оригинала изображения на сервер. Это происходит благодаря умному алгоритму расчёта контрольных сумм, поэтому дубликаты одинаковых изображений на сервере больше не делаются. Используется SHA1.

Миниатюры картинок вставляются в чат в трёх разных вариантах: большой (по умолчанию), средний и маленький. На современных мониторах крупные миниатюры (200x200) смотрятся значительно лучше. Всё можно указать в настройках программы.

Фотографии и изображения теперь отправляются в чат отдельными сообщениями, без возможности добавить в одно сообщение несколько изображений или сочетать картинки с текстом и смайликами. Одна картинка — отдельное сообщение. Сделано для улучшения внешнего вида приложения, ускорения рендеринга и подготовкой к версиям MyChat для мобильных устройств.

Также в чат теперь можно вставлять PSD-файлы (Adobe Photoshop). Превьюшки автоматически генерируются, так что можно оценить изображение без необходимости загрузки с сервера оригинала.


2. Умный импорт структуры компании и должностей из Active Directory


Многие компании используют MyChat из-за его удобной и плотной интеграции с Active Directory. В версии 5.24 эта интеграция стала ещё лучше: мы научились импортировать из разных доменов дерево полной структуры компании.

MyChat анализирует структуру AD Organization Units и аккуратно интегрирует её со своим общим древовидным списком контактов мессенджера.

Должности и принадлежность сотрудников к разным подразделениям компании настраиваются автоматически.

Как бонус, MyChat даже определяет пол импортируемых пользователей (в Active Directory его обычно нет). Вроде бы мелочь, но это экономит время администратору в дальнейшем. Сейчас MyChat определяет немногим больше 600 популярных мужских и женских имён, в дальнейшем база будет пополняться.


3. Админка, WEB-чат, Kanban и форум: работа на форсаже Web Sockets


WEB-сервер MyChat теперь использует технологию Web Sockets, поэтому работа со всеми встроенными WEB-сервисами (админка, Kanban, Forum, WEB-чат и MyChat Guest) ускорилась в несколько раз.

Сейчас скорость работы MyChat в браузере зачастую не отличается от работы его старшего брата, win32-приложения. Проверить, поддерживает ли ваш браузер эту технологию, можно здесь.

Говоря простыми словами — стало очень комфортно.


4. Для программистов: автозавершение кода скриптов в MSL


Программист без автокомплиттера кода — существо глубоко несчастное. Мы сами постоянно пишем разные скрипты для сервера, и, как никто, это понимаем.

Работает стандартно и предсказуемо, по Ctrl+Space:

Никакого black magic :)

А ещё мы добавили фильтры в дереве скриптов, чтобы было легко находить нужное:


5. Дистрибутив на заказ: добавляем любые плагины


Если вы ещё не пользуетесь этим сервисом, самое время попробовать. MyChat Distrib Maker пригодится всем, кто хочет сделать готовый дистрибутив MyChat Client с готовыми настройками. Например, с "зашитым" внутрь своим адресом сервера.

Или с подготовленным набором плагинов, скажем UltraVNC и Beeper:

Одна минута — и можно качать готовый ZIP-файл. Отдаёте сотруднику для установки, никаких дополнительных настроек не потребуется.

Попробовать


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


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

MyChat Client
[+] когда Windows-сессия пользователя блокируется (Win+L), статус пользователя автоматически устанавливается в "Нет на месте", когда пользователь обратно делает log on — статус в MyChat изменяется на "Свободен";
[+] на изображениях в чате автоматически появляется хинт с реальным названием файла, а также есть возможность скопировать или пересохранить изображение через контекстное меню;
[+] при вставке скриншотов в чат название файла автоматически формируется из даты и времени, а также отображаемого имени отправителя;
[+] настройка размера уменьшенных копий для изображений, которые отправляются в чате;
[+] Drag&Drop файлов и изображений в любую часть окна MyChat, программа сама автоматически определяет, что с ними делать;
[+] поддержка просмотра миниатюр PSD-файлов (Photoshop Document) при передаче таких изображений в конференциях и приватах;
[+] сделан новый инструмент вставки изображений в чат;
[+] экспорт в CSV списка отправленных оповещений для дальнейшего анализа, кто их прочитал и когда, а кто — нет;
[+] возможность перехода по ярлыку в окне выбора файлов для отправки, само окно заменено на системное;
[+] (Tools) новый ключ консольной утилиты mcconsole.exe /stat для получения статистики работающего сервера в JSON формате;
[+] возможность перехода в сервис создания дистрибутивов MyChat Client прямо из главного меню программы;

[*] при первой вставке изображения с диска программа теперь автоматически открывает папку "Библиотеки\Изображения", а потом запоминает текущий путь выбора картинок для отправки в чат;
[*] если сервер требует обязательное использование шифрования, а в настройках клиента оно выключено, то теперь показывается специальное сообщение в протоколе соединения клиента;
[*] значительно увеличена скорость прорисовки списка пользователей конференции на крупных серверах, когда в конференциях находятся одновременно сотни пользователей. Проблема была замечена на Windows 10. Исправлено;
[*] (Plugins) обновлён плагин для удалённого управления компьютером UltraVNC;
[*] если на сервере закончились свободные соединения, при подключении показывается специальное сообщение в консоль программы и в лог;

[-] в папке C:\Users\%USERNAME%\Documents\MyChat\ создавались пустые папки даже для тех пользователей, которые не присылали файлы. Исправлено;
[-] ошибка при изменении настроек голосовой или видео связи в старых операционных системах. Исправлено;
[-] обработка команды изменения адреса сервера из админки ("Инструменты" -> "Перенос сервера") работала с ошибкой, вместо адреса альтернативного сервера подставлялся основной. Исправлено;
[-] проблема с portable-версией MyChat Client, программа запускалась с ошибкой. Исправлено;
[-] ошибка, иногда возникающая при автоматическом приёме файла, программа не сигнализировала об этом в трее и в дальнейшем система уведомлений могла сбоить вплоть до перезапуска программы. Исправлено;
[-] если стояла настройка автоматического приёма файлов от тех людей, которые находятся в контактах, а файл приходил от человека, которого в контактах нет — программа всё равно автоматически принимала его. Исправлено;
[-] уязвимость встроенного FTP сервера (доступ к файловой системе), который используется для передачи файлов напрямую между клиентами. Исправлена;

MyChat Server
[+] (WebAdmin) контекстное меню и поддержка "быстрых" клавиш для управления списками программ в дереве редактора скриптов "Инструменты" -> "Скрипты";
[+] (WebAdmin) поддержка "быстрых" клавиш для навигации по списку пользователей Home, End, а также добавления новых — Ins и удаления — Del;
[+] (WebAdmin) иконки пола пользователя в разделе "Пользователи" -> "Список пользователей";
[+] (WebAdmin) новое окно создания учётной записи пользователя с возможностью генерации пароля, его просмотром;
[+] (WebAdmin) "Пользователи" -> "Общий список контактов". Добавлены "быстрые кнопки": Ins — добавить подразделение, Del — удалить, F2 — переименовать;
[+] (WebAdmin) возможность автоматической сортировки должностей компании по алфавиту, вместо ручной расстановки. Инструмент "Пользователи" -> "Должности компании";
[+] (MSL) функция mHaltMyChatClient для отключения от сервера и завершения работы любого клиентского приложения;
[+] (MSL) функция mGetUsersListByParams для получения списка пользователей по набору параметров;
[+] (MSL) функция mGetUsersListByState для получения списка пользователей по их сетевому статусу;
[+] (WebAdmin) при импорте/обновлении учётных записей людей из Active Directory MyChat пытается определить пол пользователей (мужчина/женщина) самостоятельно, автоматически, потому что данной информации в личной карточке пользователя домена нет;
[+] (WebAdmin) при импорте пользователей из домена в Active Directory MyChat теперь может формировать общий древовидный список контактов на основе Organization Units из AD;
[+] (WebAdmin) теперь при импорте пользователей из Active Directory можно "втянуть" их должность в компании и использовать её внутри MyChat;
[+] (WebAdmin) новый инструмент загрузки сертификатов для настройки HTTPS;
[+] (MSL) событие OnRegistered — успешная регистрация нового пользователя на сервере;
[+] (MSL) функция mGetRoleIDByName для получения идентификатора группы прав по её названию;
[+] (MSL) скриптовое событие OnBeforeRegister;
[+] (MSL) функции StartOfTheYear, StartOfTheWeek, StartOfTheMonth, EndOfTheYear, EndOfTheWeek, EndOfTheMonth для работы с датой и временем;
[+] (Core) в интерфейсе сервера теперь показывается информация про сетевые интерфейсы, работающие сервисы и используемые порты;
[+] (MSL) функция mIsUserTeamLead для проверки, является ли пользователь руководителем подразделения;
[+] (MSL) новое событие "OnClientPluginSendRawData" для отслеживания RAW-команды, которыми обмениваются между собой плагины MyChat Client;
[+] (WebAdmin) фильтр названий скриптов и событий в дереве скриптов для быстрого поиска. Раздел админки "Инструменты" -> "Скрипты";
[+] (DistribMaker) в инструменте создания дистрибутивов на заказ появилась возможность включения в инсталлятор клиента любых официальных плагинов;
[+] (MSL) событие OnRemoteUserRequest для вызова серверных скриптов из MyChat Client;
[+] (MSL) функция mSendEmail для отправки электронной почты, используя внешний SMTP сервер, настройки доступа к которому указаны в MyChat Server;
[+] (WebAdmin) автодополнение кода в редакторе скриптов по Ctrl+Space;
[+] (WebAdmin) если в консоли управления сервером при редактировании скрипта нажать F5 в браузере, система запоминает, какой скрипт вы редактировали и после логина снова откроет исходный текст этой программы;
[+] (MSL) событие OnBBSMessage для обработки размещения нового сообщения на общей доске объявлений;
[+] (MSL) событие OnBroadcastMessage для отслеживания отправки оповещения в чате;
[+] (MSL) событие OnUserBlock для отслеживание автоматического блокирования пользователя;
[+] (MSL) функция mDeleteUserFromCommonContacts для удаления пользователя из общего списка контактов;
[+] (MSL) функция mIsUserIncludedToAutoConf для проверки, входит ли пользователь в список людей, которые автоматически включаются в автосоздаваемую конференцию;
[+] (MSL) функция mGetConfNameByUID для получения названия многопользовательской конференции по её идентификатору;
[+] (MSL) событие OnConfLeave — выход пользователя из конференции;
[+] (MSL) событие OnConfJoin для обработки попытки входа пользователя в текстовую конференцию;
[+] (MSL) новые функции YearOf, MonthOf, WeekOf, DayOf, HourOf, MinuteOf и SecondOf для работы с датой и временем;
[+] ключ командной строки /DisableServPass для отключения использования пароля на доступ к серверу;
[+] (MSL) событие OnConfMessage для обработки отправки сообщения в текстовую конференцию;

[*] (WebAdmin) "Пользователи" -> "Список пользователей", редактирование учётной записи пользователя, сохранение изменений — Ctrl+Enter;
[*] (WebAdmin) кнопка для копирования серийного номера в буфер обмена в разделе лицензий;
[*] (WebAdmin) вход в админку (окно логина). Enter работал только на поле ввода пароля, во всех остальных полях, даже если всё заполнено, Enter не даёт никакого эффекта. Поправлено;
[*] (WebAdmin) после рестарта web-сервера админка сама пытается делать переконнект на новый порт и http или https с сохранением текущего раздела;
[*] (WebAdmin) при импорте пользователей домена из Active Directory теперь происходит автоматический перенос из одного подразделения в другое и также автоматическое изменение должности, если эти данные менялись в домене;
[*] (Core) WEB-сервер теперь использует технологию WebSockets, поэтому работа со всеми WEB-сервисами (админка, Kanban, Forum, WEB-чат, Web support, MyChat Guest) ускорилась в несколько раз;
[*] (WebAdmin) в инструменте просмотра списка онлайн-пользователей после принудительного отключения или завершения работы пользователя автоматически обновляется список пользователей в интерфейсе. Также уменьшено время таймера автоматического обновления списка до 10 секунд;
[*] (Core) поправлены неточности при создании нового пользователя и последующего его логина на сервер. После того, как клиент получает ответ от сервера "sc_registered", он обязан отправить на сервер команду cs_login;
[*] (WebAdmin) анализ существования локальных папок в настройках FTP сервера + запрет использования сетевых путей в папках настроек путей;
[*] (WebAdmin) после ввода лицензионный ключей "железный" перезапуск сервера больше не требуется, достаточно нажатия кнопки в интерфейсе WEB-админки;
[*] (MSL) скрипты, которые срабатывают на каждую секунду, минуту, час и так далее, теперь ориентируются на системное время компьютера, а не как раньше, на аптайм MyChat Server;
[*] (Core) при изменении стиля отображения имени пользователя в чате теперь перезапуск сервера не требуется, все изменения показываются на клиентских компьютерах мгновенно;

[-] (WebAdmin) в архиве доски объявлений сообщения не были отсортированы по дате создания. Исправлено;
[-] (Core) некорректно работал механизм изгнания пользователя из конференции (kick), как в админке, так и на MyChat Client. Исправлено;
[-] (Core) ошибка, иногда возникающая при попытке отправить оповещение с MyChat Client (Ctrl+F9). Происходило мгновенное отключение MyChat Client;
[-] (WebAdmin) ошибки в инструменте массовых изменений данных пользователей: "Пользователи" -> "Список пользователей", выделить несколько учётных записей и нажать кнопку "Изменить". Оставались неочищенными данные с прошлой операции. Также не обновлялся общий список контактов и должностей. Исправлено;
[-] (WebAdmin) можно было сохранить пустое имя и пароль в настройках публичного доступа к FTP серверу. Исправлено;
[-] (WebAdmin) если зайти в настройки SMTP сервера, указать неправильные настройки, нажать на кнопку проверки соединения, то после того, как всё "отомрёт", кнопка проверки коннекта при изменении настроек SMTP больше не блокируется;
[-] (WebAdmin) "Настройки" -> "Настройка SMTP", при вводе значения порта или при очистке его значение автоматически устанавливалось на 26. Исправлено;
[-] (WebAdmin) в разделе "Дополнительно" настройка высоты рекламного баннера не работала. Исправлено;
[-] (WebAdmin) после изменения параметров FTP, кнопка "Перезагрузить FTP сервер" не исчезала после нажатия. Исправлено;
[-] (WebAdmin) если при входе в админку MyChat Server под доменным пользователем указать неправильный домен, консоль не показывала никаких сообщений, окно логина не изменялось. Теперь показывается ошибка #0092: "не удалось авторизоваться под указанным пользователем домена (неверно указаны логин, пароль или домен)". Исправлено;
[-] (WebAdmin) в инструменте "Шаблоны настроек клиентов" неправильно сохранялись названия файлов звуков. Исправлено;
[-] (WebAdmin) в инструменте "Онлайн пользователи" функционал кнопок "Отключить" и "Завершить работу" был перепутан местами. Исправлено;
[-] (WebAdmin) кнопка "Сегодня" в инструменте просмотра протоколов работала не всегда. Исправлено;
[-] (Core) ошибки при определении прав на отправку/получение приватных сообщений и файлов в разных состояниях (открыт приват или закрыт, открыт приват с роботом или пользователем, от которого пришло сообщение через IntegrationAPI). Исправлено;
[-] (Core) при подключении к серверу в админку, Kanban либо форум — не обновлялась информация о последнем времени подключения пользователя к серверу в базе MyChat Server. Исправлено;
[-] (Core) ошибка работы с правами при определении, можно ли совершать голосовые/видео звонки и можно ли их принимать для разных групп пользователей. Исправлено;
[-] (Build) ошибка при сборке дистрибутива, в инсталяционный пакет не попадала HTML-справка. Исправлено;
[-] ошибка при сохранении названия автосоздаваемой конференции в базе данных. Название сохранялось в нижнем регистре. Исправлено;
[-] исправлена ошибка, иногда возникающая при обновлении базы данных сообщений сервера с версий 5.6 и ниже.

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