Author Topic: Протокол VKontakte  (Read 920456 times)

0 Members and 19 Guests are viewing this topic.

Offline Elzor

Re: Протокол VKontakte
« Reply #1470 on: 31 07 2020, 18:33:47 »
Thug, вроде поправил - войдет в следующий ночник. Если таки не работает, то будет нужен нетлог.
 
The following users thanked this post: Thug

Offline Thug

Re: Протокол VKontakte
« Reply #1471 on: 01 08 2020, 09:57:51 »
Elzor, работает, спасибо  :THUMBS UP:
 

Offline Thug

Re: Протокол VKontakte
« Reply #1472 on: 12 08 2020, 11:23:59 »
Elzor, раньше, когда человек присылал стикер, в Миранде приходила ссылка на картинку. Потом в какой-то момент они перестали приходить, приходит только ссылка на сообщение. Это что-то на стороне ВК поменялось или в плагине? Или я какую-то настройку случайно убрал?
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1473 on: 12 08 2020, 14:19:56 »
Ничего не менялось, насколько я знаю. У меня работает.
Если в настройках плагина на вкладке Вид одновременно отключены поддержка тега [img] и обработка стикеров как смайлов, то стикеров видно не будет. Что-то одно (хотя бы) из этого для отображения надо включить. Естественно, при включенной второй опции, используемый набор смайлов должен содержать стикеры.
 

Offline Thug

Re: Протокол VKontakte
« Reply #1474 on: 12 08 2020, 14:42:52 »
Elzor,
Если включено отображение стикеров, как смайлы, то код появляется, а если стоит только галка на поддержке тега [img], то только ссылка на сообщение (первая картинка). Я смотрю сейчас историю, и вижу, что в 2018 году были ссылки на стикеры с расширением .png (вторая картинка), но я восстанавливал профиль, так что не могу сказать точно, когда ссылки на стикеры перестали приходить. У вас точно приходит ссылка на картинку стикера?
« Last Edit: 12 08 2020, 14:45:08 by Thug »
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1475 on: 13 08 2020, 10:45:16 »
Thug, посмотрел сейчас, отоброжение стикеров начисто отключается при отключении ббкодов для вложений. Честно говоря, не помню, чем я руководствовался, когда такую логику закладывал. Может кто-то просил возможность убрать их с глаз долой, а мне лень было делать отдельную опцию, может просто случайность. Пожалуй, я это дело поправлю.
 
The following users thanked this post: Thug

Offline Thug

Re: Протокол VKontakte
« Reply #1476 on: 13 08 2020, 11:54:26 »
Elzor, а нельзя ли реализовать полноценное отображение стикеров без IEView? Я знаю, что есть опция для отображения стикеров, как смайлов, но эта реализация неудобна по двум причинам:

1. Вконтакт клепает новые наборы стикеров быстрее, чем появляются новые эмодзи.
2. Ссылки на картинки стикеров на сервере ВК имеют простой формат. В ссылке можно увидеть id стикера, и наоборот - по id стикера можно легко сгенерировать ссылку. Но заполнение и периодическое пополнение скрипта со 100500 строками вида "Smiley = "id.png", 0 "sticker:id" (где переменная id - одно и то же число), кажется мне дуратской затеей, т.к. всё это можно прописать несколькими строками кода, который будет банально отображать картинку по ссылке.

Плагин смайлиэд, в свою очередь, умеет подгружать картинки по ссылкам из интернета, но не умеет работать с переменными - можно было бы реализовать эту возможность там, чтобы вместо 100500 строк кода была одна строка, отображающая любые стикеры, подгружая картинки по генерируемым из id ссылкам. Но я не уверен, где логичнее и проще это реализовывать - в плагине протокола или в смайлиэд. В конце-концов, я надеюсь, что Миранда когда-нибудь будет отображать любые вложения, как любой современный мессенджер.
« Last Edit: 13 08 2020, 13:08:53 by Thug »
 

Offline dartraiden

Re: Протокол VKontakte
« Reply #1477 on: 13 08 2020, 13:07:14 »
Можно, нужно сделать как в Facebook (а ранее в MSN) stickers (в девичестве custom smileys). Там они стягиваются с сервака в виде картинок и показываются как смайлы.
« Last Edit: 13 08 2020, 13:09:57 by dartraiden »
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1478 on: 13 08 2020, 15:28:01 »
2. Ссылки на картинки стикеров на сервере ВК имеют простой формат. В ссылке можно увидеть id стикера, и наоборот - по id стикера можно легко сгенерировать ссылку.
В вк все проще, в вк вместе с сообщением в котором стикер всегда прилетают и ссылки на него во всех разрешениях и вариантах.
Можно, нужно сделать как в Facebook (а ранее в MSN) stickers (в девичестве custom smileys). Там они стягиваются с сервака в виде картинок и показываются как смайлы.
Не знал. Посмотрю на досуге.
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1479 on: 15 08 2020, 15:46:03 »
Сделал прием стикеров, аналогично фейсбучным. На IEView это почему-то не заработало (во всяком случае у меня) тоже работает, но там и не особо надо - через ббкод оно работает и быстрее, и прямее. На остальных журналах работает. Придет с очередным ночником.
Отправить стикер (зная его код) можно, послав конструкцию [sticker:КОД] или [sticker-КОД].
Если кто-то хочет продолжать использовать статические смайлпаки со стикерами, то ему можно создать в базе байтовый ключ UseStikersAsStaticSmileys = 1 в ветке протокола.
« Last Edit: 16 08 2020, 13:33:39 by Elzor »
 
