diff --git a/main.c b/main.c index 9f54013..caa7ad7 100644 --- a/main.c +++ b/main.c @@ -669,6 +669,9 @@ void args_parse (int argc, char **argv) { #endif #ifdef USE_LUA "s:" +#endif +#ifdef USE_PYTHON + "Z:" #endif , long_options, NULL )) != -1) { diff --git a/test.py b/pytest.py similarity index 81% rename from test.py rename to pytest.py index acdc61c..9a0d8e0 100644 --- a/test.py +++ b/pytest.py @@ -10,7 +10,7 @@ def on_our_id(): pass def on_msg_receive(msg): - return "Got msg!" + return "Got msg from " + msg["from"]["peer"]["first_name"] def on_secret_chat_update(peer, types): return "on_secret_chat_update" diff --git a/python-tg.c b/python-tg.c index 844c9ea..8dfa8a4 100644 --- a/python-tg.c +++ b/python-tg.c @@ -422,7 +422,7 @@ void py_new_msg (struct tgl_message *M) { msg = get_message (M); - arglist = Py_BuildValue("O", msg); + arglist = Py_BuildValue("(O)", msg); result = PyEval_CallObject(_py_new_msg, arglist); Py_DECREF(arglist); @@ -438,7 +438,7 @@ void py_secret_chat_update (struct tgl_secret_chat *C, unsigned flags) { peer = get_peer (C->id, (void *)C); types = get_update_types (flags); - arglist = Py_BuildValue("OO", peer, types); + arglist = Py_BuildValue("(OO)", peer, types); result = PyEval_CallObject(_py_secret_chat_update, arglist); Py_DECREF(arglist); @@ -1462,11 +1462,8 @@ void py_chat_update (struct tgl_chat *C, unsigned flags) { //} // // -static void my_python_register (PyObject *dict, const char *name, PyObject *f) { - // Store callables for python functions - f = PyDict_GetItemString(dict, name); - assert(PyCallable_Check(f)); // TODO handle this -} +#define my_python_register(dict, name, f) \ + f = PyDict_GetItemString(dict, name); @@ -1479,6 +1476,10 @@ void py_init (const char *file) { Py_Initialize(); + PyObject* sysPath = PySys_GetObject((char*)"path"); + PyList_Append(sysPath, PyString_FromString(".")); + + pName = PyString_FromString(file); pModule = PyImport_Import(pName); pDict = PyModule_GetDict(pModule);