Plugin:MirLua/Module/m database: Difference between revisions

From Miranda NG
Jump to navigation Jump to search
m (minor rephrase)
(Marked this version for translation)
 
Line 1: Line 1:
<languages/>
<languages/>
<translate>
<translate>
<!--T:1-->
Allows you to access data and contacts in user profile database.
Allows you to access data and contacts in user profile database.
</translate>
</translate>
Line 9: Line 10:


<translate>
<translate>
== Contacts ==
== Contacts == <!--T:2-->
</translate>
</translate>


=== Contacts ===
=== Contacts ===
<translate>Iterator for list of contacts.</translate>
<translate><!--T:3--> Iterator for list of contacts.</translate>


==== {{Ls|MirLua/Modules/parameters}} ====
==== {{Ls|MirLua/Modules/parameters}} ====
Line 26: Line 27:
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>string</code>
| style="text-align:center" | <code>string</code>
| <translate>Protocol name.</translate>
| <translate><!--T:4--> Protocol name.</translate>
|}
|}


Line 32: Line 33:
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code>
{{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>
{{nbsp|5}}<translate><!--T:5--> Returns contact number. The list ends in element with <tvar|nil><code>nil</code></> value.</translate>


==== {{Ls|MirLua/Modules/example}} ====
==== {{Ls|MirLua/Modules/example}} ====
Line 42: Line 43:


<translate>
<translate>
== Events ==
== Events == <!--T:6-->
</translate>
</translate>


=== GetEventCount ===
=== GetEventCount ===
<translate>Number of events for a contact.</translate>
<translate><!--T:7--> Number of events for a contact.</translate>


==== {{Ls|MirLua/Modules/parameters}} ====
==== {{Ls|MirLua/Modules/parameters}} ====
Line 59: Line 60:
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>number</code>
| style="text-align:center" | <code>number</code>
| <translate>Contact number.</translate>
| <translate><!--T:8--> Contact number.</translate>
|}
|}


Line 65: Line 66:
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code>
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code>


{{nbsp|5}}<translate>Returns number of events.</translate>
{{nbsp|5}}<translate><!--T:9--> Returns number of events.</translate>


==== {{Ls|MirLua/Modules/example}} ====
==== {{Ls|MirLua/Modules/example}} ====
Line 72: Line 73:


=== Events ===
=== Events ===
<translate>Iterator for contact's event list from the first to the last.</translate>
<translate><!--T:10--> Iterator for contact's event list from the first to the last.</translate>


==== {{Ls|MirLua/Modules/parameters}} ====
==== {{Ls|MirLua/Modules/parameters}} ====
Line 85: Line 86:
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>number</code>
| style="text-align:center" | <code>number</code>
| <translate>Contact number.</translate>
| <translate><!--T:11--> Contact number.</translate>
|}
|}


Line 91: Line 92:
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code>
{{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>
{{nbsp|5}}<translate><!--T:12--> Returns event number. The list ends in element with <tvar|nil><code>nil</code></> value.</translate>


==== {{Ls|MirLua/Modules/example}} ====
==== {{Ls|MirLua/Modules/example}} ====
Line 102: Line 103:


=== EventsFromEnd ===
=== EventsFromEnd ===
<translate>Iterator for contact's event list from the last to the first.</translate>
<translate><!--T:13--> Iterator for contact's event list from the last to the first.</translate>


==== {{Ls|MirLua/Modules/parameters}} ====
==== {{Ls|MirLua/Modules/parameters}} ====
Line 115: Line 116:
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>number</code>
| style="text-align:center" | <code>number</code>
| <translate>Contact number.</translate>
| <translate><!--T:14--> Contact number.</translate>
|}
|}


