diff options
Diffstat (limited to 'doc/sr/weechat_scripting.sr.adoc')
-rw-r--r-- | doc/sr/weechat_scripting.sr.adoc | 69 |
1 files changed, 49 insertions, 20 deletions
diff --git a/doc/sr/weechat_scripting.sr.adoc b/doc/sr/weechat_scripting.sr.adoc index 3c3149e9e..53d06377c 100644 --- a/doc/sr/weechat_scripting.sr.adoc +++ b/doc/sr/weechat_scripting.sr.adoc @@ -999,25 +999,53 @@ weechat.hook_timer(60 * 1000, 60, 0, "timer_cb", "") Процес можете да покренете у позадини са `+hook_process+`. Ваша функција повратног позива ће се позвати онда када подаци буду спремни. Може да се позива више пута. -У последњем позиву ваше функције повратног позива, _rc_ се поставља на 0 или позитивну вредност, то је повратни кôд команде. +У последњем позиву ваше функције повратног позива, _return_code_ се поставља на 0 или позитивну вредност, то је повратни кôд команде. Пример: [source, python] ---- -process_output = "" - -def my_process_cb(data, command, rc, out, err): - global process_output - if out != "": - process_output += out - if int(rc) >= 0: - weechat.prnt("", process_output) +def my_process_cb(data, command, return_code, out, err): + if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR: + weechat.prnt("", "Error with command '%s'" % command) + return weechat.WEECHAT_RC_OK + if return_code >= 0: + weechat.prnt("", "return_code = %d" % return_code) + if out: + weechat.prnt("", "stdout: %s" % out) + if err: + weechat.prnt("", "stderr: %s" % err) return weechat.WEECHAT_RC_OK weechat.hook_process("/bin/ls -l /etc", 10 * 1000, "my_process_cb", "") ---- +// TRANSLATION MISSING +You can also call directly a script function that does something blocking, +instead of an external command: + +[source,python] +---- +def get_status(data): + # do something blocking... + # ... + return "this is the result" + +def my_process_cb(data, command, return_code, out, err): + if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR: + weechat.prnt("", "Error with command '%s'" % command) + return weechat.WEECHAT_RC_OK + if return_code >= 0: + weechat.prnt("", "return_code = %d" % return_code) + if out: + weechat.prnt("", "stdout: %s" % out) + if err: + weechat.prnt("", "stderr: %s" % err) + return weechat.WEECHAT_RC_OK + +hook = weechat.hook_process("func:get_status", 5000, "my_process_cb", "") +---- + [[url_transfer]] ==== URL пренос @@ -1027,17 +1055,18 @@ _Ново у верзији 0.3.7._ Пример URL преноса без опције: HTML страница ће се примити као „out” у функцији повратног позива (стандардни излаз процеса): +// TRANSLATION MISSING [source, python] ---- -# Приказ тренутне стабилне верзије програма WeeChat. -weechat_version = "" +# Display latest stable version of WeeChat. +weechat_latest_version = "" -def weechat_process_cb(data, command, rc, out, err): - global weechat_version - if out != "": - weechat_version += out - if int(rc) >= 0: - weechat.prnt("", "Тренутна стабилна WeeChat верзија је: %s" % weechat_version) +def weechat_process_cb(data, command, return_code, out, err): + global weechat_latest_version + if out: + weechat_latest_version += out + if return_code >= 0: + weechat.prnt("", "Latest WeeChat version: %s" % weechat_latest_version) return weechat.WEECHAT_RC_OK weechat.hook_process("url:https://weechat.org/dev/info/stable/", @@ -1051,9 +1080,9 @@ weechat.hook_process("url:https://weechat.org/dev/info/stable/", [source, python] ---- -def my_process_cb(data, command, rc, out, err): - if int(rc) >= 0: - weechat.prnt("", "Крај преноса (rc=%s)" % rc) +def my_process_cb(data, command, return_code, out, err): + if return_code >= 0: + weechat.prnt("", "Крај преноса (return code = %d)" % return_code) return weechat.WEECHAT_RC_OK weechat.hook_process_hashtable("url:https://weechat.org/files/src/weechat-devel.tar.gz", |