Commit 1ca2fe69 authored by Vincent Castellano's avatar Vincent Castellano

Implement the rest of the methods. Remaining commented out methods require...

Implement the rest of the methods. Remaining commented out methods require more advanced python c-api objects
parent 77081999
...@@ -943,10 +943,10 @@ void py_do_all (void) { ...@@ -943,10 +943,10 @@ void py_do_all (void) {
enum py_query_type f = (long)py_ptr[p ++]; enum py_query_type f = (long)py_ptr[p ++];
PyObject *args = (PyObject *)py_ptr[p ++]; PyObject *args = (PyObject *)py_ptr[p ++];
const char *str, *str1, *str2, *str3;
int len, len1, len2, len3;
const char *str; int limit, offset;
int len, limit, offset; long msg_id;
PyObject *pyObj1 = NULL; PyObject *pyObj1 = NULL;
PyObject *pyObj2 = NULL; PyObject *pyObj2 = NULL;
PyObject *cb_extra = NULL; PyObject *cb_extra = NULL;
...@@ -1033,19 +1033,23 @@ void py_do_all (void) { ...@@ -1033,19 +1033,23 @@ void py_do_all (void) {
tgl_do_load_document_thumb (TLS, &M->media.document, py_file_cb, py_ptr[p]); tgl_do_load_document_thumb (TLS, &M->media.document, py_file_cb, py_ptr[p]);
} }
break; break;
*/
case pq_fwd: case pq_fwd:
tgl_do_forward_message (TLS, ((tgl_peer_t *)py_ptr[p + 1])->id, ((struct tgl_message *)py_ptr[p + 2])->id, py_msg_cb, py_ptr[p]); PyArg_ParseTuple(args, "iil|O", &peer.type, &peer.id, &msg_id, &cb_extra);
tgl_do_forward_message (TLS, peer, msg_id, 0, py_msg_cb, cb_extra);
break; break;
case pq_fwd_media: case pq_fwd_media:
tgl_do_forward_media (TLS, ((tgl_peer_t *)py_ptr[p + 1])->id, ((struct tgl_message *)py_ptr[p + 2])->id, py_msg_cb, py_ptr[p]); PyArg_ParseTuple(args, "iil|O", &peer.type, &peer.id, &msg_id, &cb_extra);
tgl_do_forward_media (TLS, peer, msg_id, 0, py_msg_cb, cb_extra);
break; break;
case pq_chat_info: case pq_chat_info:
tgl_do_get_chat_info (TLS, ((tgl_peer_t *)py_ptr[p + 1])->id, 0, py_chat_cb, py_ptr[p]); PyArg_ParseTuple(args, "ii|O", &peer.type, &peer.id, &cb_extra);
tgl_do_get_chat_info (TLS, peer, 0, py_chat_cb, cb_extra);
break; break;
case pq_user_info: case pq_user_info:
tgl_do_get_user_info (TLS, ((tgl_peer_t *)py_ptr[p + 1])->id, 0, py_user_cb, py_ptr[p]); PyArg_ParseTuple(args, "ii|O", &peer.type, &peer.id, &cb_extra);
tgl_do_get_user_info (TLS, peer, 0, py_user_cb, cb_extra);
break; break;
*/
case pq_history: case pq_history:
PyArg_ParseTuple(args, "iiii|O", &peer.type, &peer.id, &offset, &limit, &cb_extra); PyArg_ParseTuple(args, "iiii|O", &peer.type, &peer.id, &offset, &limit, &cb_extra);
tgl_do_get_history (TLS, peer, offset, limit, 0, py_msg_list_cb, cb_extra); tgl_do_get_history (TLS, peer, offset, limit, 0, py_msg_list_cb, cb_extra);
...@@ -1058,52 +1062,66 @@ void py_do_all (void) { ...@@ -1058,52 +1062,66 @@ void py_do_all (void) {
PyArg_ParseTuple(args, "iiii|O", &peer.type, &peer.id, &peer.type, &peer.id, &cb_extra); PyArg_ParseTuple(args, "iiii|O", &peer.type, &peer.id, &peer.type, &peer.id, &cb_extra);
tgl_do_del_user_from_chat (TLS, peer, peer1, py_empty_cb, cb_extra); tgl_do_del_user_from_chat (TLS, peer, peer1, py_empty_cb, cb_extra);
break; break;
/* case pq_add_contact: case pq_add_contact:
tgl_do_add_contact (TLS, s1, strlen (s1), s2, strlen (s2), s3, strlen (s3), 0, py_contact_list_cb, py_ptr[p]); PyArg_ParseTuple(args, "s#s#s#|O", &str1, &len1, &str2, &len2, &str3, &len3, &cb_extra);
tgl_do_add_contact (TLS, str1, len1, str2, len2, str3, len3, 0, py_contact_list_cb, cb_extra);
break; break;
case pq_del_contact: case pq_del_contact:
tgl_do_del_contact (TLS, ((tgl_peer_t *)py_ptr[p + 1])->id, py_empty_cb, py_ptr[p]); PyArg_ParseTuple(args, "ii|O", &peer.type, &peer.id, &cb_extra);
tgl_do_del_contact (TLS, peer, py_empty_cb, cb_extra);
break; break;
case pq_rename_contact: case pq_rename_contact:
tgl_do_add_contact (TLS, s1, strlen (s1), s2, strlen (s2), s3, strlen (s3), 1, py_contact_list_cb, py_ptr[p]); PyArg_ParseTuple(args, "s#s#s#|O", &str1, &len1, &str2, &len2, &str3, &len3, &cb_extra);
tgl_do_add_contact (TLS, str1, len1, str2, len2, str3, len3, 1, py_contact_list_cb, cb_extra);
break; break;
case pq_search: case pq_search:
tgl_do_msg_search (TLS, ((tgl_peer_t *)py_ptr[p + 1])->id, 0, 0, 40, 0, s, py_msg_list_cb, py_ptr[p]); PyArg_ParseTuple(args, "iis#|O", &peer.type, &peer.id, &str, &len, &cb_extra);
tgl_do_msg_search (TLS, peer, 0, 0, 40, 0, str, len, py_msg_list_cb, cb_extra);
break; break;
case pq_global_search: case pq_global_search:
tgl_do_msg_search (TLS, tgl_set_peer_id (TGL_PEER_UNKNOWN, 0), 0, 0, 40, 0, s, py_msg_list_cb, py_ptr[p]); PyArg_ParseTuple(args, "s#|O", &str, &len, &cb_extra);
tgl_do_msg_search (TLS, tgl_set_peer_id (TGL_PEER_UNKNOWN, 0), 0, 0, 40, 0, str, len, py_msg_list_cb, cb_extra);
break; break;
*/
case pq_mark_read: case pq_mark_read:
PyArg_ParseTuple(args, "ii|O", &peer.type, &peer.id, &cb_extra); PyArg_ParseTuple(args, "ii|O", &peer.type, &peer.id, &cb_extra);
tgl_do_mark_read (TLS, peer, py_empty_cb, cb_extra); tgl_do_mark_read (TLS, peer, py_empty_cb, cb_extra);
break; break;
/*
case pq_set_profile_photo: case pq_set_profile_photo:
tgl_do_set_profile_photo (TLS, s, py_empty_cb, py_ptr[p]); PyArg_ParseTuple(args, "s|O", &str, &cb_extra);
tgl_do_set_profile_photo (TLS, str, py_empty_cb, cb_extra);
break; break;
case pq_set_profile_name: case pq_set_profile_name:
tgl_do_set_profile_name (TLS, s1, s2, py_user_cb, py_ptr[p]); PyArg_ParseTuple(args, "s#s#|O", &str1, &len1, &str2, len2, &cb_extra);
tgl_do_set_profile_name (TLS, str1, len1, str2, len2, py_user_cb, cb_extra);
break; break;
case pq_create_secret_chat: case pq_create_secret_chat:
tgl_do_create_secret_chat (TLS, ((tgl_peer_t *)py_ptr[p + 1])->id, py_secret_chat_cb, py_ptr[p]); PyArg_ParseTuple(args, "ii|O", &peer.type, &peer.id, &cb_extra);
tgl_do_create_secret_chat (TLS, peer, py_secret_chat_cb, cb_extra);
break; break;
/*
case pq_create_group_chat: case pq_create_group_chat:
tgl_do_create_group_chat (TLS, ((tgl_peer_t *)py_ptr[p + 1])->id, s, py_msg_cb, py_ptr[p]); PyArg_ParseTuple(args, "Os|O", &pyObj1, str, &cb_extra);
if(PyList_Check(pyObj1) {
tgl_do_create_group_chat (TLS, peer, str, py_msg_cb, cb_extra);
} else {
logprintf("create_group_chat: Argument 1 must be a list of peers"
}
break; break;
*/
case pq_delete_msg: case pq_delete_msg:
tgl_do_delete_msg (TLS, ((struct tgl_message *)py_ptr[p + 1])->id, py_empty_cb, py_ptr[p]);
break;
case pq_restore_msg: case pq_restore_msg:
tgl_do_delete_msg (TLS, (long)py_ptr[p + 1], py_empty_cb, py_ptr[p]); PyArg_ParseTuple(args, "l|O", msg_id, &cb_extra);
tgl_do_delete_msg (TLS, msg_id, py_empty_cb, cb_extra);
break; break;
/*
case pq_accept_secret_chat: case pq_accept_secret_chat:
tgl_do_accept_encr_chat_request (TLS, py_ptr[p + 1], py_secret_chat_cb, py_ptr[p]); tgl_do_accept_encr_chat_request (TLS, py_ptr[p + 1], py_secret_chat_cb, py_ptr[p]);
break; break;
*/
case pq_send_contact: case pq_send_contact:
tgl_do_send_contact (TLS, ((tgl_peer_t *)py_ptr[p + 1])->id, s1, strlen (s1), s2, strlen (s2), s3, strlen (s3), py_msg_cb, py_ptr[p]); PyArg_ParseTuple(args, "iis#s#s#|O", &peer.type, &peer.id, &str1, &len1, &str2, &len2, &str3, &len3, &cb_extra);
tgl_do_send_contact (TLS, peer, str1, len1, str2, len2, str3, len3, 0, py_msg_cb, cb_extra);
break; break;
*/
case pq_status_online: case pq_status_online:
PyArg_ParseTuple(args, "|O", &cb_extra); PyArg_ParseTuple(args, "|O", &cb_extra);
tgl_do_update_status (TLS, 1, py_empty_cb, cb_extra); tgl_do_update_status (TLS, 1, py_empty_cb, cb_extra);
...@@ -1112,32 +1130,16 @@ void py_do_all (void) { ...@@ -1112,32 +1130,16 @@ void py_do_all (void) {
PyArg_ParseTuple(args, "|O", &cb_extra); PyArg_ParseTuple(args, "|O", &cb_extra);
tgl_do_update_status (TLS, 0, py_empty_cb, cb_extra); tgl_do_update_status (TLS, 0, py_empty_cb, cb_extra);
break; break;
/* case pq_extf: case pq_extf:
tgl_do_send_extf (TLS, s, strlen (s), py_str_cb, py_ptr[p]); PyArg_ParseTuple(args, "s#|O", &str, &len, &cb_extra);
tgl_do_send_extf (TLS, str, len, py_str_cb, &cb_extra);
break; break;
*/
case pq_send_location: case pq_send_location:
PyArg_ParseTuple(args, "iiOO|O", &peer.type, &peer.id, &pyObj1, &pyObj2, &cb_extra); PyArg_ParseTuple(args, "iiOO|O", &peer.type, &peer.id, &pyObj1, &pyObj2, &cb_extra);
tgl_do_send_location (TLS, peer, PyFloat_AsDouble(pyObj1), PyFloat_AsDouble(pyObj2), 0, py_msg_cb, cb_extra); tgl_do_send_location (TLS, peer, PyFloat_AsDouble(pyObj1), PyFloat_AsDouble(pyObj2), 0, py_msg_cb, cb_extra);
Py_XDECREF(pyObj1); Py_XDECREF(pyObj1);
Py_XDECREF(pyObj2); Py_XDECREF(pyObj2);
break; break;
/*
pq_delete_msg,
pq_restore_msg,
case 0:
tgl_do_send_message (((tgl_peer_t *)py_ptr[p])->id, py_ptr[p + 1], strlen (py_ptr[p + 1]), 0, 0);
free (py_ptr[p + 1]);
p += 2;
break;
case 1:
tgl_do_forward_message (((tgl_peer_t *)py_ptr[p])->id, (long)py_ptr[p + 1], 0, 0);
p += 2;
break;
case 2:
tgl_do_mark_read (((tgl_peer_t *)py_ptr[p])->id, 0, 0);
p += 1;
break;*/
default: default:
assert (0); assert (0);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment