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

From Miranda NG
Jump to navigation Jump to search
(make it translatable; some functions are missing)
(Marked this version for translation)
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
<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 8: 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 25: 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 31: 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 41: 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 58: 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 64: 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 71: 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 84: 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 90: 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 101: 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 114: 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 120: 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 131: 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 148: 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 169: 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 176: 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 189: 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 200: 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 213: 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 226: 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 259: 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></> in case of success, else <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 266: 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 279: 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 295: 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></> in case of success, else <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 302: 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 315: 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 326: 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></> in case of success, else <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')