From 5ed26eda9b6316dde5c89c920dd8995cd64fa2e2 Mon Sep 17 00:00:00 2001 From: jakob Date: Fri, 19 May 2017 15:35:31 -0400 Subject: [PATCH] Added constants to the Python interface for calls to execute. --- apidoc/python/source/reference.rst | 2 +- src/api.c | 4 ++++ src/python_api.c | 15 +++++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/apidoc/python/source/reference.rst b/apidoc/python/source/reference.rst index 27f2492..9fa4394 100644 --- a/apidoc/python/source/reference.rst +++ b/apidoc/python/source/reference.rst @@ -52,7 +52,7 @@ Commands ======== .. function:: execute(command, class) - Execute the given command, where a class of 0 indicates a global command, 1 indicates a chat command, and 2 indicates a groupchat command. + Executes the given command. The API exports three constants for the class parameter; GLOBAL_COMMAND, CHAT_COMMAND, and GROUPCHAT_COMMAND. :param command: The command to execute. :type command: string diff --git a/src/api.c b/src/api.c index 7859b5e..fd37a2b 100644 --- a/src/api.c +++ b/src/api.c @@ -93,6 +93,10 @@ void api_send(const char *msg) char *name = api_get_nick(); char timefrmt[TIME_STR_SIZE]; + + if (name == NULL) + return; + self_window = get_active_window(); get_time_str(timefrmt, sizeof(timefrmt)); diff --git a/src/python_api.c b/src/python_api.c index 9c721ba..28e3122 100644 --- a/src/python_api.c +++ b/src/python_api.c @@ -23,6 +23,7 @@ #include #include "api.h" +#include "execute.h" extern Tox *user_tox; @@ -163,7 +164,7 @@ static PyObject *python_api_register(PyObject *self, PyObject *args) return NULL; if (!PyCallable_Check(callback)) { - PyErr_SetString(PyExc_TypeError, "Parameter must be callable"); + PyErr_SetString(PyExc_TypeError, "Calback parameter must be callable"); return NULL; } @@ -233,7 +234,17 @@ static struct PyModuleDef toxic_api_module = { PyMODINIT_FUNC PyInit_toxic_api(void) { - return PyModule_Create(&toxic_api_module); + PyObject *m = PyModule_Create(&toxic_api_module); + PyObject *global_command_const = Py_BuildValue("i", GLOBAL_COMMAND_MODE); + PyObject *chat_command_const = Py_BuildValue("i", CHAT_COMMAND_MODE); + PyObject *groupchat_command_const = Py_BuildValue("i", GROUPCHAT_COMMAND_MODE); + PyObject_SetAttrString(m, "GLOBAL_COMMAND", global_command_const); + PyObject_SetAttrString(m, "CHAT_COMMAND", chat_command_const); + PyObject_SetAttrString(m, "GROUPCHAT_COMMAND", groupchat_command_const); + Py_DECREF(global_command_const); + Py_DECREF(chat_command_const); + Py_DECREF(groupchat_command_const); + return m; } void terminate_python(void)