#include "conversation.h" /* include UI for pidgin_dialogs_about() */ #define PURPLEINC_PLUGIN_ID "core-purpleinc" echo_hi(PurpleConnection *gc) /* this doesn't do much, just lets you know who we are :) */ reverse(PurpleAccount *account, char **who, char **message, PurpleConversation *conv, int *flags) /* this will drive you insane. whenever you receive a message, * the text of the message (HTML and all) will be reversed. */ /* this check is necessary in case bad plugins do bad things */ if (message == NULL || *message == NULL) if (!strcmp(*who, purple_account_get_username(account))) for (i = 0; i < l/2; i++) { (*message)[i] = (*message)[l - i - 1]; (*message)[l - i - 1] = tmp; PurpleAccount *acct = who->account; PurpleConversation *conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, who->name); purple_conv_im_send(PURPLE_CONV_IM(conv), "Hello!"); plugin_load(PurplePlugin *plugin) /* this is for doing something fun when we sign on */ purple_signal_connect(purple_connections_get_handle(), "signed-on", plugin, PURPLE_CALLBACK(echo_hi), NULL); /* this is for doing something fun when we get a message */ purple_signal_connect(purple_conversations_get_handle(), "receiving-im-msg", plugin, PURPLE_CALLBACK(reverse), NULL); /* this is for doing something fun when a buddy comes online */ purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", plugin, PURPLE_CALLBACK(bud), NULL); static PurplePluginInfo info = PURPLE_PLUGIN_STANDARD, /**< type */ NULL, /**< ui_requirement */ NULL, /**< dependencies */ PURPLE_PRIORITY_DEFAULT, /**< priority */ PURPLEINC_PLUGIN_ID, /**< id */ N_("Pidgin Demonstration Plugin"), /**< name */ DISPLAY_VERSION, /**< version */ N_("An example plugin that does stuff - see the description."), N_("This is a really cool plugin that does a lot of stuff:\n" "- It tells you who wrote the program when you log in\n" "- It reverses all incoming text\n" "- It sends a message to people on your list immediately" "Eric Warmenhoven <eric@warmenhoven.org>", /**< author */ PURPLE_WEBSITE, /**< homepage */ plugin_load, /**< load */ init_plugin(PurplePlugin *plugin) PURPLE_INIT_PLUGIN(purpleinc, init_plugin, info)