diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2012-01-16 19:52:08 +0100 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2012-01-16 19:52:08 +0100 |
commit | b91c231096c726d0d8ecdc4c88e19a229feb615b (patch) | |
tree | df21ac2dccdbedcba04e14345339f2f702249193 /doc/fr | |
parent | ca07f584063aa68f0c5d3263128f4149bb61b5e0 (diff) | |
download | weechat-b91c231096c726d0d8ecdc4c88e19a229feb615b.zip |
core: add URL transfer (using libcurl), add function hook_process_hashtable in plugin API, add support of URL in hook_process/hook_process_hashtable (task #10247)
Diffstat (limited to 'doc/fr')
-rw-r--r-- | doc/fr/autogen/plugin_api/infolists.txt | 2 | ||||
-rw-r--r-- | doc/fr/autogen/plugin_api/url_options.txt | 91 | ||||
-rw-r--r-- | doc/fr/weechat_plugin_api.fr.txt | 135 | ||||
-rw-r--r-- | doc/fr/weechat_user.fr.txt | 1 |
4 files changed, 227 insertions, 2 deletions
diff --git a/doc/fr/autogen/plugin_api/infolists.txt b/doc/fr/autogen/plugin_api/infolists.txt index fc05a383e..a1d372e57 100644 --- a/doc/fr/autogen/plugin_api/infolists.txt +++ b/doc/fr/autogen/plugin_api/infolists.txt @@ -58,6 +58,8 @@ | weechat | plugin | liste des extensions | pointeur vers l'extension (optionnel) | nom d'extension (peut démarrer ou se terminer par "*" comme joker) (optionnel) +| weechat | url_options | options pour l'URL | - | - + | weechat | window | liste des fenêtres | pointeur vers la fenêtre (optionnel) | "current" pour la fenêtre courante ou un numéro de fenêtre (optionnel) | xfer | xfer | liste des xfer | pointeur vers le xfer (optionnel) | - diff --git a/doc/fr/autogen/plugin_api/url_options.txt b/doc/fr/autogen/plugin_api/url_options.txt new file mode 100644 index 000000000..f7cab2e55 --- /dev/null +++ b/doc/fr/autogen/plugin_api/url_options.txt @@ -0,0 +1,91 @@ +[width="100%",cols="2,^1,7",options="header"] +|======================================== +| Option | Type | Constantes ^(1)^ + +| header | long | + +| wildcardmatch | long | + +| failonerror | long | + +| protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, all + +| redir_protocols | mask | http, https, ftp, ftps, scp, sftp, telnet, ldap, ldaps, dict, file, tftp, imap, imaps, pop3, pop3s, smtp, smtps, rtsp, rtmp, rtmpt, rtmpe, rtmpte, rtmps, rtmpts, gopher, all + +| proxy | string | + +| proxyport | long | + +| proxytype | long | http, http_1_0, socks4, socks5, socks4a, socks5_hostname + +| noproxy | string | + +| httpproxytunnel | long | + +| socks5_gssapi_service | string | + +| socks5_gssapi_nec | long | + +| interface | string | + +| localport | long | + +| localportrange | long | + +| dns_cache_timeout | long | + +| buffersize | long | + +| port | long | + +| tcp_nodelay | long | + +| address_scope | long | + +| netrc | long | ignored, optional, required + +| netrc_file | string | + +| userpwd | string | + +| proxyuserpwd | string | + +| username | string | + +| password | string | + +| proxyusername | string | + +| proxypassword | string | + +| httpauth | mask | none, basic, digest, gssnegotiate, ntlm, digest_ie, ntlm_wb, only, any, anysafe + +| tlsauth_type | mask | none, srp + +| tlsauth_username | string | + +| tlsauth_password | string | + +| proxyauth | mask | none, basic, digest, gssnegotiate, ntlm, digest_ie, ntlm_wb, only, any, anysafe + +| autoreferer | long | + +| accept_encoding | string | + +| transfer_encoding | long | + +| followlocation | long | + +| unrestricted_auth | long | + +| maxredirs | long | + +| postredir | mask | post_301, post_302 + +| post | long | + +| postfields | string | + +| postfieldsize | long | + +|======================================== diff --git a/doc/fr/weechat_plugin_api.fr.txt b/doc/fr/weechat_plugin_api.fr.txt index 3aafce46e..ddd94a8ed 100644 --- a/doc/fr/weechat_plugin_api.fr.txt +++ b/doc/fr/weechat_plugin_api.fr.txt @@ -6795,7 +6795,8 @@ struct t_hook *weechat_hook_process (const char *command, Paramètres : -* 'command' : commande à lancer dans le processus fils +* 'command' : commande à lancer dans le processus fils ou URL + (_nouveau dans la version 0.3.7_), voir ci-dessous * 'timeout' : timeout pour la commande (en millisecondes) : après ce délai, le processus fils est tué (0 signifie pas de limite) * 'callback' : function appelée quand des données du fils sont disponibles, or @@ -6823,6 +6824,11 @@ Lorsque la commande est terminée, ou si le timeout est atteint, WeeChat supprimera automatiquement le "hook" (et tuera le processus s'il tourne toujours). +La commande peut être une URL avec le format : "url:http://www.example.com", +pour télécharger le contenu de l'URL (_nouveau dans la version 0.3.7_). +Des options pour l'URL sont possibles avec la fonction +<<_weechat_hook_process_hashtable,weechat_hook_process_hashtable>>. + [NOTE] La taille du tampon pour l'envoi des données au "callback" est de 64 Ko (il y a 2 tampons : un pour stdout et un pour stderr). @@ -6894,6 +6900,131 @@ def my_process_cb(data, command, return_code, out, err): hook = weechat.hook_process("ls", 5000, "my_process_cb", "") ---------------------------------------- +weechat_hook_process_hashtable +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +_Nouveau dans la version 0.3.7._ + +Accroche un processus (lancé par un fork) en utilisant des options dans une +hashtable, et intercepter sa sortie. + +Prototype : + +[source,C] +---------------------------------------- +struct t_hook *weechat_hook_process_hashtable (const char *command, + struct t_hashtable *options, + int timeout, + int (*callback)(void *data, + const char *command, + int return_code, + const char *out, + const char *err), + void *callback_data); +---------------------------------------- + +Les paramètres sont les mêmes que ceux de la fonction +<<_weechat_hook_process,weechat_hook_process>>, avec un paramètre +supplémentaire : + +* 'options' : options pour la commande exécutée (voir le tableau ci-dessous); + la hashtable est dupliquée dans la fonction, donc il est possible de la + supprimer après cet appel + +Pour la commande "url:...", les options suivantes sont disponibles (voir +`man curl_easy_setopt` pour une description de chaque option) : + +include::autogen/plugin_api/url_options.txt[] + +[NOTE] +^(1)^ Lorsque des constantes sont disponibles, elles doivent être utilisées +comme valeur pour l'option. Pour les options avec le type "mask", le format est : +"valeur1+valeur2+valeur3". + +Pour l'URL, deux options supplémentaires (chaînes) sont autorisées, pour le +fichier en entrée/sortie : + +* 'file_in' : fichier à lire pour envoyer avec l'URL (envoi de fichier "post") +* 'file_out' : écrire l'URL/fichier dans ce fichier (au lieu de la sortie + standard) + +Valeur de retour : + +* pointeur vers le nouveau "hook", NULL en cas d'erreur + +Exemple en C : + +[source,C] +---------------------------------------- +int +my_process_cb (void *data, const char *command, int return_code, + const char *out, const char *err) +{ + if (return_code == WEECHAT_HOOK_PROCESS_ERROR) + { + weechat_printf (NULL, "Erreur avec la commande '%s'", command); + return WEECHAT_RC_OK; + } + + if (return_code >= 0) + { + weechat_printf (NULL, "return_code = %d", return_code); + } + + if (out) + { + weechat_printf (NULL, "stdout : %s", out); + } + + if (err) + { + weechat_printf (NULL, "stderr : %s", err); + } + + return WEECHAT_RC_OK; +} + +struct t_hashtable *options = weechat_hashtable_new (8, + WEECHAT_HASHTABLE_STRING, + WEECHAT_HASHTABLE_STRING, + NULL, + NULL); +if (hashtable) +{ + weechat_hashtable_set (options, "file_out", "/tmp/weechat.org.html"); + struct t_hook *my_process_hook = weechat_hook_process_hashtable ("url:http://www.weechat.org/", + options, + 20000, + &my_process_cb, NULL); + weechat_hashtable_free (options); +} +---------------------------------------- + +Script (Python): + +[source,python] +---------------------------------------- +# prototype +hook = weechat.hook_process_hashtable(command, options, timeout, callback, callback_data) + +# exemple +def my_process_cb(data, command, return_code, out, err): + if return_code == weechat.WEECHAT_HOOK_PROCESS_ERROR: + weechat.prnt("", "Erreur avec la commande '%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_hashtable("url:http://www.weechat.org/", + { "file_out": "/tmp/weechat.org.html" }, + 20000, "my_process_cb", "") +---------------------------------------- + weechat_hook_connect ^^^^^^^^^^^^^^^^^^^^ @@ -13326,7 +13457,7 @@ Script (Python) : # prototype hashtable = weechat.hdata_hashtable(hdata, pointer, name) -# example +# exemple hdata = weechat.hdata_get("buffer") buffer = weechat.buffer_search_main() hash = weechat.hdata_hashtable(hdata, buffer, "local_variables") diff --git a/doc/fr/weechat_user.fr.txt b/doc/fr/weechat_user.fr.txt index 61ea45694..c1fa747af 100644 --- a/doc/fr/weechat_user.fr.txt +++ b/doc/fr/weechat_user.fr.txt @@ -92,6 +92,7 @@ compiler WeeChat. | Paquet ^(1)^ | Version | Requis | Fonctionnalité | cmake | | *oui* | construction (autotools toujours possible, mais cmake est recommandé) | libncursesw5-dev ^(2)^ | | *oui* | interface ncurses +| libcurl4-xxxxx-dev | | *oui* | transfert d'URL | gettext | | | internationalisation (traduction des messages; la langue de base est l'anglais) | libgcrypt11-dev | | | authentification SASL avec le serveur IRC, en utilisant le mécanisme DH-BLOWFISH | libgnutls-dev | ≥ 2.2.0 | | connexion SSL au serveur IRC |