1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-06-23 21:45:30 +00:00

Plugins: Added basic incoming message function

This commit is contained in:
James Booth 2016-03-29 23:44:54 +01:00
parent 94b9b1d8e4
commit 194c53c4fa
6 changed files with 48 additions and 6 deletions

View File

@ -39,6 +39,7 @@
#include <glib.h>
#include "log.h"
#include "event/server_events.h"
#include "plugins/callbacks.h"
#include "plugins/autocompleters.h"
#include "plugins/themes.h"
@ -368,3 +369,12 @@ api_settings_set_int(const char *const group, const char *const key, int value)
{
plugin_settings_set_int(group, key, value);
}
void
api_incoming_message(const char *const barejid, const char *const resource, const char *const message)
{
sv_ev_incoming_message((char*)barejid, (char*)resource, (char*)message, NULL, NULL);
// TODO handle all states
sv_ev_activity((char*)barejid, (char*)resource, FALSE);
}

View File

@ -79,4 +79,6 @@ void api_settings_set_string(const char *const group, const char *const key, con
int api_settings_get_int(const char *const group, const char *const key, int def);
void api_settings_set_int(const char *const group, const char *const key, int value);
void api_incoming_message(const char *const barejid, const char *const resource, const char *const message);
#endif

View File

@ -230,6 +230,12 @@ c_api_settings_set_int(char *group, char *key, int value)
api_settings_set_int(group, key, value);
}
static void
c_api_incoming_message(char *barejid, char *resource, char *message)
{
api_incoming_message(barejid, resource, message);
}
void
c_command_callback(PluginCommand *command, gchar **args)
{
@ -285,4 +291,5 @@ c_api_init(void)
prof_settings_set_string = c_api_settings_set_string;
prof_settings_get_int = c_api_settings_get_int;
prof_settings_set_int = c_api_settings_set_int;
prof_incoming_message = c_api_incoming_message;
}

View File

@ -77,3 +77,5 @@ char* (*prof_settings_get_string)(char *group, char *key, char *def) = NULL;
void (*prof_settings_set_string)(char *group, char *key, char *value) = NULL;
int (*prof_settings_get_int)(char *group, char *key, int def) = NULL;
void (*prof_settings_set_int)(char *group, char *key, int value) = NULL;
void (*prof_incoming_message)(char *barejid, char *resource, char *message) = NULL;

View File

@ -78,4 +78,6 @@ void (*prof_settings_set_string)(char *group, char *key, char *value);
int (*prof_settings_get_int)(char *group, char *key, int def);
void (*prof_settings_set_int)(char *group, char *key, int value);
void (*prof_incoming_message)(char *barejid, char *resource, char *message);
#endif

View File

@ -571,6 +571,24 @@ python_api_settings_set_int(PyObject *self, PyObject *args)
return Py_BuildValue("");
}
static PyObject*
python_api_incoming_message(PyObject *self, PyObject *args)
{
char *barejid = NULL;
char *resource = NULL;
char *message = NULL;
if (!PyArg_ParseTuple(args, "sss", &barejid, &resource, &message)) {
return Py_BuildValue("");
}
allow_python_threads();
api_incoming_message(barejid, resource, message);
disable_python_threads();
return Py_BuildValue("");
}
void
python_command_callback(PluginCommand *command, gchar **args)
{
@ -661,12 +679,13 @@ static PyMethodDef apiMethods[] = {
{ "win_show", python_api_win_show, METH_VARARGS, "Show text in the window." },
{ "win_show_themed", python_api_win_show_themed, METH_VARARGS, "Show themed text in the window." },
{ "send_stanza", python_api_send_stanza, METH_VARARGS, "Send an XMPP stanza." },
{ "settings_get_boolean", python_api_settings_get_boolean, METH_VARARGS, "Get a boolean setting" },
{ "settings_set_boolean", python_api_settings_set_boolean, METH_VARARGS, "Set a boolean setting" },
{ "settings_get_string", python_api_settings_get_string, METH_VARARGS, "Get a string setting" },
{ "settings_set_string", python_api_settings_set_string, METH_VARARGS, "Set a string setting" },
{ "settings_get_int", python_api_settings_get_int, METH_VARARGS, "Get a integer setting" },
{ "settings_set_int", python_api_settings_set_int, METH_VARARGS, "Set a integer setting" },
{ "settings_get_boolean", python_api_settings_get_boolean, METH_VARARGS, "Get a boolean setting." },
{ "settings_set_boolean", python_api_settings_set_boolean, METH_VARARGS, "Set a boolean setting." },
{ "settings_get_string", python_api_settings_get_string, METH_VARARGS, "Get a string setting." },
{ "settings_set_string", python_api_settings_set_string, METH_VARARGS, "Set a string setting." },
{ "settings_get_int", python_api_settings_get_int, METH_VARARGS, "Get a integer setting." },
{ "settings_set_int", python_api_settings_set_int, METH_VARARGS, "Set a integer setting." },
{ "incoming_message", python_api_incoming_message, METH_VARARGS, "Show an incoming message." },
{ NULL, NULL, 0, NULL }
};