Line 121: Line 122:
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code>
{{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>
{{nbsp|5}}<translate><!--T:15--> Returns event number. The list ends in element with <tvar|nil><code>nil</code></> value.</translate>


==== {{Ls|MirLua/Modules/example}} ====
==== {{Ls|MirLua/Modules/example}} ====
Line 132: Line 133:


<translate>
<translate>
== Settings ==
== Settings == <!--T:16-->
</translate>
</translate>


=== GetSetting ===
=== GetSetting ===
<translate>Returns value of a setting.</translate>
<translate><!--T:17--> Returns value of a setting.</translate>


==== {{Ls|MirLua/Modules/parameters}} ====
==== {{Ls|MirLua/Modules/parameters}} ====
Line 149: Line 150:
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>number</code>
| style="text-align:center" | <code>number</code>
| <translate>Contact number or <tvar|nil><code>nil</code></>.</translate>
| <translate><!--T:18--> Contact number or <tvar|nil><code>nil</code></>.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | module
! scope="row" class="MirLuaParametersTable-parameter" | module
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>string</code>
| style="text-align:center" | <code>string</code>
| <translate>Module name.</translate>
| <translate><!--T:19--> Module name.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | setting
! scope="row" class="MirLuaParametersTable-parameter" | setting
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>string</code>
| style="text-align:center" | <code>string</code>
| <translate>Setting name.</translate>
| <translate><!--T:20--> Setting name.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | value
! scope="row" class="MirLuaParametersTable-parameter" | value
| style="text-align:center" | {{Ls|YesNo/no}}
| style="text-align:center" | {{Ls|YesNo/no}}
| style="text-align:center" | <code>number</code>, <code>string</code>
| style="text-align:center" | <code>number</code>, <code>string</code>
| <translate>Default value.</translate>
| <translate><!--T:21--> Default value.</translate>
|}
|}


Line 170: Line 171:
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code>
{{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>
{{nbsp|5}}<translate><!--T:22--> Returns value of a setting or default value or <tvar|nil><code>nil</code></>.</translate>


==== {{Ls|MirLua/Modules/example}} ====
==== {{Ls|MirLua/Modules/example}} ====
Line 177: Line 178:


=== Settings ===
=== Settings ===
<translate>Iterator for module (group of settings).</translate>
<translate><!--T:23--> Iterator for module (group of settings).</translate>


==== {{Ls|MirLua/Modules/parameters}} ====
==== {{Ls|MirLua/Modules/parameters}} ====
Line 190: Line 191:
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>number</code>
| style="text-align:center" | <code>number</code>
| <translate>Contact number or <tvar|nil><code>nil</code></>.</translate>
| <translate><!--T:24--> Contact number or <tvar|nil><code>nil</code></>.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | module
! scope="row" class="MirLuaParametersTable-parameter" | module
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>string</code>
| style="text-align:center" | <code>string</code>
| <translate>Module name.</translate>
| <translate><!--T:25--> Module name.</translate>
|}
|}


Line 201: Line 202:
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>number</code>
{{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>
{{nbsp|5}}<translate><!--T:26--> Returns module name. The list ends in element with <tvar|nil><code>nil</code></> value.</translate>


==== {{Ls|MirLua/Modules/example}} ====
==== {{Ls|MirLua/Modules/example}} ====
Line 214: Line 215:


=== WriteSetting ===
=== WriteSetting ===
<translate>Saves a value to database.</translate>
<translate><!--T:27--> Saves a value to database.</translate>


==== {{Ls|MirLua/Modules/parameters}} ====
==== {{Ls|MirLua/Modules/parameters}} ====
Line 227: Line 228:
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>number</code>
| style="text-align:center" | <code>number</code>
| <translate>Contact number or <tvar|nil><code>nil</code></>.</translate>
| <translate><!--T:28--> Contact number or <tvar|nil><code>nil</code></>.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | module
! scope="row" class="MirLuaParametersTable-parameter" | module
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>string</code>
| style="text-align:center" | <code>string</code>
| <translate>Module name.</translate>
| <translate><!--T:29--> Module name.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | setting
! scope="row" class="MirLuaParametersTable-parameter" | setting
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>string</code>
| style="text-align:center" | <code>string</code>
| <translate>Setting name.</translate>
| <translate><!--T:30--> Setting name.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | value
! scope="row" class="MirLuaParametersTable-parameter" | value
| style="text-align:center" | {{Ls|YesNo/yes}}
| 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>
| style="text-align:center" | <code>boolean</code>, <code>number</code>, <code>string</code>, <code>table</code> <translate><!--T:31--> (array of bytes)</translate>
| <translate>Setting value.</translate>
| <translate><!--T:32--> Setting value.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | type
! scope="row" class="MirLuaParametersTable-parameter" | type
| style="text-align:center" | {{Ls|YesNo/no}}
| style="text-align:center" | {{Ls|YesNo/no}}
| style="text-align:center" | <code>number</code>
| style="text-align:center" | <code>number</code>
| <translate>Type of setting. Takes values:</translate>
| <translate><!--T:33--> Type of setting. Takes values:</translate>
* 1 = DBVT_BYTE
* 1 = DBVT_BYTE
* 2 = DBVT_WORD
* 2 = DBVT_WORD
Line 260: Line 261:
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>boolean</code>
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>boolean</code>


{{nbsp|5}}<translate>Returns <tvar|true><code>true</code></> on success, otherwise <tvar|false><code>false</code></>.</translate>
{{nbsp|5}}<translate><!--T:34--> Returns <tvar|true><code>true</code></> on success, otherwise <tvar|false><code>false</code></>.</translate>


==== {{Ls|MirLua/Modules/example}} ====
==== {{Ls|MirLua/Modules/example}} ====
Line 267: Line 268:


=== DeleteSetting ===
=== DeleteSetting ===
<translate>Deletes a setting.</translate>
<translate><!--T:35--> Deletes a setting.</translate>


==== {{Ls|MirLua/Modules/parameters}} ====
==== {{Ls|MirLua/Modules/parameters}} ====
Line 280: Line 281:
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>number</code>
| style="text-align:center" | <code>number</code>
| <translate>Contact number or <tvar|nil><code>nil</code></>.</translate>
| <translate><!--T:36--> Contact number or <tvar|nil><code>nil</code></>.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | module
! scope="row" class="MirLuaParametersTable-parameter" | module
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>string</code>
| style="text-align:center" | <code>string</code>
| <translate>Module name.</translate>
| <translate><!--T:37--> Module name.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | setting
! scope="row" class="MirLuaParametersTable-parameter" | setting
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>string</code>
| style="text-align:center" | <code>string</code>
| <translate>Setting name.</translate>
| <translate><!--T:38--> Setting name.</translate>
|}
|}