The following users thanked this post: Thug, dartraiden, UksusoFF

Offline Thug

Re: Протокол VKontakte
« Reply #1480 on: 16 08 2020, 03:07:29 »
Elzor,
Обновился, но у меня почему-то по-прежнему не отображаются. С отключенной настройка "Обрабатывать стикеры как смайлы" приходит ссылка, с включенной приходит код.
« Last Edit: 16 08 2020, 12:35:07 by Thug »
 

Offline Thug

Re: Протокол VKontakte
« Reply #1481 on: 16 08 2020, 12:32:58 »
Elzor, после очередного обновления всё заработало) Большое спасибо за стикеры  :)
 

Offline dartraiden

Re: Протокол VKontakte
« Reply #1482 on: 16 08 2020, 12:36:03 »
Обновился, но у меня почему-то по-прежнему не отображаются.
А это уже был косяк самого SmileyAdd, поддержку стикеров в котором  когда-то вкривь и вкось написали под MSN. Сейчас эти чудеса @ghazan переписал по человечески.
 

Offline Shpionus

Re: Протокол VKontakte
« Reply #1483 on: 17 09 2020, 13:19:38 »
Контакт не подключается:
Spoiler
[16:08:04 3688] [VKontakte_1] CVkProto::SetStatus iNewStatus = 40072, m_iStatus = 40071, m_iDesiredStatus = 40071 m_hWorkerThread = 0[16:08:04 3688] [VKontakte_1] CVkProto::SetStatus (2) iNewStatus = 40072, m_iStatus = 1, m_iDesiredStatus = 40072 oldStatus = 40071[16:08:04 2110] [VKontakte_1] CVkProto::WorkerThread: entering[16:08:04 3688] [VKontakte_1] CVkProto::SetStatus (ret) iNewStatus = 40072, m_iStatus = 1, m_iDesiredStatus = 40072 oldStatus = 40071[16:08:04 2110] [VKontakte_1] CVkProto::Push[16:08:04 2110] [VKontakte_1] CVkProto::ExecuteRequest ====https://oauth.vk.com/authorize? " много символов, удалил"====[16:08:04 3688] KeepStatus: assigning status 40072 (40071, 0) to VKontakte_1[16:08:04 2110] [VKontakte_1] Connection request to oauth.vk.com:443 (Flags 11)....[16:08:04 2110] [VKontakte_1] (07F97A40) Connecting to server oauth.vk.com:443....[16:08:04 2110] [VKontakte_1] (07F97A40) Connecting to ip удалил:443 ....[16:08:04 2110] [VKontakte_1] (1560) Connected to oauth.vk.com:443[16:08:04 2110] [VKontakte_1] (1560 oauth.vk.com) Starting SSL negotiation[16:08:04 2110] [VKontakte_1] (1560 oauth.vk.com) SSL negotiation successful[16:08:04 2110] [VKontakte_1] ([/size]удалил[/size][size=78%]) Connection closed internal[/size][16:08:04 2110] [VKontakte_1] ([/size]удалил) Connection closed[16:08:04 2110] [VKontakte_1] CVkProto::ConnectionFailed ShutdownSession[16:08:04 2110] [VKontakte_1] CVkProto::ShutdownSession[16:08:04 2110] [VKontakte_1] CVkProto::OnLoggedOut[16:08:04 2110] [VKontakte_1] CVkProto::SetAllContactStatuses (40071)[16:08:04 2110] [VKontakte_1] CVkProto::ExecuteRequest pReq->bNeedsRestart = 0[16:08:04 2110] [VKontakte_1] CVkProto::WorkerThread: leaving m_bTerminated = 1[16:08:04 3688] KeepStatus: connection lost! (VKontakte_1)[16:08:13 3688] [VKontakte_1] CVkProto::SetStatus iNewStatus = 40071, m_iStatus = 40071, m_iDesiredStatus = 40071 m_hWorkerThread = 0[16:08:13 3688] KeepStatus: assigning status 40071 (40072, 0) to VKontakte_1[16:08:14 3688] KeepStatus: stop checking (success)
[close]
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1484 on: 17 09 2020, 18:10:08 »
Да, у вас не подключается. Считаете возможным вырезать что-то из нетлога - ну и разбирайтесь тогда сами.