Author Topic: MirLua  (Read 39174 times)

0 Members and 1 Guest are viewing this topic.

Offline unsane

Re: MirLua
« Reply #15 on: 21 07 2015, 17:59:58 »
Должно заработать после следующего ночника  ::)
Si no estas con nosotros, estas contra nosotros.
 

Offline Dimsok

  • Sr. Member
  • ****
  • Posts: 282
  • Country: ru
Re: MirLua
« Reply #16 on: 22 07 2015, 07:54:36 »
Работать-то работает, только толку немного - отображается только в окне сообщения для одиночных контактов, а не для групп. Лучше бы чтоб наоборот - только в группах показывалась, а в обычном окне зачем будет бестолку место занимать
 

Offline Dimsok

  • Sr. Member
  • ****
  • Posts: 282
  • Country: ru
Re: MirLua
« Reply #17 on: 22 07 2015, 07:59:05 »
Ааа, там же настраивается через плагин. Думал, в самом скрипте прописывается. Просто у меня из трех скриптов один автоматом в групповых чатах прописался
 

Offline unsane

Re: MirLua
« Reply #18 on: 22 07 2015, 12:20:43 »
Dimsok, исправил скрипт
Si no estas con nosotros, estas contra nosotros.
 

Offline Ищезаяц

  • Newbie
  • *
  • Posts: 43
  • Country: ee
  • (\_/)
    • Ищезайчег
  • Jabber: Jabber ID
Re: MirLua
« Reply #19 on: 02 08 2015, 09:39:41 »
как вставить некий сферический блаблабла в поле ввода по хоткею?
в одном случае мне надо например по нажатию F5 вставлять "/me " в поле ввода.
в других отправлять конкретную фразу или из вариаблесов нечто. бросьте примерчиков плиз )
[ about | VI ]
 

Offline Ищезаяц

  • Newbie
  • *
  • Posts: 43
  • Country: ee
  • (\_/)
    • Ищезайчег
  • Jabber: Jabber ID
Re: MirLua
« Reply #20 on: 24 09 2015, 21:27:00 »
Напоминалка одному хорошему человеку:

значицца о расширении yarelay скриптиком на lua:
трэба получать собщение "ID:Nick:Proto: Message" и отвечать печатая по схеме "ID, Message"
правда сам по себе yarelay никакие номера собщениям не присваивает
или мы говорим о замене плагина скриптом? :))
[ about | VI ]
 

Offline unsane

Re: MirLua
« Reply #21 on: 25 09 2015, 20:03:21 »
Наметки для relay-скрипта
Code: [Select]
local db = require('m_database')
local proto = require('m_protocols')
local message = require('m_message')

local relayContact = 0

proto.OnReceiveMessage(function(w, l)
  if l.hContact ~= relayContact then
    local module = db.GetSetting(l.hContact, 'Protocol', 'p')
    local nick = db.GetSetting(l.hContact, module, 'Nick')
    local account = proto.GetAccount(module)
    local text = string.format('%d:%s:%s:%s', l.hContact, nick, account.ProtoName, l.Message)
    message.Send(relayContact, text)
  else
    local hContact, text = l.Message:match('^(%d+):(.*)$')
    if hContact ~= relayContact then
      message.Send(tonumber(hContact), text)
    end
  end
end)

p.s. нужно заменить в "local relayContact = 0" 0 на номер релейного контакта
Si no estas con nosotros, estas contra nosotros.
 

Offline Ищезаяц

  • Newbie
  • *
  • Posts: 43
  • Country: ee
  • (\_/)
    • Ищезайчег
  • Jabber: Jabber ID
Re: MirLua
« Reply #22 on: 27 09 2015, 05:46:32 »
странно, вчера всё пересылалось - сегодня нет
[ about | VI ]
 

Offline Ищезаяц

  • Newbie
  • *
  • Posts: 43
  • Country: ee
  • (\_/)
    • Ищезайчег
  • Jabber: Jabber ID
Re: MirLua
« Reply #23 on: 27 09 2015, 11:53:13 »
оказалось что сегодня всё летело одному знакомому во вконтактик 8)
получается что номер не уникальный. либо может изменится при перезапуске или обновлении плагов или ещё там чего
[ about | VI ]
 

Offline donald

Re: MirLua
« Reply #24 on: 17 05 2016, 07:27:34 »
Здравствуйте, можно ли узнать о перспективе данного плагина? В стабильной версии его нет - только в разработке. Собственно интересует озвученный выше OnReceiveMessage ? Попробовал вызвать эту функцию - получаю ошибку, что такой нет.
 

Offline unsane

Re: MirLua
« Reply #25 on: 17 05 2016, 11:20:33 »
donald, в стабильно версии будет после следующего релиза.
OnReceiveMessage удален. Вместо него можно вот так сделать:
Code: [Select]
m.HookEvent("MirLua/RecvMessage", function(w, l)
  local ccd = CCSDATA(l)
  print(ccd.Message)
end)
Si no estas con nosotros, estas contra nosotros.
 

Offline donald

Re: MirLua
« Reply #26 on: 17 05 2016, 16:24:53 »
Спасибо, так получилось, только print у меня не работает. Пришлось так
Code: [Select]
winapi = require('winapi')

local hHook = m.HookEvent("MirLua/RecvMessage", function(w, l)
    local ccd = CCSDATA(l)
winapi.MessageBox(_, ccd.Message, "MirLua", 0, 10000)
--  print(ccd.Message)
end)
Отправил в личку сообщение.
« Last Edit: 17 05 2016, 18:13:50 by Apollo2k4 »
 

Offline donald

Re: MirLua
« Reply #27 on: 18 05 2016, 16:23:21 »
А можно общий вопрос, как узнать, что нужно использовать CCSDATA(l), "MirLua/RecvMessage", Message и.п. Дело в том, что мне нужно еще:
1. Получить адрес отправителя, что-бы ответить
2. Хорошо бы прекратить дальнейшую обработку хука, чтобы сообщение вообще не показывалось получателю.

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

Offline unsane

Re: MirLua
« Reply #28 on: 18 05 2016, 17:12:39 »
Как-то так:
Code: [Select]
message = require('m_message')
winapi = require('winapi')

m.HookEvent("MirLua/RecvMessage", function(w, l)
  local ccd = CCSDATA(l)
  if ccd.Message == 'stopword' then
    winapi.ShellExecute('command', 'file', 'args', 0)
    message.Send(ccd.hContact, ccd.Message)
    return 1;
  end
end)
Однако, прекращение дальнейшей обработки хука будет работать только в следующем ночнике.
Si no estas con nosotros, estas contra nosotros.
 

Offline donald

Re:MirLua
« Reply #29 on: 19 05 2016, 17:51:51 »
Спасибо. Работает. Еще вопрос, хочу добавить в PopUp окно возможность "быстрого ответа" через вызов QuickReplies.