86 lines
3.0 KiB
Plaintext
86 lines
3.0 KiB
Plaintext
To use lua with client you should write lua script. You can specify it from config ("lua_script" option) or from command_line [-s].
|
|
|
|
It should have several functions:
|
|
on_binlog_replay_end() - it is called when replay of old events end. Any updates prior this call were already received by this client
|
|
some time ago.
|
|
|
|
on_get_difference_end() - it is called after first get_difference call. So we received all updates after last client execute.
|
|
|
|
on_our_id(our_id) - Informs about id of currently logged in user.
|
|
|
|
on_msg_receive(msg) - it is called when we receive new msg (!! may be called before on_binlog_replay_end, than it is old msg).
|
|
|
|
on_user_update(user,what_changed) - updated info about user. what_changed is array of strings.
|
|
on_chat_update(user,what_changed) - updated info about user. what_changed is array of strings.
|
|
on_secret_chat_update(user,what_changed) - updated info about user. what_changed is array of strings.
|
|
|
|
|
|
|
|
Also, you can call several functions. Each this function last two arguments, are cb_function and cb_extra.
|
|
These functions may return false immidiately if something is bad with args, or return true and call cb_function in future.
|
|
cb_function would have two or three arguments: first cb_extra, second success (1 or 0), third result (if applicable).
|
|
|
|
If you want to pass msg to function, you should pass it's id.
|
|
If you want to pass peer to function, you should pass it's print_name.
|
|
Or, you can pass string user#id<id> chat#id<id> and secret_chat#id<id> as peer. It is in some cases better. For example if you want to postpone and you are afraid, that print_name would be changed in the meantime.
|
|
|
|
Function_list (arguments are listed aside from cb_function and cb_extra, :
|
|
get_contact_list ()
|
|
get_dialog_list ()
|
|
|
|
rename_chat (chat, new_name)
|
|
chat_set_photo (chat, file)
|
|
|
|
send_typing (peer)
|
|
send_typing_abort (peer)
|
|
|
|
send_msg (peer, text)
|
|
fwd_msg (peer, msg)
|
|
|
|
send_photo (peer, file)
|
|
send_video (peer, file)
|
|
send_audio (peer, file)
|
|
send_document (peer, file)
|
|
send_text (peer, file)
|
|
|
|
load_photo(msg)
|
|
load_video(msg)
|
|
load_video_thumb(msg)
|
|
load_audio(msg)
|
|
load_document(msg)
|
|
load_document_thumb(msg)
|
|
|
|
chat_info (chat)
|
|
channel_info (channel)
|
|
user_info (user)
|
|
|
|
get_history (peer, limit)
|
|
|
|
chat_add_user (chat, user)
|
|
chat_del_user (chat, user)
|
|
|
|
add_contact (phone, first_name, last_name)
|
|
rename_contact (phone, first_name, last_name)
|
|
|
|
msg_search (peer, text)
|
|
msg_global_search (text)
|
|
|
|
mark_read (peer)
|
|
|
|
set_profile_photo (file)
|
|
|
|
create_secret_chat (user)
|
|
create_group_chat (user, name)
|
|
|
|
delete_msg (msg)
|
|
restore_msg (number)
|
|
|
|
status_online ()
|
|
status_offline ()
|
|
|
|
send_location (peer, latitude, longitude)
|
|
|
|
Also, you have function
|
|
postpone (cb_function, cb_extra, timeout). It will call your cb_function in specified number of seconds (number of seconds may be double).
|
|
register_interface_function (name, cb_function, cb_arg, description, arg1_type, arg2_type, ...) adds function to CLI interface
|