Форум Miranda-Planet - Ваша планета Miranda IM: Переменные для Tipper YM - Руководства - Руководства - Форум Miranda-Planet - Ваша планета Miranda IM

Перейти к содержимому

Пользователь офлайн Автор

Найти сообщения Информация по руководству

  • Добавлено: 29 июл 2009 13:14
  • Просмотры: 2418

Поделиться в:


 

Переменные для Tipper YM * * * * *

Описание: Примеры работы с Variables
В своё время я столкнулся с проблемой поиска нужных Элементов и Подстановок для модуля Tipper YM. К сожалению в то время найти подробные инструкции на русском найти было сложно. Приходилось смотреть многие сборки, искать по интернету и т.д.

Данная тема создана для сбора в одной теме интересных подстановок с использованием Variables.

Имя:
?if(?dbsetting(%subject%,?upper(?cinfo(%subject%,protocol)),FirstName),%raw:/FirstName|% %raw:/LastName|%,%raw:UserInfo/FirstName|% %raw:UserInfo/LastName|%)

Выводит имя и фамилию контакта из протокола, Иначе из UserInfo. Если фамилии нет, то выводит только имя.

Ник:
?if(!cinfo(%subject%,nick),?if(!strcmp(!cinfo(%subject%,nick),!cinfo(%subject%,display)),,!cinfo(%subject%,nick)),)

Выводит ник, ТОЛЬКО если контакт был переименован. Если ник и отображаемое имя одинаковы, то не выводит ничего.

QIP статус:
!puts(st,?dbsetting(%subject%,?cinfo(%subject%,protoid),ICQStatus)) ?if(?strcmp(?get(st),24576),Работа,?if(?strcmp(?get(st),20480),Дом,?if(?strcmp(?get(st),16384),Депрессия, ?if(?strcmp(?get(st),12288),Злой,))))

Выводит в подсказке QIP-статус: Дом, Работа, Депрессия, Злой

Работа:
?if2(!cinfo(%subject%,coname)!crlf(),)?if2(!cinfo(%subject%,cocountry)  ,) ?if2(!cinfo(%subject%,cocity)  ,)?if2(!cinfo(%subject%,costreet)  ,)?if2((!cinfo(%subject%,copos)),)

Выводит взаимонезависимые данные о работе

Адрес:
?if2(!cinfo(%subject%,country)  ,)?if2(!cinfo(%subject%,city)  ,)?if2(!cinfo(%subject%,street),)

Выводит взаимонезависимые данные о домашнем адресе

Последнее появление:
Реализации через Buddy Expectator+ и Last seen разные
BuddyExpectator — подстановки

  • Label: lastseen_ago
    Module: BuddyExpectator
    Setting or prefix: LastSeen
    Translation: DWORD timestamp to time difference
  • Label: lastseen_date
    Module: BuddyExpectator
    Setting or prefix: LastSeen
    Translation: DWORD timestamp to date (short)
  • Label: lastseen_status
    Module: BuddyExpectator
    Setting or prefix: LastStatus
    Translation: WORD to status description
  • Label: lastseen_time
    Module: BuddyExpectator
    Setting or prefix: LastSeen
    Translation: DWORD timestamp to time (no seconds)


BuddyExpectator — значение вывода
?ifgreater(?difftime(?ts2date(?dbsetting(%subject%,BuddyExpectator,LastSeen),M/d/yy) ?ts2time(?dbsetting(%subject%,BuddyExpectator,LastSeen)),?cdate(M/d/yy) ?ctime()),86400,%lastseen_date% @ %lastseen_time%,%lastseen_ago% ago), %lastseen_status%

Last seen — подстановки
  • Label: lastseen_ago
    Module: SeenModule
    Setting or prefix: seenTS
    Translation: DWORD timestamp to time difference
  • Label: lastseen_date
    Module: SeenModule
    Translation: <prefix>Day|Month|Year to date
  • Label: lastseen_status
    Module: SeenModule
    Setting or prefix: OldStatus
    Translation: WORD to status description
  • Label: lastseen_time
    Module: SeenModule
    Translation: <prefix>Hours|Minutes to time

Last seen — значение вывода
?ifgreater(?difftime(?dbsetting(%subject%,SeenModule,Month)/?dbsetting(%subject%,SeenModule,Day)/?dbsetting(%subject%,SeenModule,Year) ?dbsetting(%subject%,SeenModule,Hours):?dbsetting(%subject%,SeenModule,Minutes):?dbsetting(%subject%,SeenModule,Seconds),?cdate(M/d/yyyy) ?ctime()),86400,%lastseen_date% @ %lastseen_time%,%lastseen_ago% ago), %lastseen_status%

Если событие было больше дня назад, выводится его дата и время (28.02.2009 at 17:19, Online), если меньше дня назад — разница времени (8m ago, Offline)
Автор B.Maximenko


