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

0 Members and 4 Guests are viewing this topic.

Offline Elzor

Re: Протокол VKontakte
« Reply #300 on: 15 09 2014, 07:21:11 »
Thug, нетлог нужен
 

Offline watcher

Re: Протокол VKontakte
« Reply #301 on: 15 09 2014, 08:48:15 »
Thug, сегодня 2 ночника было, второй - 10448, там самый новый ВК, речь об этом билде?
Пожалуйста, внимательно прочтите правила постинга перед тем, как открыть новую тему.
Please read forum rules.
 

Offline Thug

Re: Протокол VKontakte
« Reply #302 on: 15 09 2014, 10:27:28 »
Ну вот тот, который 3 часа назад был, глючил. А вот сейчас только что обновился - работает, спасибо :THUMBS UP:

З.Ы.
Quote
Текущие известные баги/проблемы:
•emoji не показываются как надо
Чего это они не показываются как надо? У меня вроде всё как надо  ???
« Last Edit: 15 09 2014, 10:35:44 by Thug »
 

Offline watcher

Re: Протокол VKontakte
« Reply #303 on: 15 09 2014, 12:18:51 »
Thug, может имеется ввиду наитивная поддержка emoji шрифтами в миранде, а так через smileyadd они отлично показываются и работают.
Пожалуйста, внимательно прочтите правила постинга перед тем, как открыть новую тему.
Please read forum rules.
 

Offline Elzor

Re: Протокол VKontakte
« Reply #304 on: 16 09 2014, 02:28:26 »
В сегодняшний ночник добавлена поддержка ListeningTo. Для корректной трансляции на сайт проигрываемой музыки необходимо чтобы на сайте была включена опция "Транслировать в статус играющую музыку". Так же может потребоваться сброс токена приложения. Для его сброса необходимо перевести протокол в положение offline, открыть редактор базы и удалить ключ AccessToken в ветке протокола, после чего снова перевести протокол в online.
 

Offline MisterMyth

Re: Протокол VKontakte
« Reply #305 on: 16 09 2014, 04:47:16 »
А Media Player Classic поддерживается плагином ListeningTo? Я слушаю музыку только через данный проигрыватель. Если он не поддерживается, то я не буду тогда ставить плагин.
Myth: Make Your Thought Heard
 

Offline watcher

Re: Протокол VKontakte
« Reply #306 on: 16 09 2014, 05:33:33 »
MisterMyth, нет, ставьте Watrack, он сложен в настройке, но поддерживает невероятное количество плееров. Там настраивайте вывод в ListeningTo (не плагин, а режим вывода в тюнсы вместо статусов). Плагин ListeningTo поддерживает foobar и winamp через собственные плагины, установленные в сами плееры. Вот пример работы и кое-какой настройки с Watrack:

Spoiler
[close]

Post Merge: 16 09 2014, 05:39:19
Дружеский совет - вот тут оставить только используемые плееры и только используемые форматы:


Spoiler
[close]
Пожалуйста, внимательно прочтите правила постинга перед тем, как открыть новую тему.
Please read forum rules.
 

Offline MisterMyth

Re: Протокол VKontakte
« Reply #307 on: 16 09 2014, 05:51:56 »
watcher, благодарю за подробный ответ.

Плагин работает шикарно! Жаль в Miranda NG пока не добавили более развитый встроенный плеер аудио, было бы вообще офигенски! Но все равно спасибо.
« Last Edit: 16 09 2014, 07:02:19 by MisterMyth »
Myth: Make Your Thought Heard
 

Offline alitor

  • Newbie
  • *
  • Posts: 32
  • Country: ru
  • Jabber: Jabber ID
Re: Протокол VKontakte
« Reply #308 on: 19 09 2014, 08:48:10 »
Для корректной трансляции на сайт проигрываемой музыки необходимо чтобы на сайте была включена опция "Транслировать в статус играющую музыку".
Опыт показал, что эта опция никак не влияет на работу плагина - названия мелодий в любом случае устанавливаются в статусе. Вероятно, эта опция влияет на метод API audio.setBroadcast, а в плагине используется status.set
В связи с чем хотелось бы внести предложение. Плагин, устанавливая в статусе названия прослушиваемой музыки, замещает статус, если у кого-то он установлен, а по завершении прослушивания музыки статус просто обнуляется и остается пустым. Классно было бы, если бы перед установкой в статус названия мелодии плагин вначале считывал (status.get) установленный пользователем статус, а по завершении прослушивания музыки возвращал его на место.
 

Offline Elzor

Re: Протокол VKontakte
« Reply #309 on: 19 09 2014, 09:18:13 »
Опыт показал, что эта опция никак не влияет на работу плагина - названия мелодий в любом случае устанавливаются в статусе. Вероятно, эта опция влияет на метод API audio.setBroadcast, а в плагине используется status.set
Возможно, но я ориентируюсь на документацию в которой сказано:
Quote
Коды ошибок
221   Пользователь выключил трансляцию названий аудио в статус.
Возможно просто описание функции не соответствует текущему положению вещей.
Классно было бы, если бы перед установкой в статус названия мелодии плагин вначале считывал (status.get) установленный пользователем статус, а по завершении прослушивания музыки возвращал его на место.
Вопрос что считать "перед", а что считать "после". Конечно, перед записью в статус, его можно считать и сохранить, но определить чем старый статус установлен, в общем случае, нельзя. Это может быть эта миранда (прошлый трек), другая копия миранды, другое вк-приложение, плейер вк или сам пользователь на сайте. Надо учитывать еще и тот момент, что миранда не всегда в состоянии сообщить на сервер вк о своем уходе из онлайна и перевыставить статус (например при обрыве связи). Иными словами, в статусе может быть что угодно и смысл в сохранении и восстановлении его при этом теряется напрочь.
 

