Plugin:MirLua/Module/m database: Difference between revisions
m (Goraf moved page Plugin:MirLua/Module/m database to Plugin:MirLua/Module/m database: to transform to translation system) |
(make it translatable; some functions are missing) |
||
Line 1: | Line 1: | ||
<translate> | |||
Allows you to access data and contacts in user profile database. | Allows you to access data and contacts in user profile database. | ||
</translate> | |||
{{Ls|MirLua/Modules/include_info}} <code>local db = require('m_database')</code> | |||
__TOC__ | __TOC__ | ||
<translate> | |||
== Contacts == | == Contacts == | ||
</translate> | |||
=== Contacts === | === Contacts === | ||
Iterator for list of contacts. | <translate>Iterator for list of contacts.</translate> | ||
==== {{Ls|MirLua/Modules/parameters}} ==== | |||
:: | {| class="wikitable" | ||
|- | |||
! scope="col" | {{Ls|MirLua/Modules/param_name}} | |||
! scope="col" | {{Ls|MirLua/Modules/required_param}} | |||
! scope="col" | {{Ls|Content/TableHeaders/type}} | |||
! scope="col" | {{Ls|Content/TableHeaders/description}} | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | name | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>string</code> | |||
| <translate>Protocol name.</translate> | |||
|} | |||
==== {{Ls|MirLua/Modules/result}} ==== | |||
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code> | |||
{{nbsp|5}}<translate>Returns contact number. The list ends in element with <tvar|nil><code>nil</code></> value.</translate> | |||
==== {{Ls|MirLua/Modules/example}} ==== | |||
{{Content:MirLua/Example|code= | {{Content:MirLua/Example|code= | ||
for hContact in db.Contacts('JABBER_1') do | for hContact in db.Contacts('JABBER_1') do | ||
Line 26: | Line 40: | ||
}} | }} | ||
<translate> | |||
== Events == | |||
</translate> | |||
=== GetEventCount === | === GetEventCount === | ||
Number of events for a contact. | <translate>Number of events for a contact.</translate> | ||
==== {{Ls|MirLua/Modules/parameters}} ==== | |||
:: | {| class="wikitable" | ||
|- | |||
! scope="col" | {{Ls|MirLua/Modules/param_name}} | |||
! scope="col" | {{Ls|MirLua/Modules/required_param}} | |||
! scope="col" | {{Ls|Content/TableHeaders/type}} | |||
! scope="col" | {{Ls|Content/TableHeaders/description}} | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | hContact | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>number</code> | |||
| <translate>Contact number.</translate> | |||
|} | |||
==== {{Ls|MirLua/Modules/result}} ==== | |||
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code> | |||
{{nbsp|5}}<translate>Returns number of events.</translate> | |||
==== {{Ls|MirLua/Modules/example}} ==== | |||
{{Content:MirLua/Example|code=db.GetEventCount(hContact)}} | {{Content:MirLua/Example|code=db.GetEventCount(hContact)}} | ||
---- | |||
=== Events === | === Events === | ||
Iterator for contact's event list from the first to the last. | <translate>Iterator for contact's event list from the first to the last.</translate> | ||
==== {{Ls|MirLua/Modules/parameters}} ==== | |||
:: | {| class="wikitable" | ||
|- | |||
! scope="col" | {{Ls|MirLua/Modules/param_name}} | |||
! scope="col" | {{Ls|MirLua/Modules/required_param}} | |||
! scope="col" | {{Ls|Content/TableHeaders/type}} | |||
! scope="col" | {{Ls|Content/TableHeaders/description}} | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | hContact | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>number</code> | |||
| <translate>Contact number.</translate> | |||
|} | |||
==== {{Ls|MirLua/Modules/result}} ==== | |||
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code> | |||
{{nbsp|5}}<translate>Returns event number. The list ends in element with <tvar|nil><code>nil</code></> value.</translate> | |||
==== {{Ls|MirLua/Modules/example}} ==== | |||
{{Content:MirLua/Example|code=for hEvent in db.Events(hContact) do | {{Content:MirLua/Example|code=for hEvent in db.Events(hContact) do | ||
local event = totable(hEvent, "DBEVENTINFO") | local event = totable(hEvent, "DBEVENTINFO") | ||
Line 55: | Line 98: | ||
end | end | ||
}} | }} | ||
---- | |||
=== EventsFromEnd === | === EventsFromEnd === | ||
Iterator for contact's event list from the last to the first. | <translate>Iterator for contact's event list from the last to the first.</translate> | ||
==== {{Ls|MirLua/Modules/parameters}} ==== | |||
:: | {| class="wikitable" | ||
|- | |||
! scope="col" | {{Ls|MirLua/Modules/param_name}} | |||
! scope="col" | {{Ls|MirLua/Modules/required_param}} | |||
! scope="col" | {{Ls|Content/TableHeaders/type}} | |||
! scope="col" | {{Ls|Content/TableHeaders/description}} | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | hContact | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>number</code> | |||
| <translate>Contact number.</translate> | |||
|} | |||
==== {{Ls|MirLua/Modules/result}} ==== | |||
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code> | |||
{{nbsp|5}}<translate>Returns event number. The list ends in element with <tvar|nil><code>nil</code></> value.</translate> | |||
==== {{Ls|MirLua/Modules/example}} ==== | |||
{{Content:MirLua/Example|code= | {{Content:MirLua/Example|code= | ||
for hEvent in db.EventsFromEnd(hContact) do | for hEvent in db.EventsFromEnd(hContact) do | ||
Line 73: | Line 130: | ||
}} | }} | ||
<translate> | |||
== Settings == | |||
</translate> | |||
=== GetSetting === | === GetSetting === | ||
Returns value of a setting. | <translate>Returns value of a setting.</translate> | ||
==== {{Ls|MirLua/Modules/parameters}} ==== | |||
:: | {| class="wikitable" | ||
|- | |||
! scope="col" | {{Ls|MirLua/Modules/param_name}} | |||
:: | ! scope="col" | {{Ls|MirLua/Modules/required_param}} | ||
! scope="col" | {{Ls|Content/TableHeaders/type}} | |||
! scope="col" | {{Ls|Content/TableHeaders/description}} | |||
:: | |- | ||
! scope="row" class="MirLuaParametersTable-parameter" | hContact | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
:: | | style="text-align:center" | <code>number</code> | ||
| <translate>Contact number or <tvar|nil><code>nil</code></>.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | module | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>string</code> | |||
| <translate>Module name.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | setting | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>string</code> | |||
| <translate>Setting name.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | value | |||
| style="text-align:center" | {{Ls|YesNo/no}} | |||
| style="text-align:center" | <code>number</code>, <code>string</code> | |||
| <translate>Default value.</translate> | |||
|} | |||
==== {{Ls|MirLua/Modules/result}} ==== | |||
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code> | |||
{{nbsp|5}}<translate>Returns value of a setting or default value or <tvar|nil><code>nil</code></>.</translate> | |||
==== {{Ls|MirLua/Modules/example}} ==== | |||
{{Content:MirLua/Example|code=db.GetSetting(nil, 'test', 'some')}} | {{Content:MirLua/Example|code=db.GetSetting(nil, 'test', 'some')}} | ||
---- | |||
=== Settings === | === Settings === | ||
Iterator for module (group of settings). | <translate>Iterator for module (group of settings).</translate> | ||
==== {{Ls|MirLua/Modules/parameters}} ==== | |||
:: | {| class="wikitable" | ||
|- | |||
! scope="col" | {{Ls|MirLua/Modules/param_name}} | |||
:: | ! scope="col" | {{Ls|MirLua/Modules/required_param}} | ||
! scope="col" | {{Ls|Content/TableHeaders/type}} | |||
! scope="col" | {{Ls|Content/TableHeaders/description}} | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | hContact | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>number</code> | |||
| <translate>Contact number or <tvar|nil><code>nil</code></>.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | module | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>string</code> | |||
| <translate>Module name.</translate> | |||
|} | |||
==== {{Ls|MirLua/Modules/result}} ==== | |||
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code> | |||
{{nbsp|5}}<translate>Returns module name. The list ends in element with <tvar|nil><code>nil</code></> value.</translate> | |||
==== {{Ls|MirLua/Modules/example}} ==== | |||
{{Content:MirLua/Example|code= | {{Content:MirLua/Example|code= | ||
for setting in db.Settings(nil, 'CList') do | for setting in db.Settings(nil, 'CList') do | ||
Line 116: | Line 210: | ||
end | end | ||
}} | }} | ||
---- | |||
=== WriteSetting === | === WriteSetting === | ||
Saves a value to database. | <translate>Saves a value to database.</translate> | ||
==== {{Ls|MirLua/Modules/parameters}} ==== | |||
:: | {| class="wikitable" | ||
|- | |||
! scope="col" | {{Ls|MirLua/Modules/param_name}} | |||
:: | ! scope="col" | {{Ls|MirLua/Modules/required_param}} | ||
! scope="col" | {{Ls|Content/TableHeaders/type}} | |||
! scope="col" | {{Ls|Content/TableHeaders/description}} | |||
:: | |- | ||
:: Setting | ! scope="row" class="MirLuaParametersTable-parameter" | hContact | ||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
: Type: | | style="text-align:center" | <code>number</code> | ||
| <translate>Contact number or <tvar|nil><code>nil</code></>.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | module | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>string</code> | |||
| <translate>Module name.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | setting | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>string</code> | |||
| <translate>Setting name.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | value | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>boolean</code>, <code>number</code>, <code>string</code>, <code>table</code> <translate>(array of bytes)</translate> | |||
| <translate>Setting value.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | type | |||
| style="text-align:center" | {{Ls|YesNo/no}} | |||
| style="text-align:center" | <code>number</code> | |||
| <translate>Type of setting. Takes values:</translate> | |||
* 1 = DBVT_BYTE | |||
* 2 = DBVT_WORD | |||
* 4 = DBVT_DWORD | |||
* 252 = DBVT_WCHAR | |||
* 253 = DBVT_UTF8 | |||
* 254 = DBVT_BLOB | |||
* 255 = DBVT_ASCIIZ | |||
|} | |||
==== {{Ls|MirLua/Modules/result}} ==== | |||
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>boolean</code> | |||
{{nbsp|5}}<translate>Returns <tvar|true><code>true</code></> in case of success, else <tvar|false><code>false</code></>.</translate> | |||
==== {{Ls|MirLua/Modules/example}} ==== | |||
{{Content:MirLua/Example|code=db.WriteSetting(nil, 'test', 'some', true)}} | {{Content:MirLua/Example|code=db.WriteSetting(nil, 'test', 'some', true)}} | ||
---- | |||
=== DeleteSetting === | === DeleteSetting === | ||
Deletes a setting. | <translate>Deletes a setting.</translate> | ||
==== {{Ls|MirLua/Modules/parameters}} ==== | |||
:: | {| class="wikitable" | ||
|- | |||
! scope="col" | {{Ls|MirLua/Modules/param_name}} | |||
:: | ! scope="col" | {{Ls|MirLua/Modules/required_param}} | ||
! scope="col" | {{Ls|Content/TableHeaders/type}} | |||
! scope="col" | {{Ls|Content/TableHeaders/description}} | |||
:: | |- | ||
! scope="row" class="MirLuaParametersTable-parameter" | hContact | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>number</code> | |||
| <translate>Contact number or <tvar|nil><code>nil</code></>.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | module | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>string</code> | |||
| <translate>Module name.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | setting | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>string</code> | |||
| <translate>Setting name.</translate> | |||
|} | |||
==== {{Ls|MirLua/Modules/result}} ==== | |||
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>boolean</code> | |||
{{nbsp|5}}<translate>Returns <tvar|true><code>true</code></> in case of success, else <tvar|false><code>false</code></>.</translate> | |||
==== {{Ls|MirLua/Modules/example}} ==== | |||
{{Content:MirLua/Example|code=db.DeleteSetting(nil, 'test', 'some')}} | {{Content:MirLua/Example|code=db.DeleteSetting(nil, 'test', 'some')}} | ||
---- | |||
=== DeleteModule === | === DeleteModule === | ||
Deletes a module (group of settings). | <translate>Deletes a module (group of settings).</translate> | ||
==== {{Ls|MirLua/Modules/parameters}} ==== | |||
:: | {| class="wikitable" | ||
|- | |||
! scope="col" | {{Ls|MirLua/Modules/param_name}} | |||
:: | ! scope="col" | {{Ls|MirLua/Modules/required_param}} | ||
! scope="col" | {{Ls|Content/TableHeaders/type}} | |||
! scope="col" | {{Ls|Content/TableHeaders/description}} | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | hContact | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>number</code> | |||
| <translate>Contact number or <tvar|nil><code>nil</code></>.</translate> | |||
|- | |||
! scope="row" class="MirLuaParametersTable-parameter" | module | |||
| style="text-align:center" | {{Ls|YesNo/yes}} | |||
| style="text-align:center" | <code>string</code> | |||
| <translate>Module name.</translate> | |||
|} | |||
==== {{Ls|MirLua/Modules/result}} ==== | |||
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>boolean</code> | |||
{{nbsp|5}}<translate>Returns <tvar|true><code>true</code></> in case of success, else <tvar|false><code>false</code></>.</translate> | |||
==== {{Ls|MirLua/Modules/example}} ==== | |||
{{Content:MirLua/Example|code=db.DeleteModule(nil, 'test')}} | {{Content:MirLua/Example|code=db.DeleteModule(nil, 'test')}} | ||
Revision as of 16:44, 2 June 2018
Allows you to access data and contacts in user profile database.
Include module: local db = require('m_database')
Contacts
Contacts
Iterator for list of contacts.
Parameters
Parameter name | Required | Type | Description |
---|---|---|---|
name | Yes | string
|
Protocol name. |
Result
Type: number
Returns contact number. The list ends in element with nil
value.
Example
for hContact in db.Contacts('JABBER_1') do
print(db.GetSetting(hContact, 'JABBER_1', 'Nick'))
end
Events
GetEventCount
Number of events for a contact.
Parameters
Parameter name | Required | Type | Description |
---|---|---|---|
hContact | Yes | number
|
Contact number. |
Result
Type: number
Returns number of events.
Example
db.GetEventCount(hContact)
Events
Iterator for contact's event list from the first to the last.
Parameters
Parameter name | Required | Type | Description |
---|---|---|---|
hContact | Yes | number
|
Contact number. |
Result
Type: number
Returns event number. The list ends in element with nil
value.
Example
for hEvent in db.Events(hContact) do
local event = totable(hEvent, "DBEVENTINFO")
print(event.Timestamp, event.Blob)
end
EventsFromEnd
Iterator for contact's event list from the last to the first.
Parameters
Parameter name | Required | Type | Description |
---|---|---|---|
hContact | Yes | number
|
Contact number. |
Result
Type: number
Returns event number. The list ends in element with nil
value.
Example
for hEvent in db.EventsFromEnd(hContact) do
local event = totable(hEvent, "DBEVENTINFO")
print(event.Timestamp, event.Blob)
end
Settings
GetSetting
Returns value of a setting.
Parameters
Parameter name | Required | Type | Description |
---|---|---|---|
hContact | Yes | number
|
Contact number or nil .
|
module | Yes | string
|
Module name. |
setting | Yes | string
|
Setting name. |
value | No | number , string
|
Default value. |
Result
Type: number
Returns value of a setting or default value or nil
.
Example
db.GetSetting(nil, 'test', 'some')
Settings
Iterator for module (group of settings).
Parameters
Parameter name | Required | Type | Description |
---|---|---|---|
hContact | Yes | number
|
Contact number or nil .
|
module | Yes | string
|
Module name. |
Result
Type: number
Returns module name. The list ends in element with nil
value.
Example
for setting in db.Settings(nil, 'CList') do
local message = string.format("%s/%s = ", 'CList', setting, ...)
.. db.GetSetting(nil, 'CList', setting)
print(message)
end
WriteSetting
Saves a value to database.
Parameters
Parameter name | Required | Type | Description |
---|---|---|---|
hContact | Yes | number
|
Contact number or nil .
|
module | Yes | string
|
Module name. |
setting | Yes | string
|
Setting name. |
value | Yes | boolean , number , string , table (array of bytes)
|
Setting value. |
type | No | number
|
Type of setting. Takes values:
|
Result
Type: boolean
Returns true
in case of success, else false
.
Example
db.WriteSetting(nil, 'test', 'some', true)
DeleteSetting
Deletes a setting.
Parameters
Parameter name | Required | Type | Description |
---|---|---|---|
hContact | Yes | number
|
Contact number or nil .
|
module | Yes | string
|
Module name. |
setting | Yes | string
|
Setting name. |
Result
Type: boolean
Returns true
in case of success, else false
.
Example
db.DeleteSetting(nil, 'test', 'some')
DeleteModule
Deletes a module (group of settings).
Parameters
Parameter name | Required | Type | Description |
---|---|---|---|
hContact | Yes | number
|
Contact number or nil .
|
module | Yes | string
|
Module name. |
Result
Type: boolean
Returns true
in case of success, else false
.
Example
db.DeleteModule(nil, 'test')