MyChat Scripts Engine: mSetUserAttribute

MyChat Scripts Engine: mSetUserAttribute

Функция для изменения данных профиля пользователя по его атрибуту.

 

Синтаксис

function mSetUserAttribute(iUIN: integer; sAttributeName, sValue: string): integer;

 

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

Параметр

Тип

Значение

iUIN

integer

уникальный идентификатор пользователя;

sAttributeName

string

имя атрибута из профиля, который следует изменить. Регистр букв не важен;

sValue

string

значение атрибута.

 

Список доступных полей пользователя, которые можно изменять

Название

Описание

Avatar

номер аватара пользователя;

Tag

текстовый тег, специальное поле;

UserDomainName

имя домена пользователя;

InternalNickName

ник пользователя. Если пользователь доменный — это его доменное имя;

Active

активна или заблокирована учётная запись пользователя (1 или 0);

FirstName

реальное имя пользователя;

MiddleName

отчество пользователя;

LastName

фамилия пользователя;

Home_MaritalStatus

семейное положение;

Home_Phone

домашний телефон;

Home_Fax

домашний факс;

Home_Birthday

дата рождения в формате dd.mm.yyyy;

Email

основной адрес электронной почты;

Home_Cellular

личный мобильный;

Home_StreetAddress

домашний адрес;

Home_City

город проживания;

Home_State

штат/провинция/область/край проживания;

Home_ZIP

домашний почтовый индекс;

Home_Country

страна проживания;

Home_WWW

личная WEB-страница;

Work_Position

должность;

Work_CompanyName

название компании;

Work_Office

рабочий офис;

Work_Phone

рабочий телефон;

Work_Fax

рабочий факс;

Work_Pager

рабочий пейджер или номер мессенджера;

Work_StreetAddress

рабочий адрес;

Work_City

рабочий город;

Work_State

рабочий штат/провинция/область/край;

Work_ZIP

рабочий почтовый индекс;

Work_Country

рабочая страна;

Work_WWW

рабочая WEB-страница;

Spoken_Lang_1

владение языками, номер 1;

Spoken_Lang_2

владение языками, номер 2;

Spoken_Lang_3

владение языками, номер 3;

Interest_Section_1

область интересов, номер 1;

Interest_Section_2

область интересов, номер 2;

Interest_Section_3

область интересов, номер 3;

Interest_Section_4

область интересов, номер 4;

Interest_Words_1

область интересов, ключевые слова, номер 1;

Interest_Words_2

область интересов, ключевые слова, номер 2;

Interest_Words_3

область интересов, ключевые слова, номер 3;

Interest_Words_4

область интересов, ключевые слова, номер 4;

History_Section_1

тип прошлого места работы или учёбы, номер 1;

History_Section_2

тип прошлого места работы или учёбы, номер 2;

History_Section_3

тип прошлого места работы или учёбы, номер 3;

History_Words_1

тип прошлого места работы или учёбы, ключевые слова номер 1;

History_Words_2

тип прошлого места работы или учёбы, ключевые слова номер 2;

History_Words_3

тип прошлого места работы или учёбы, ключевые слова номер 3;

Past_Organization_1

тип организации, прошлого места работы, номер 1;

Past_Organization_2

тип организации, прошлого места работы, номер 2;

Past_Organization_3

тип организации, прошлого места работы, номер 3;

Past_Organization_Words_1

тип организации, прошлого места работы, ключевые слова номер 1;

Past_Organization_Words_2

тип организации, прошлого места работы, ключевые слова номер 2;

Past_Organization_Words_3

тип организации, прошлого места работы, ключевые слова номер 3;

Sex

пол пользователя;

Hello_Message

сообщение-приветствие, если есть. Показывается всем пользователям, открывшим приват с этим человеком;

Autoreplay_Message

сообщение-автоответчик;

Autoreplay

включен или выключен автоответчик (1 — включен, 0 — выключен);

About

информационное поле "О пользователе";

Custom_1

текстовое custom-поле номер 1;

Custom_2

текстовое custom-поле номер 2;

Custom_3

текстовое custom-поле номер 3.

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

0

функция отработала успешно;

-1

указан несуществующий пользователь;

-2

указан неправильный атрибут;

-3

вы не можете устанавливать атрибуты для робота (UIN = 0);

-4

содержимое атрибута не может быть пустым.

 

Пример

В разделе настроек формирования внешнего вида имени пользователя указываем "%nick% %custom1%". Имя пользователя будет составлено из ника и некоей переменной, которую мы заполняем из скрипта. У каждого пользователя есть имя компьютера, если пользователь "мигрирует", то мы меняем его custom-поле в профиле, чтобы в чате отображалось "в дороге", если он работает на ноутбуке и его имя компьютера "TOSHIBA-...", "офис" — если название компьютера "COMP....." и так далее.

 

Обработку вешаем" на событие OnUserLogin:

function OnUserLogin(iCID, iLoginUIN, iLoginState: integer; sLoginIP, sLoginMAC, sLoginHardwareID, sLoginCompName, sLoginVersion, sLoginDomain, sSessionID, sAuthService, sClientType, sRemoteOS: string): boolean;
var
  s, sWhere: string;
begin
  s := LowerCase(sLoginCompName);
  
  sWhere := '';
  
    if pos('toshiba', s) <> 0 then sWhere := '(в дороге)' else
    if pos('comp-', s) <> 0 then sWhere := '(офис)' else
    if pos('kiev', s) <> 0 then sWhere := '(у заказчика)';
  
  mSetUserAttribute(iLoginUIN, 'custom_1', sWhere);  
  
  result := true;
end;

begin

end.

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

Пользователь залогинен на компьютере с именем "TOSHIBA-PC":

 

Внешний вид пользоваеля в MyChat после выполнения скрипта

 

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

LowerCase

mGetUserAttribute

Pos