]> err.no Git - eweouz/blobdiff - src/eweouz-dump-addressbook.c
Add copyright notices for .c files too
[eweouz] / src / eweouz-dump-addressbook.c
index 4072426dcaa1c8a2ff25b0f759d7e4cc02785107..769b69921e21ceec8fe1c79220c412be634994f1 100644 (file)
@@ -1,3 +1,20 @@
+/* Copyright (c) 2008-2013 Tollef Fog Heen <tfheen@err.no>
+
+ eweouz is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 as
+ published by the Free Software Foundation.
+
+ eweouz 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
+ 02110-1301 USA.
+*/
+
 #include <libebook/libebook.h>
 #include <glib.h>
 #include <locale.h>
@@ -56,21 +73,20 @@ static GOptionEntry entries[] =
 
 int main(int argc, char **argv)
 {
-       EBook *book;
+       EBookClient *client;
        ESourceRegistry *eds_source_registry = NULL;
        GList *sources;
        ESource *source;
        GSList *groups;
        EBookQuery *query;
-       GList *contacts;
+       GSList *contacts;
        GList *g, *s;
-       GList *c;
+       GSList *c;
        GError *error = NULL;
        GOptionContext *optioncontext;
 
        setlocale (LC_ALL, "");
 
-       g_type_init();
        optioncontext = g_option_context_new ("- whack address book");
        g_option_context_add_main_entries (optioncontext, entries, NULL);
        g_option_context_parse (optioncontext, &argc, &argv, &error);
@@ -86,7 +102,7 @@ int main(int argc, char **argv)
                return 1;
        }
 
-       sources = e_source_registry_list_sources (eds_source_registry, NULL);
+       sources = e_source_registry_list_sources (eds_source_registry, E_SOURCE_EXTENSION_ADDRESS_BOOK);
 
        if (search_filter != NULL) {
                query = e_book_query_any_field_contains(*search_filter);
@@ -96,27 +112,22 @@ int main(int argc, char **argv)
 
        for (s = sources ; s; s = s->next) {
                source = E_SOURCE(s->data);
-               book = e_book_new(source, &error);
+               client = E_BOOK_CLIENT(e_book_client_connect_sync(source, NULL, &error));
 
                if (error != NULL) {
-                       fprintf(stderr, "%s\n", error->message);
-                       return 1;
+                       fprintf(stderr, "e_book_client_connect_sync: %s\n", error->message);
+                       g_error_free(error);
+                       error = NULL;
+                       continue;
                }
 
-               e_book_open(book, TRUE, &error);
-
-
+               /* XXX: leaks the query, but we're short running so doesn't really matter */
+               e_book_client_get_contacts_sync(client, e_book_query_to_string(query), &contacts, NULL, &error);
                if (error != NULL) {
                        fprintf(stderr, "%s\n", error->message);
                        return 1;
                }
-               
-               e_book_get_contacts(book, query, &contacts, &error);
-               if (error != NULL) {
-                       fprintf(stderr, "%s\n", error->message);
-                       return 1;
-               }
-               
+
                for (c = contacts; c; c = c->next) {
                        dump_as_vcard(E_CONTACT(c->data), 1);
                }