Author Topic: Отображение ника вместо jid  (Read 5210 times)

0 Members and 1 Guest are viewing this topic.

Offline Magic

Отображение ника вместо jid
« on: 14 04 2015, 07:32:14 »
И снова добрый день :)

При запуске миранды с чистым профилем - в фрейме MyDetails и в окнах диалога, отображается jid пользователя (скрин 1).
После однократного захода в "Личные данные", с сервера подтягивается ник и аватар пользователя - они также используются в дальнейшем в фрейме и в окнах диалога (скрин 2).
Вопрос - как сделать эту процедуру автоматически при старте миранды? Есть ли сервис, который можно дернуть с помощью ActMan?
Если ручки растут из попки - это ножки
 

Offline Magic

Re: Отображение ника вместо jid
« Reply #1 on: 15 04 2015, 11:27:13 »
Сам себе не поможешь - никто не поможет :(
При открытии диалога "View/Change my details" через хуки вызывается функция:
Quote
int CJabberProto::SendGetVcard(const TCHAR *jid)
в нее передается m_szJabberJID (jid текущего пользователя).
В результате сервер присылает нам нашу собственную vcard и миранда ее обрабатывает и сохраняет.
Теперь вопрос - как цивилизованно дергать эту конструкцию при старте миранды\коннекте джаббера?
Я для себя сделал костыль в виде сервиса:

Code: [Select]
static INT_PTR RefreshOwnVCard(WPARAM w, LPARAM l)
{
if (CJabberProto *ppro = JabberChooseInstance(true))
ppro->SendGetVcard(ppro->m_szJabberJID);
return 0;
}

CreateServiceFunction("JABBER/RefreshOwnVCard", RefreshOwnVCard);

Он работает, но может этот маленький недочет можно поправить раз и навсегда?
Если ручки растут из попки - это ножки
 

Offline Magic

Re: Отображение ника вместо jid
« Reply #2 on: 21 04 2015, 10:17:15 »
Тарам пам пам..
Ничего не получится, как и с TabsRMM?
Если ручки растут из попки - это ножки
 

Offline Magic

Re: Отображение ника вместо jid
« Reply #3 on: 19 06 2015, 06:37:53 »
Ап..
Подскажите, как решить проблему цивилизованным методом? :(
Если ручки растут из попки - это ножки
 

Offline ghazan

Re: Отображение ника вместо jid
« Reply #4 on: 22 07 2015, 18:50:25 »
Я для себя сделал костыль в виде сервиса:

Code: [Select]
CreateServiceFunction("JABBER/RefreshOwnVCard", RefreshOwnVCard);
Он работает, но может этот маленький недочет можно поправить раз и навсегда?
проблема в том, что дергать каждый раз все вкарды - это, как бы это помягче сказать, не очень цивилизованно.
просто не поймут, а на половине серверов ты попадешь на шейпер, который тебе живо прикрутит фитилек даже для полезных запросов.

для новых контактов вкард и так запрашивается автоматически. в чем, собственно, проблема?
« Last Edit: 22 07 2015, 19:17:47 by Apollo2k4 »
 

Offline Magic

Re: Отображение ника вместо jid
« Reply #5 on: 23 07 2015, 08:07:47 »
проблема в том, что дергать каждый раз все вкарды - это, как бы это помягче сказать, не очень цивилизованно.
просто не поймут, а на половине серверов ты попадешь на шейпер, который тебе живо прикрутит фитилек даже для полезных запросов.

для новых контактов вкард и так запрашивается автоматически. в чем, собственно, проблема?
Проблема в своей vcard. Она не запрашивается с сервера, пока не откроешь "Личные данные".
Дергать все вкарды - не цивилизованно, эту проблему я решил вызовом сервиса из плагина WhenWasIt. Для меня приемлимо и сервер выдерживает. (этот вопрос обсуждали в другом треде).
Если ручки растут из попки - это ножки
 

Offline Davis