Plugin:MirLua/ru/m protocols: Difference between revisions

From Miranda NG
< MirLua‎ | MirLua
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 13: Line 13:
Получает протокол
Получает протокол
;Параметры
;Параметры
: '''''data'''''
: '''''mixed'''''
::
::
{| class="wikitable"
{| class="wikitable"
Line 26: Line 26:
;Результат
;Результат
: Тип: '''userdata'''
: Тип: '''userdata'''
: Возвращает таблицу [[#PROTOCOLDESCRIPTOR|PROTOCOLDESCRIPTOR]].
: Возвращает мета-таблицу [[#PROTOCOLDESCRIPTOR|PROTOCOLDESCRIPTOR]]
;Пример
;Пример
{{Content:MirLua/Example|code=local proto = protos.GetProtocol({ Name = 'JABBER' })}}
{{Content:MirLua/Example|code=local proto = protos.GetProtocol({ Name = 'JABBER' })}}
Line 53: Line 53:
: ''wParam''
: ''wParam''
: ''lParam''
: ''lParam''
; Результат
: Тип: '''number'''
: Возвращает результат выполнения сервиса или [[#CALLSERVICE_NOTFOUND|CALLSERVICE_NOTFOUND]]
; Пример
{{Content:MirLua/Example|code=protos.CallSendChain(hContact, '/SendMsg', 0, a'Hello!')}}
{{Content:MirLua/Example|code=protos.CallSendChain(hContact, '/SendMsg', 0, a'Hello!')}}
=== CallReceiveChain ===
Вызывает цепочку обработки для входящего события (игнорирование, запись в бд и т.п.)
; Параметры
: '''''name'''''
:: Тип: '''string'''
:: Имя сервиса
: ''wParam''
: ''lParam''






== Аккаунты ==
== Аккаунты ==
=== GetAccount ===
Получает аккаунт протокола
;Параметры
: '''''mixed'''''
::
{| class="wikitable"
!Тип
|'''number'''
|'''string'''
|-
!Описание
|номер контакта
|название аккаунта (внутреннее)
|}
;Результат
: Тип: '''userdata'''
: Возвращает мета-таблицу [[#PROTOACCOUNT|PROTOACCOUNT ]]
;Пример
{{Content:MirLua/Example|code=local proto = protos.GetProtocol({ Name = 'JABBER' })}}
=== Accounts ===
Итератор для аккаунтов
;Параметры
: '''''mixed'''''
::
{| class="wikitable"
!Тип
|'''none'''
|'''string'''
|'''[[#PROTOCOLDESCRIPTOR|userdata]]'''
|-
!Описание
|без параметра
|название аккаунта (внутреннее)
|протокол
|}
;Результат
: Тип: '''function'''
: Возвращает функцию-итератор для перебора аккаунтов. Список оканчивается элементом со значением '''nil'''
;Пример
{{Content:MirLua/Example|code=
for proto in protos.Protocols() do
  print(proto.Name)
end
}}




== Структуры ==
== Структуры ==
=== PROTOCOLDESCRIPTOR ===
=== PROTOCOLDESCRIPTOR ===
Мета-таблица для работы с C-типом PROTOCOLDESCRIPTOR
Таблица, описывающая протокол
;Поля
;Поля
: '''''Name'''''
: '''''Name'''''
Line 98: Line 150:
::: Тип: '''function'''
::: Тип: '''function'''
::: Возвращает функцию-итератор для перебора списка аккаунтов. Список оканчивается элементом со значением '''nil'''
::: Возвращает функцию-итератор для перебора списка аккаунтов. Список оканчивается элементом со значением '''nil'''
=== PROTOACCOUNT ===
Таблица, описывающая аккаунт протокола
;Поля
: '''''ProtoName'''''
:: Тип: '''string'''
:: Название протокола
: '''''ModuleName'''''
:: Тип: '''string'''
:: Название аккаунта (внутреннее)
: '''''AccountName'''''
:: Тип: '''string'''
:: Название аккаунта (пользовательское)
: '''''IsEnabled'''''
:: Тип: '''boolean'''
:: Аккаунт включен?
: '''''IsVisible'''''
:: Тип: '''boolean'''
:: Аккаунт отображается?
: '''''IsVirtual'''''
:: Тип: '''boolean'''
:: Аккаунт виртуальный?
: '''''IsOldProto'''''
:: Тип: '''boolean'''
:: Протокол поддерживает аккаунты?

Revision as of 23:35, 4 September 2017

Предоставляет функционал для работы с протоколами.

Подключение модуля: local protos = require('m_protocols')

<translate> Note</translate>
Параметры, выделенные жирным курсивом, являются обязательными.


Протоколы

GetProtocol

Получает протокол

Параметры
mixed
Тип number string
Описание номер контакта название протокола
Результат
Тип: userdata
Возвращает мета-таблицу PROTOCOLDESCRIPTOR
Пример
local proto = protos.GetProtocol({ Name = 'JABBER' })


Protocols

Итератор для протоколов

Параметры
Результат
Тип: function
Возвращает функцию-итератор для перебора протоколов. Список оканчивается элементом со значением nil
Пример
for proto in protos.Protocols() do
  print(proto.Name)
end


CallSendChain

Вызывает цепочку обработки для исходящего события (фильтрация, шифрование и т.п.)

Параметры
name
Тип: string
Имя сервиса
wParam
lParam
protos.CallSendChain(hContact, '/SendMsg', 0, a'Hello!')


CallReceiveChain

Вызывает цепочку обработки для входящего события (игнорирование, запись в бд и т.п.)

Параметры
name
Тип: string
Имя сервиса
wParam
lParam


Аккаунты

GetAccount

Получает аккаунт протокола

Параметры
mixed
Тип number string
Описание номер контакта название аккаунта (внутреннее)
Результат
Тип: userdata
Возвращает мета-таблицу PROTOACCOUNT
Пример
local proto = protos.GetProtocol({ Name = 'JABBER' })


Accounts

Итератор для аккаунтов

Параметры
mixed
Тип none string userdata
Описание без параметра название аккаунта (внутреннее) протокол
Результат
Тип: function
Возвращает функцию-итератор для перебора аккаунтов. Список оканчивается элементом со значением nil
Пример
for proto in protos.Protocols() do
  print(proto.Name)
end


Структуры

PROTOCOLDESCRIPTOR

Таблица, описывающая протокол

Поля
Name
Тип: string
Название протокола
Type
Тип: number
Тип протокола
Значения:
PROTOTYPE_IGNORE = 50
PROTOTYPE_PROTOCOL = 1000
PROTOTYPE_VIRTUAL = 1001
PROTOTYPE_ENCRYPTION = 2000
PROTOTYPE_FILTER = 3000
PROTOTYPE_TRANSLATION = 4000
PROTOTYPE_OTHER = 10000
Методы
CallService
Параметры
name
Тип: string
Имя сервиса
wParam
lParam
Результат
Тип: number
Возвращает результат выполнения сервиса или CALLSERVICE_NOTFOUND
Accounts
Параметры
Результат
Тип: function
Возвращает функцию-итератор для перебора списка аккаунтов. Список оканчивается элементом со значением nil

PROTOACCOUNT

Таблица, описывающая аккаунт протокола

Поля
ProtoName
Тип: string
Название протокола
ModuleName
Тип: string
Название аккаунта (внутреннее)
AccountName
Тип: string
Название аккаунта (пользовательское)
IsEnabled
Тип: boolean
Аккаунт включен?
IsVisible
Тип: boolean
Аккаунт отображается?
IsVirtual
Тип: boolean
Аккаунт виртуальный?
IsOldProto
Тип: boolean
Протокол поддерживает аккаунты?