From 3f2c13b93f4513dcc8cd022a6d11714b1a6eeea0 Mon Sep 17 00:00:00 2001 From: Vincent Castellano Date: Sat, 2 May 2015 23:29:50 -0700 Subject: [PATCH] Got on_msg_receive working --- main.c | 3 +++ test.py => pytest.py | 2 +- python-tg.c | 15 ++++++++------- 3 files changed, 12 insertions(+), 8 deletions(-) rename test.py => pytest.py (81%) diff --git a/main.c b/main.c index 3ee259d..ff655cc 100644 --- a/main.c +++ b/main.c @@ -604,6 +604,9 @@ void args_parse (int argc, char **argv) { #ifdef USE_LUA "s:" #endif +#ifdef USE_PYTHON + "Z:" +#endif )) != -1) { switch (opt) { 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);