docs/api.mdwn
author Myhailo Danylenko <isbear@ukrpost.net>
Mon, 20 Aug 2012 18:57:19 +0300
changeset 38 8221be560482
parent 37 0477d4800fbd
permissions -rw-r--r--
Fix markup a bit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
# Events interface
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
Events are currently designed for useage with pep notifications, but
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
potentially could be used with any notification system, eg a module, that adds
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
currently playing song to your status.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
Every module pair (eg pep_tune and tune) use a pair of hooks. One for incoming
38
8221be560482 Fix markup a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents: 37
diff changeset
     9
notifications ('\*-in') and one for the cases, when server needs to be notified
8221be560482 Fix markup a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents: 37
diff changeset
    10
about user state change ('\*-out'). Note, that '\*-out' causes server
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
notification, not vice versa. In general, these hooks have the same set of fields,
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
except that incoming events also have 'from' field, that is mandatory.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
For more clear description of fields and what can be put in there, refer to
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
corresponding XEPs.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
* [XEP-0118](http://xmpp.org/extensions/xep-0118.html) - tune
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
* [XEP-0107](http://xmpp.org/extensions/xep-0107.html) - mood
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
* [XEP-0108](http://xmpp.org/extensions/xep-0108.html) - activity
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
* [XEP-0080](http://xmpp.org/extensions/xep-0080.html) - geoloc
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
## tune-*
38
8221be560482 Fix markup a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents: 37
diff changeset
    23
* artist
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
* length
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
* rating
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
* source
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
* title
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
* track
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
* uri
30
a66ed0454ca8 Handle 'state' hook argument
Myhailo Danylenko <isbear@ukrpost.net>
parents: 29
diff changeset
    30
* state (stop, pause, play)
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
## mood-*
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
* mood
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
* text
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    35
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
## activity-*
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    37
* major
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    38
* minor
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    39
* text
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    40
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
## geoloc-*
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    42
* accuracy
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
* alt
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    44
* area
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    45
* bearing
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    46
* building
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
* country
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48
* datum
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    49
* description
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    50
* error
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    51
* floor
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    52
* lat
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    53
* locality
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    54
* lon
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    55
* postalcode
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    56
* region
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    57
* room
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    58
* speed
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    59
* street
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    60
* text
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    61
* timestamp
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    62
* uri
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    63
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    64
# C interface
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    65
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    66
## general conventions
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    67
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    68
### NS_*
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    69
XMLNS namespace constants.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    70
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    71
### HOOK_*
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    72
Hook name constants. Usually are the same as actual hook name, but
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    73
uppercased, with 'HOOK_' added and with underscores instead of dashes.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    74
31
e404cd1c7077 Drop publish_*, rework build system
Myhailo Danylenko <isbear@ukrpost.net>
parents: 30
diff changeset
    75
### OPT_*
e404cd1c7077 Drop publish_*, rework build system
Myhailo Danylenko <isbear@ukrpost.net>
parents: 30
diff changeset
    76
MCabber option names. Should not be enclosed in braces.
e404cd1c7077 Drop publish_*, rework build system
Myhailo Danylenko <isbear@ukrpost.net>
parents: 30
diff changeset
    77
e404cd1c7077 Drop publish_*, rework build system
Myhailo Danylenko <isbear@ukrpost.net>
parents: 30
diff changeset
    78
### pep_*_request ( to, error )
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    79
Request corresponding data from the jid, specified in 'to'.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    80
'error' may be used for error control. If no error occured,
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    81
and remote side have replied with notification stanza, call
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    82
to one of this functions will eventually result in corresponding
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    83
event '*-in'. Currently there's no way to detect an
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    84
error on the remote side (eg, if it does not support PEP).
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    85
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    86
## pep
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    87
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    88
### (*pep_xmlns_handler_t) ( from, node, n, id, userdata )
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    89
Type of function to supply as a handler for pep xmlns namespace.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    90
'from' is a jid.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    91
'node' is pep node.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    92
'n' is loudmouth message node object, containing xmlns-specific data.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    93
'userdata' is pointer to data, passed at registration time.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    94
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    95
### pep_register_xmlns_handler ( xmlns, handler, userdata, notify )
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    96
Specify a handler for xmlns namespace.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    97
'userdata' will be directly specified.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    98
'notify' is a function, that may be called for userdata destruction.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    99
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   100
### pep_unregister_xmlns_handler ( xmlns )
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   101
Remove handler from given xmlns namespace.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   102
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   103
<!-- -->