Tue, 02 Oct 2018 16:25:48 -0500
libpurple: Drop DBus example plugins
| libpurple/plugins/dbus-buddyicons-example.py | file | annotate | diff | comparison | revisions | |
| libpurple/plugins/dbus-example.c | file | annotate | diff | comparison | revisions | |
| libpurple/plugins/meson.build | file | annotate | diff | comparison | revisions | |
| po/POTFILES.in | file | annotate | diff | comparison | revisions |
--- a/libpurple/plugins/dbus-buddyicons-example.py Tue Oct 02 16:23:35 2018 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -# Print the aliases of buddies who have a buddy-icon set. -# -# Purple is the legal property of its developers, whose names are too numerous -# to list here. Please refer to the COPYRIGHT file distributed with this -# source distribution. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA -# - -from __future__ import absolute_import, division, print_function - -import dbus - - -bus = dbus.SessionBus() -obj = bus.get_object("im.pidgin.purple.PurpleService", - "/im/pidgin/purple/PurpleObject") -purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface") - -node = purple.PurpleBlistGetRoot() -while node != 0: - if purple.PurpleBlistNodeIsBuddy(node): - icon = purple.PurpleBuddyGetIcon(node) - if icon != 0: - print(purple.PurpleBuddyGetAlias(node)) - node = purple.PurpleBlistNodeNext(node, 0)
--- a/libpurple/plugins/dbus-example.c Tue Oct 02 16:23:35 2018 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,166 +0,0 @@ -/* - * This is an example of a purple dbus plugin. After enabling this - * plugin, the following commands should work from the command line: - * - * prompt$ purple-send DbusExampleGetHelloObject - * - * returns, say: int32 74 - * - * prompt$ purple-send DbusExampleGetText int32:74 - * - * returns: string "Hello." - * - * prompt$ purple-send DbusExampleSetText int32:74 string:Bye! - * - * prompt$ purple-send DbusExampleGetText int32:74 - * - * returns: string "Bye!" - * - * Purple is the legal property of its developers, whose names are too numerous - * to list here. Please refer to the COPYRIGHT file distributed with this - * source distribution. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA - */ - -/* When writing a third-party plugin, do not include libpurple's internal.h - * included below. This file is for internal libpurple use only. We're including - * it here for our own convenience. */ -#include "internal.h" - -/* This file defines PURPLE_PLUGINS and includes all the libpurple headers */ -#include <purple.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define DBUS_API_SUBJECT_TO_CHANGE -#include "dbus-maybe.h" -#include "dbus-bindings.h" - -typedef struct { - char *text; -} PurpleText; - -/* This makes the structure PurpleText visible to the purple-dbus type - system. It defines PurpleText as a type with no parent. From now - on, we will be able to register pointers to structures of this - type. You to dbus-define types you want to be directly accessible - by external applications. */ -PURPLE_DBUS_DEFINE_TYPE(PurpleText) - -/* Here we make four functions accessible to other applications by - DBus. These functions can access types defined in purple proper - (PurpleBuddy) as well as the types defined in the plugin (PurpleText). */ -DBUS_EXPORT PurpleText* dbus_example_get_hello_object(void); -DBUS_EXPORT void dbus_example_set_text(PurpleText *obj, const char *text); -DBUS_EXPORT const char *dbus_example_get_text(PurpleText *obj); -DBUS_EXPORT const char *dbus_example_get_buddy_name(PurpleBuddy *buddy); - -/* This file has been generated by the #dbus-analize-functions.py - script. It contains dbus wrappers for the four functions declared - above. */ -#include "dbus-example-bindings.ch" - -/* This is the PurpleText object we want to make publicly visible. */ -static PurpleText hello; - -/* Here come the definitions of the four exported functions. */ -DBUS_EXPORT PurpleText* dbus_example_get_hello_object(void) -{ - return &hello; -} - -DBUS_EXPORT void dbus_example_set_text(PurpleText *obj, const char *text) -{ - if (obj != NULL) { - g_free(obj->text); - obj->text = g_strdup(text); - } -} - -DBUS_EXPORT const char *dbus_example_get_text(PurpleText *obj) -{ - if (obj != NULL) - return obj->text; - else - return NULL; -} - -DBUS_EXPORT const char *dbus_example_get_buddy_name(PurpleBuddy *buddy) -{ - return purple_buddy_get_name(buddy); -} - -/* And now standard plugin stuff */ - -static PurplePluginInfo * -plugin_query(GError **error) -{ - const gchar * const authors[] = { - "Piotr Zielinski (http://cl.cam.ac.uk/~pz215)", - NULL - }; - - return purple_plugin_info_new( - "id", "dbus-example", - "name", N_("DBus Example"), - "version", DISPLAY_VERSION, - "category", N_("Example"), - "summary", N_("DBus Plugin Example"), - "description", N_("DBus Plugin Example"), - "authors", authors, - "website", PURPLE_WEBSITE, - "abi-version", PURPLE_ABI_VERSION, - NULL - ); -} - -static gboolean -plugin_load(PurplePlugin *plugin, GError **error) -{ - PURPLE_DBUS_RETURN_FALSE_IF_DISABLED(plugin); - - /* First, we have to register our four exported functions with the - main purple dbus loop. Without this statement, the purple dbus - code wouldn't know about our functions. */ - PURPLE_DBUS_REGISTER_BINDINGS(plugin); - - /* Then, we register the hello object of type PurpleText. Note that - pointer registrations / unregistrations are completely dynamic; - they don't have to be made when the plugin is loaded / - unloaded. Without this statement the dbus purple code wouldn't - know about the hello object. */ - PURPLE_DBUS_REGISTER_POINTER(&hello, PurpleText); - - hello.text = g_strdup("Hello."); - - return TRUE; -} - - -static gboolean -plugin_unload(PurplePlugin *plugin, GError **error) -{ - g_free(hello.text); - - /* It is necessary to unregister all pointers registered by the module. */ - PURPLE_DBUS_UNREGISTER_POINTER(&hello); - - return TRUE; -} - -PURPLE_PLUGIN_INIT(dbus_example, plugin_query, plugin_load, plugin_unload);
--- a/libpurple/plugins/meson.build Tue Oct 02 16:23:35 2018 -0500 +++ b/libpurple/plugins/meson.build Tue Oct 02 16:25:48 2018 -0500 @@ -77,17 +77,4 @@ dependencies : [libpurple_dep], name_prefix : '', ) - - if enable_dbus - dbus_example_bindings_c = custom_target('dbus_example_bindings_c', - input : 'dbus-example.c', - output : 'dbus-example-bindings.ch', - command : [python, - meson.source_root() + '/libpurple/dbus-analyze-functions.py', - '--export-only', '-o', '@OUTPUT@', '@INPUT@']) - - dbus_example = library('dbus-example', 'dbus-example.c', dbus_example_bindings_c, - dependencies : [libpurple_dep, dbus], - name_prefix : '') - endif # enable_dbus endif # PLUGINS
--- a/po/POTFILES.in Tue Oct 02 16:23:35 2018 -0500 +++ b/po/POTFILES.in Tue Oct 02 16:25:48 2018 -0500 @@ -57,7 +57,6 @@ libpurple/plugins.c libpurple/plugins/autoaccept.c libpurple/plugins/buddynote.c -libpurple/plugins/dbus-example.c libpurple/plugins/filectl.c libpurple/plugins/idle.c libpurple/plugins/joinpart.c