Line 296: Line 297:
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>boolean</code>
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>boolean</code>


{{nbsp|5}}<translate>Returns <tvar|true><code>true</code></> on success, otherwise <tvar|false><code>false</code></>.</translate>
{{nbsp|5}}<translate><!--T:39--> Returns <tvar|true><code>true</code></> on success, otherwise <tvar|false><code>false</code></>.</translate>


==== {{Ls|MirLua/Modules/example}} ====
==== {{Ls|MirLua/Modules/example}} ====
Line 303: Line 304:


=== DeleteModule ===
=== DeleteModule ===
<translate>Deletes a module (group of settings).</translate>
<translate><!--T:40--> Deletes a module (group of settings).</translate>


==== {{Ls|MirLua/Modules/parameters}} ====
==== {{Ls|MirLua/Modules/parameters}} ====
Line 316: Line 317:
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>number</code>
| style="text-align:center" | <code>number</code>
| <translate>Contact number or <tvar|nil><code>nil</code></>.</translate>
| <translate><!--T:41--> Contact number or <tvar|nil><code>nil</code></>.</translate>
|-
|-
! scope="row" class="MirLuaParametersTable-parameter" | module
! scope="row" class="MirLuaParametersTable-parameter" | module
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | {{Ls|YesNo/yes}}
| style="text-align:center" | <code>string</code>
| style="text-align:center" | <code>string</code>
| <translate>Module name.</translate>
| <translate><!--T:42--> Module name.</translate>
|}
|}


Line 327: Line 328:
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>boolean</code>
{{nbsp|5}}{{Ls|MirLua/Modules/type}} <code>boolean</code>


{{nbsp|5}}<translate>Returns <tvar|true><code>true</code></> on success, otherwise <tvar|false><code>false</code></>.</translate>
{{nbsp|5}}<translate><!--T:43--> Returns <tvar|true><code>true</code></> on success, otherwise <tvar|false><code>false</code></>.</translate>


==== {{Ls|MirLua/Modules/example}} ====
==== {{Ls|MirLua/Modules/example}} ====
{{Content:MirLua/Example|code=db.DeleteModule(nil, 'test')}}
{{Content:MirLua/Example|code=db.DeleteModule(nil, 'test')}}

Latest revision as of 02:03, 10 February 2022

Other languages:
  • English

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:
  • 1 = DBVT_BYTE
  • 2 = DBVT_WORD
  • 4 = DBVT_DWORD
  • 252 = DBVT_WCHAR
  • 253 = DBVT_UTF8
  • 254 = DBVT_BLOB
  • 255 = DBVT_ASCIIZ

Result

     Type: boolean

     Returns true on success, otherwise 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 on success, otherwise 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 on success, otherwise false.

Example

db.DeleteModule(nil, 'test')