MyChat Scripts: функция mRemovePrivateHistory — удалить историю приватных сообщений за диапазон времени для выбранных пользователей

MyChat Scripts: функция mRemovePrivateHistory — удалить историю приватных сообщений за диапазон времени для выбранных пользователей

"Для разработчиков", "Серверные скрипты", "Описание функций", "История сообщений", "mRemovePrivateHistory".

 

Функция для выборочного удаления истории приватных сообщений на сервере и выбранных клиентах за диапазон времени.

 

Операцию нельзя "откатить" назад, будьте внимательны, история удаляется безвозвратно.

 

Все офлайн-пользователи получат команду на удаление истории приватных диалогов сразу после подключения, автоматически.

 

Синтаксис

function mRemovePrivateHistory(const sUsersList: string; const dtUTCStart, dtUTCEnd: double): string;

 

Параметры и возвращаемые значения

Параметр

Тип

Значение

sUsersList

string

список UIN-ов пользователей, для которых нужно удалить историю. Можно указать слово "all", тогда будет удалена история для всех пользователей;

dtUTCStart

double

дата и время в UTC, с которой нужно удалять сообщения. История пишется только в UTC, поэтому нужно учитывать коррекцию относительно локальной даты и времени;

dtUTCEnd

double

дата и время в UTC, по которую нужно удалять сообщения.

 

Результат функции

Список UIN-ов пользователей через запятую, для которых была найдена и удалена история за указанный диапазон времени. Если возвращена пустая строка — истории нет либо она уже удалялась ранее.

 

Пример

Удалить историю приватов для пользователя UIN=15427 с "начала времён" по "вчера". Поскольку приватные разговоры — это парные диалоги, то они удаляются не только для указанного пользователя, но и для его собеседников. Например, UIN 15427 разговаривал с UIN 6 и UIN 3. Получается 2 диалога, все они будут очищены как у UIN 15427, так и у пользователей с UIN 6 и 3. Остальные диалоги у UIN 6 и 3 останутся нетронутыми.

 

Обратите внимание, что повторное выполнение скрипта отрабатывает намного быстрее, потому что данные уже удалены.

begin
  mRemovePrivateHistory('15427', NoDate, LocalTimeToUTC(IncDay(Now, -1)));
end.

Результат работы скрипта

[09:56:14] (Run "RemoveData"): Время выполнения скрипта: 1477 мс

[09:56:14] (Run "RemoveData"): Скрипт выполнен успешно.

[09:56:19] (Run "RemoveData"): Время выполнения скрипта: 283 мс

[09:56:19] (Run "RemoveData"): Скрипт выполнен успешно.

 

Ещё посмотреть

IncDay

LocalTimeToUTC

NoDate

Now

Консольная команда remove privates