Offline alitor

  • Newbie
  • *
  • Posts: 32
  • Country: ru
  • Jabber: Jabber ID
Re: Протокол VKontakte
« Reply #310 on: 19 09 2014, 10:11:28 »
Конечно, перед записью в статус, его можно считать и сохранить, но определить чем старый статус установлен, в общем случае, нельзя.
Прошу только не воспринимать идею сразу в штыки, я же не предлагаю ничего крамольного. А если разобраться по пунктам, то не так уж это и невыполнимо.
Это может быть эта миранда (прошлый трек)
Я не программист (поэтому сразу извиняюсь, если терминологию неправильно употребляю), конечно, но я бы подумал, что это решается следующим алгоритмом: если плагин (протокола) получает от службы (ListenningTo) непустую строку (т.е. музыка заиграла), а сохраненного статуса у него (плагина) нет, то это расценивается, что это первый трек, и тогда плагин сохраняет статус из ВК и устанавливает ему название трека, соответственно если сохраненный статус непустой, то это не первый трек, тогда из ВК ничего не сохраняем, а передаем ему название следующего трека. Когда плагин получает от службы пустую строку (или что там она ему передает, когда плеер перестает играть), то плагин проверяет у себя сохраненный из ВК старый статус и возвращает его на ВК, а у себя его обнуляет.
другая копия миранды
Если одновременно запущено несколько копий миранды и все они транслируют музыку на один аккаунт ВК, то это, конечно, будет проблемно. Хотя такой сценарий представить сложно, потому что вряд ли кто-то будет такое делать у себя специально. Но в этом случае беспорядок в статусах и так будет создаваться, потому что они одновременно будут транслировать одни и те же треки (ведь читать они их будут из одного и того же плеера), либо, если из разных плееров, то статус будет метаться туда-сюда. В общем, это бессмысленно, хотя такая возможность и не исключена.
плейер вк или сам пользователь на сайте
Плеер ВК устанавливает статусы другим образом - по тому же принципу, по которому работает метод audio.setBroadcast (а может быть и посредством него), поэтому при использовании status.get считываться будет не транслируемый плеером ВК трек, а именно установленный пользователем статус. Ну, а по поводу установленного самим пользователем статуса - так он-то нам как раз и нужен.

В общем, мне кажется просто стоит попробовать. Конечно, существует множество разных нареканий, но я уверен, все их можно решить в процессе. Но если вам просто не хочется возиться, так и скажите. Я ж просто предлагаю. Я давно этот функционал у ghazan-а просил. Он тоже не хотел его делать, приводя кучу доводов, почему это нецелесообразно и ненужно.
 

Offline Elzor

Re: Протокол VKontakte
« Reply #311 on: 19 09 2014, 10:31:32 »
alitor, оформляй тикет, будет время - покручу.

поэтому при использовании status.get считываться будет не транслируемый плеером ВК трек, а именно установленный пользователем статус.
Как бы не так (см. вложение)
 

Offline alitor

  • Newbie
  • *
  • Posts: 32
  • Country: ru
  • Jabber: Jabber ID
Re: Протокол VKontakte
« Reply #312 on: 19 09 2014, 10:38:53 »
Ну, вот, пожалуйста, решение само просится. Чтобы не восстанавливать статус, установленный плеером ВК, можно отслеживать это вложение audio в ответе метода.
Ладно, создам тикет, может, и этот через полгодика кто-нибудь возьмется решить.

Post Merge: 19 09 2014, 11:30:59
Или еще один вариант трансляции музыки в статус ВК. Он, конечно, еще более сумасшедший  ;D
Просто в ВК уже столько музыки загружено, что почти наверняка то, что вы слушаете, там уже есть. Поэтому можно было бы, например, осуществлять поиск прослушиваемого вами трека (метод audio.search), а потом брать первый элемент из возвращаемого списка и ставить его в статус при помощи audio.setBroadcast с идентификатором найденной аудиозаписи. А если в этом методе поставить параметр count равным 1, то поиск будет практически моментальным, и возвращаемый список будет всего из одного элемента. По завершении прослушивания или если вернулся нулевой список поиска, то выполнять audio.setBroadcast без параметров. В теории это автоматически вернет пользовательский статус, и тогда ничего считывать и запоминать не надо.
Ну, это просто так мои фантазии на тему  ::)
« Last Edit: 19 09 2014, 11:34:41 by alitor »
 

Offline Elzor

Re: Протокол VKontakte
« Reply #313 on: 19 09 2014, 11:53:52 »
Он, конечно, еще более сумасшедший
Я тоже о таком думал и мне этот вариант нравится. Если обернуть поиск и чтение и установку статуса в execute, то на сервер будет уходить только название песни, а приходить только старый статус.
 

Offline alitor

  • Newbie
  • *
  • Posts: 32
  • Country: ru
  • Jabber: Jabber ID
Re: Протокол VKontakte
« Reply #314 on: 19 09 2014, 12:03:28 »
Я тоже о таком думал и мне этот вариант нравится. Если обернуть поиск и чтение и установку статуса в execute, то на сервер будет уходить только название песни, а приходить только старый статус.
Да, точно! Про execute то я и забыл. Тогда все можно делать одним запросом. И старый статус не нужен, потому что (я это уже проверил) если аудиостатус устанавливается пустым, то ВК автоматически восстанавливает старый пользовательский статус.