Add additional peer functions
This commit is contained in:
parent
99bf18283d
commit
ce4d9aff00
326
python-types.c
326
python-types.c
@ -391,16 +391,316 @@ tgl_Peer_send_msg (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
|||||||
|
|
||||||
return py_send_msg(Py_None, api_call);
|
return py_send_msg(Py_None, api_call);
|
||||||
} else {
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
Py_XINCREF(Py_False);
|
Py_XINCREF(Py_False);
|
||||||
return Py_False;
|
return Py_False;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
tgl_Peer_send_typing (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
static char *kwlist[] = {"callback", NULL};
|
||||||
|
|
||||||
|
PyObject *callback = NULL;
|
||||||
|
|
||||||
|
if(PyArg_ParseTupleAndKeywords(args, kwargs, "|O", kwlist, &callback)) {
|
||||||
|
PyObject *api_call;
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
api_call = Py_BuildValue("OO", (PyObject*) self, callback);
|
||||||
|
else
|
||||||
|
api_call = Py_BuildValue("O", (PyObject*) self);
|
||||||
|
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
Py_XINCREF(api_call);
|
||||||
|
|
||||||
|
return py_send_typing(Py_None, api_call);
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
tgl_Peer_send_typing_abort (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
static char *kwlist[] = {"callback", NULL};
|
||||||
|
|
||||||
|
PyObject *callback = NULL;
|
||||||
|
|
||||||
|
if(PyArg_ParseTupleAndKeywords(args, kwargs, "O!|O", kwlist, &callback)) {
|
||||||
|
PyObject *api_call;
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
api_call = Py_BuildValue("OO", (PyObject*) self, callback);
|
||||||
|
else
|
||||||
|
api_call = Py_BuildValue("O", (PyObject*) self);
|
||||||
|
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
Py_XINCREF(api_call);
|
||||||
|
|
||||||
|
return py_send_typing_abort(Py_None, api_call);
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
tgl_Peer_rename_chat (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
static char *kwlist[] = {"peer", "title", "callback", NULL};
|
||||||
|
|
||||||
|
char * title;
|
||||||
|
PyObject *callback = NULL;
|
||||||
|
|
||||||
|
if(self->peer->id.type != TGL_PEER_CHAT) {
|
||||||
|
PyErr_SetString(PeerError, "Only a chat peer can be renamed");
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|O", kwlist, &title, &callback)) {
|
||||||
|
PyObject *api_call;
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
api_call = Py_BuildValue("OsO", (PyObject*) self, title, callback);
|
||||||
|
else
|
||||||
|
api_call = Py_BuildValue("Os", (PyObject*) self, title);
|
||||||
|
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
Py_XINCREF(api_call);
|
||||||
|
|
||||||
|
return py_rename_chat(Py_None, api_call);
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
tgl_Peer_send_photo (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
static char *kwlist[] = {"filename", "callback", NULL};
|
||||||
|
|
||||||
|
char *filename;
|
||||||
|
PyObject *callback = NULL;
|
||||||
|
|
||||||
|
if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|O", kwlist, &filename, &callback)) {
|
||||||
|
PyObject *api_call;
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
api_call = Py_BuildValue("OsO", (PyObject*) self, filename, callback);
|
||||||
|
else
|
||||||
|
api_call = Py_BuildValue("Os", (PyObject*) self, filename);
|
||||||
|
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
Py_XINCREF(api_call);
|
||||||
|
|
||||||
|
return py_send_photo(Py_None, api_call);
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
tgl_Peer_send_video (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
static char *kwlist[] = {"filename", "callback", NULL};
|
||||||
|
|
||||||
|
char *filename;
|
||||||
|
PyObject *callback = NULL;
|
||||||
|
|
||||||
|
if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|O", kwlist, &filename, &callback)) {
|
||||||
|
PyObject *api_call;
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
api_call = Py_BuildValue("OsO", (PyObject*) self, filename, callback);
|
||||||
|
else
|
||||||
|
api_call = Py_BuildValue("Os", (PyObject*) self, filename);
|
||||||
|
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
Py_XINCREF(api_call);
|
||||||
|
|
||||||
|
return py_send_video(Py_None, api_call);
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
tgl_Peer_send_audio (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
static char *kwlist[] = {"filename", "callback", NULL};
|
||||||
|
|
||||||
|
char *filename;
|
||||||
|
PyObject *callback = NULL;
|
||||||
|
|
||||||
|
if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|O", kwlist, &filename, &callback)) {
|
||||||
|
PyObject *api_call;
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
api_call = Py_BuildValue("OsO", (PyObject*) self, filename, callback);
|
||||||
|
else
|
||||||
|
api_call = Py_BuildValue("Os", (PyObject*) self, filename);
|
||||||
|
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
Py_XINCREF(api_call);
|
||||||
|
|
||||||
|
return py_send_audio(Py_None, api_call);
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
tgl_Peer_send_document (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
static char *kwlist[] = {"filename", "callback", NULL};
|
||||||
|
|
||||||
|
char *filename;
|
||||||
|
PyObject *callback = NULL;
|
||||||
|
|
||||||
|
if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|O", kwlist, &filename, &callback)) {
|
||||||
|
PyObject *api_call;
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
api_call = Py_BuildValue("OsO", (PyObject*) self, filename, callback);
|
||||||
|
else
|
||||||
|
api_call = Py_BuildValue("Os", (PyObject*) self, filename);
|
||||||
|
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
Py_XINCREF(api_call);
|
||||||
|
|
||||||
|
return py_send_document(Py_None, api_call);
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
tgl_Peer_send_file (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
static char *kwlist[] = {"filename", "callback", NULL};
|
||||||
|
|
||||||
|
char *filename;
|
||||||
|
PyObject *callback = NULL;
|
||||||
|
|
||||||
|
if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|O", kwlist, &filename, &callback)) {
|
||||||
|
PyObject *api_call;
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
api_call = Py_BuildValue("OsO", (PyObject*) self, filename, callback);
|
||||||
|
else
|
||||||
|
api_call = Py_BuildValue("Os", (PyObject*) self, filename);
|
||||||
|
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
Py_XINCREF(api_call);
|
||||||
|
|
||||||
|
return py_send_file(Py_None, api_call);
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
tgl_Peer_send_text (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
static char *kwlist[] = {"filename", "callback", NULL};
|
||||||
|
|
||||||
|
char *filename;
|
||||||
|
PyObject *callback = NULL;
|
||||||
|
|
||||||
|
if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|O", kwlist, &filename, &callback)) {
|
||||||
|
PyObject *api_call;
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
api_call = Py_BuildValue("OsO", (PyObject*) self, filename, callback);
|
||||||
|
else
|
||||||
|
api_call = Py_BuildValue("Os", (PyObject*) self, filename);
|
||||||
|
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
Py_XINCREF(api_call);
|
||||||
|
|
||||||
|
return py_send_text(Py_None, api_call);
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
tgl_Peer_chat_set_photo (tgl_Peer *self, PyObject *args, PyObject *kwargs)
|
||||||
|
{
|
||||||
|
static char *kwlist[] = {"peer", "filename", "callback", NULL};
|
||||||
|
|
||||||
|
char * filename;
|
||||||
|
PyObject *callback = NULL;
|
||||||
|
|
||||||
|
if(self->peer->id.type != TGL_PEER_CHAT) {
|
||||||
|
PyErr_SetString(PeerError, "Only a chat peer can have a chat photo set.");
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(PyArg_ParseTupleAndKeywords(args, kwargs, "s|O", kwlist, &filename, &callback)) {
|
||||||
|
PyObject *api_call;
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
api_call = Py_BuildValue("OsO", (PyObject*) self, filename, callback);
|
||||||
|
else
|
||||||
|
api_call = Py_BuildValue("Os", (PyObject*) self, filename);
|
||||||
|
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
Py_XINCREF(api_call);
|
||||||
|
|
||||||
|
return py_chat_set_photo(Py_None, api_call);
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
Py_XINCREF(Py_False);
|
||||||
|
return Py_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static PyMethodDef tgl_Peer_methods[] = {
|
static PyMethodDef tgl_Peer_methods[] = {
|
||||||
{"send_msg", (PyCFunction)tgl_Peer_send_msg, METH_VARARGS | METH_KEYWORDS,
|
{"send_msg", (PyCFunction)tgl_Peer_send_msg, METH_VARARGS | METH_KEYWORDS,
|
||||||
"Send a message to peer object"},
|
"Send a message to peer object"},
|
||||||
|
{"send_typing", (PyCFunction)tgl_Peer_send_typing, METH_VARARGS | METH_KEYWORDS, ""},
|
||||||
|
{"send_typing_abort", (PyCFunction)tgl_Peer_send_typing_abort, METH_VARARGS | METH_KEYWORDS, ""},
|
||||||
|
{"rename_chat", (PyCFunction)tgl_Peer_rename_chat, METH_VARARGS | METH_KEYWORDS, ""},
|
||||||
|
{"send_photo", (PyCFunction)tgl_Peer_send_photo, METH_VARARGS | METH_KEYWORDS, ""},
|
||||||
|
{"send_video", (PyCFunction)tgl_Peer_send_video, METH_VARARGS | METH_KEYWORDS, ""},
|
||||||
|
{"send_audio", (PyCFunction)tgl_Peer_send_audio, METH_VARARGS | METH_KEYWORDS, ""},
|
||||||
|
{"send_file", (PyCFunction)tgl_Peer_send_file, METH_VARARGS | METH_KEYWORDS, ""},
|
||||||
|
{"send_document", (PyCFunction)tgl_Peer_send_document, METH_VARARGS | METH_KEYWORDS, ""},
|
||||||
|
{"send_text", (PyCFunction)tgl_Peer_send_text, METH_VARARGS | METH_KEYWORDS, ""},
|
||||||
|
{"chat_set_photo", (PyCFunction)tgl_Peer_chat_set_photo, METH_VARARGS | METH_KEYWORDS, ""},
|
||||||
{NULL} /* Sentinel */
|
{NULL} /* Sentinel */
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -409,26 +709,26 @@ static PyObject *
|
|||||||
tgl_Peer_repr(tgl_Peer *self)
|
tgl_Peer_repr(tgl_Peer *self)
|
||||||
{
|
{
|
||||||
PyObject *ret;
|
PyObject *ret;
|
||||||
|
|
||||||
switch(self->peer->id.type) {
|
switch(self->peer->id.type) {
|
||||||
case TGL_PEER_USER:
|
case TGL_PEER_USER:
|
||||||
ret = PyUnicode_FromFormat("<tgl.Peer: type=user, id=%ld, username=%R, name=%R, first_name=%R, last_name=%R, phone=%R>",
|
ret = PyUnicode_FromFormat("<tgl.Peer: type=user, id=%ld, username=%R, name=%R, first_name=%R, last_name=%R, phone=%R>",
|
||||||
self->peer->id.id,
|
self->peer->id.id,
|
||||||
PyObject_GetAttrString((PyObject*)self, "username"),
|
PyObject_GetAttrString((PyObject*)self, "username"),
|
||||||
PyObject_GetAttrString((PyObject*)self, "name"),
|
PyObject_GetAttrString((PyObject*)self, "name"),
|
||||||
PyObject_GetAttrString((PyObject*)self, "first_name"),
|
PyObject_GetAttrString((PyObject*)self, "first_name"),
|
||||||
PyObject_GetAttrString((PyObject*)self, "last_name"),
|
PyObject_GetAttrString((PyObject*)self, "last_name"),
|
||||||
PyObject_GetAttrString((PyObject*)self, "phone")
|
PyObject_GetAttrString((PyObject*)self, "phone")
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case TGL_PEER_CHAT:
|
case TGL_PEER_CHAT:
|
||||||
ret = PyUnicode_FromFormat("<tgl.Peer: type=chat, id=%ld, name=%s>",
|
ret = PyUnicode_FromFormat("<tgl.Peer: type=chat, id=%ld, name=%s>",
|
||||||
self->peer->id.id, self->peer->chat.print_title);
|
self->peer->id.id, self->peer->chat.print_title);
|
||||||
break;
|
break;
|
||||||
case TGL_PEER_ENCR_CHAT:
|
case TGL_PEER_ENCR_CHAT:
|
||||||
ret = PyUnicode_FromFormat("<tgl.Peer: type=secret_chat, id=%ld, name=%s, user=%R>",
|
ret = PyUnicode_FromFormat("<tgl.Peer: type=secret_chat, id=%ld, name=%s, user=%R>",
|
||||||
self->peer->id.id, self->peer->encr_chat.print_name,
|
self->peer->id.id, self->peer->encr_chat.print_name,
|
||||||
PyObject_GetAttrString((PyObject*)self, "user"));
|
PyObject_GetAttrString((PyObject*)self, "user"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ret = PyUnicode_FromFormat("<tgl.Peer: Type Unknown>");
|
ret = PyUnicode_FromFormat("<tgl.Peer: Type Unknown>");
|
||||||
|
Loading…
Reference in New Issue
Block a user