Выводит Хстатусное сообщение для текущего контакта в нижнем регистре для указанных контактов или как есть для всех остальных.
!fix_eol2(

# Контакт
!puts(s,%subject%)

# Протокол
!puts(p,!cinfo(!get(s),protocol))

# В Миранде с русским языковым пакетом
# названия протоколов Метаконтакты и ВКонтакте
# возвращаются по-русски — исправляем
!puts(p,?if(!strcmp(!get(p),Метаконтакты),MetaContacts,?if(!strcmp(!get(p),Протокол ВКонтакте),VKontakte,!get(p))))

# Сообщение иксСтатуса
!puts(xsm,!if2(!dbsetting(!get(s),!get(p),XStatusMsg),))

# Выясняем: нужный ли это контакт
!puts(rc,!if2(!switch(!get(s),<ICQ:123456789>,OK,<MirandaIM:qqq@qqq.ru>,OK,<MetaContacts:30>,OK),))

# Закрываем fix_eol2 и выводим сообщение иксСтатуса
# как есть или в нижнем регистре
,)?if(!strcmp(!get(rc),OK),!lower(!get(xsm)),!get(xsm))

Автор Ermine


Имя уникального идентификатора (JID, ID протокола):
?if(?strcmp(?dbsetting(%subject%,?cinfo(%subject%,protoid),Auth),1),[ ! ], ) %sys:uid^!RSSNews% (%sys:proto%)

Сравнивается, что если в настройках БД контакта, в его контактной информации параметр Auth (требуется авторизация) равен 1, то вывести перед uid знак [!]
Далее выводится uid для всех протоколов кроме RSS и само имя протокола.

День рождения:
%BDay%  (%age%) !puts(c,!div(?if(!greater(0,!difftime(!cdate(M/d/yy) 00:00:00,!cinfo(%subject%,bmonth)/!cinfo(%subject%,bday)/!cdate(yy) 00:00:00)),!difftime(!cdate(M/d/yy) 00:00:00,!cinfo(%subject%,bmonth)/!cinfo(%subject%,bday)/!add(!cdate(yy),1) 00:00:00),!difftime(!cdate(M/d/yy) 00:00:00,!cinfo(%subject%,bmonth)/!cinfo(%subject%,bday)/!cdate(yy) 00:00:00)),86400))?if(!strcmp(!get(c),0),Сегодня!,Осталось дней: !get(c))

Здесь выводиться надпись Сегодня!, в зависимости от даты Дня рождения.
Для правильной работы требуются подстановки: BDay, age.

Телефон:
Код
?if(?cinfo(%subject%,phone), ?cinfo(%subject%,phone) ,)


Мобильник:

Код
?if(?cinfo(%subject%,cellular), ?cinfo(%subject%,cellular) ,)

Спасибо Микелю

MRIM шаблон
Статусное сообщение
Так как вывод микроблога будет реализован отдельно, необходимо отключить отображение статусного сообщения для контактов Mail.ru. Для этого открываем окно редактирования элемента и заменяем значение

Цитата

%sys:status_msg%

на

Цитата

%sys:status_msg^!MRA%


Запись микроблога
Теперь необходимо реализовать отображение микроблога для Mail.ru контактов. Для этого создаем новую подстановку. В поле метка указываем BlogTime, ставим флажок Модуль протокола контакта, в поле Параметр, префикс вписываем BlogStatusTime и выбираем преобразование: Дв. слово - в разницу времени.
Далее создаем новый элемент.

В поле метка указываем:
Запись микроблога: (%BlogTime% назад)
а в поле значение:
%raw:/BlogStatus^MRA%
и активируем флажок Значение с новой строки.

Слушаю
Сейчас мы займемся созданием элемента, который позволит видеть, что слушают ваши друзья. Создаем новый элемент. В окне создания, внизу из списка Заданные элементы выбираем Слушаю и нажимаем OK.

хСтатус
Выше уже упоминалось о "необычности" хСтатуса, теперь пришло время разобраться. В Mail.Ru Агенте передача статусного сообщения (Онлайн, Отошел и т.д.) реализована через бывший заголовок хСтатуса, поэтому даже если у контакта не установлен хСтатус, то Tipper YM всегда выводит статус контакта в формате Агента как заголовок хСтатуса. Так же в Mail.Ru Агенте отсутствует описание хСтатуса. Чтобы решить эту задачу, необходимо использовать модуль Variables.

И так, создаем новый элемент. В окне создания, внизу из списка Заданные элементы выбираем Заголовок хСтатуса. Теперь заменяем содержимое значения на:
?ifgreater(?dbsetting(%subject%,?cinfo(%subject%,protoid),XStatusId),0,%xsname%,)
Теперь заголовок хСтатуса не будет выводиться, если хСтатус не был установлен.

Если вы хотите скрыть описание хСтатуса для Mail.Ru контактов, то нужно создать новый элемент из заданных (Текст хСтатуса) и значение заменить на:
%raw:/XStatusMsg^!MRA%
Автор Black Roland


Некоторые из представленных выше значений взяты из примера, идущего с плагином Tipper YM, а некоторые взяты на бескрайних просторах интернета.

Примерный файл с подстановками на английском есть в docs\autoexec_tipper_items_eng.ini
Для установки файла с примером просто скопируйте файл в корневую папку Miranda IM

Для более полного понимания Подстановок и Элементов рекомендуется ознакомиться с Руководством по тонкой настройке Tipper YM

Прошу дополнять тему, выкладывать свои интересные решения для Элементов, расширяющие функционал стандартных решений для Tipper YM.

:)
1
Powered by Tutorials 1.2.2 © 2012, by Michael McCune
Яндекс.Метрика
Ножевой форум