# Sources
maevies_SOURCES = \
- src/main.c
+ src/main.c \
+ src/extra_scenes_provider.c \
+ src/watc_provider.c
# /Sources
# LDADD
--- /dev/null
+#!/bin/sh
+FILES="Makefile.in \
+ aclocal.m4 \
+ autom4te.cache \
+ config.guess \
+ config.h.in \
+ config.sub \
+ configure \
+ depcomp \
+ install-sh \
+ intltool-extract.in \
+ intltool-merge.in \
+ intltool-update.in \
+ ltmain.sh \
+ missing \
+ mkinstalldirs \
+ src/Makefile.in \
+ src/Makefile \
+ po/Makefile.in.in"
+
+for file in $FILES;
+do
+ if [[ -a $file ]];
+ then
+ if [[ -d $file ]];
+ then
+ rm -r $file;
+ else
+ rm $file;
+ fi
+ fi
+done
+
+rm -rf *~
FLAGS_GMOVIES = `pkg-config libxml-2.0 --cflags`
+all: gtranslate gmovies
+
gtranslate: gtranslate.o
$(CC) -o gtranslate gtranslate.o $(LIBS_GTRANSLATE)
gmovies.o: gmovies.c
$(CC) -c gmovies.c $(FLAGS_GMOVIES)
-all: gtranslate gmovies
-
clean:
rm -rf gtranslate gtranslate.o gmovies gmovies.o *~
--- /dev/null
+/*
+ * extra_scenes_provider.c
+ *
+ * This file is part of maevies
+ * Copyright (C) 2009 Simón Pena <bulfaiter@gmail.com>
+ *
+ * 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 3 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.
+ *
+ */
+
+#include "extra_scenes_provider.h"
+#include "watc_provider.h"
+
+int has_stingers(const char *movie) {
+
+ /* Here there should be a mechanism
+ * allowing us to dynamically load new libraries
+ * dlopen - http://stackoverflow.com/questions/384121/creating-a-module-system-dynamic-loading-in-c
+ * Until we get it, we'll use just one of the provided providers ;)
+ */
+ return watc_has_stingers(movie);
+
+
+}
--- /dev/null
+/*
+ * extra_scenes_provider.h
+ *
+ * This file is part of maevies
+ * Copyright (C) 2009 Simón Pena <bulfaiter@gmail.com>
+ *
+ * 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 3 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.
+ *
+ */
+
+#ifndef EXTRA_SCENES_PROVIDER_H_
+#define EXTRA_SCENES_PROVIDER_H_
+
+int has_stingers(const char *movie);
+
+#endif /* EXTRA_SCENES_PROVIDER_H_ */
#include <stdlib.h>
#include "localisation.h"
+#include "extra_scenes_provider.h"
+
/* Defines to add the application to dbus and keep it running
* Please do not modify "APP_NAME" (or other defines) to different name
*/
static void button_clicked (GtkButton* button, gpointer data)
{
+ if(has_stingers("Zombieland"))
+ printf("Movie has stingers\n");
+ else
+ printf("Movie doesn't have stingers\n");
gtk_main_quit();
}
--- /dev/null
+/*
+ * watc_provider.c
+ *
+ * This file is part of maevies
+ * Copyright (C) 2009 Simón Pena <bulfaiter@gmail.com>
+ *
+ * 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 3 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.
+ *
+ */
+
+#include "watc_provider.h"
+#include "string.h"
+
+int watc_has_stingers(const char *name) {
+
+ RestProxy *proxy;
+ RestProxyCall *call;
+ const gchar *response;
+ gssize len;
+
+ /* Initialization: most probably done in the invoker */
+ g_thread_init(NULL);
+ g_type_init();
+
+ /* Provider initialization, should be refactored. Maybe it can be reused between calls */
+ proxy = rest_proxy_new(WATC_SERVICE_URL, FALSE);
+ call = rest_proxy_new_call(proxy);
+
+ /* Adding params to the call: check http://en.wikipedia.org/w/api.php
+ *
+ * There's only one variable param: the movie name
+ * */
+ rest_proxy_call_add_params(call, "action", "opensearch", "search", name,
+ NULL);
+
+ /* The actual call */
+ rest_proxy_call_run(call, NULL, NULL);
+
+ /* Retrieving the results: should be done in/should receive a callback function */
+ response = rest_proxy_call_get_payload(call);
+ len = rest_proxy_call_get_payload_length(call);
+
+ /* Process the output: must be checked whether the response has a * in the expected result
+ * or not */
+ write(1, response, len);
+ printf("\n");
+
+ /* Object disposal, should be refactored. */
+ g_object_unref(call);
+ g_object_unref(proxy);
+
+ return parse_response(response);
+}
+
+/* Ad-hoc implementation. Will give a wrong result if the query had more than one result,
+ * if the title has a * in its text, or if the conventions used in what's after the credits vary.
+ */
+int parse_response(const gchar *response) {
+
+ return (strpbrk(response, "*") != NULL);
+}
--- /dev/null
+/*
+ * watc_provider.h
+ *
+ * This file is part of maevies
+ * Copyright (C) 2009 Simón Pena <bulfaiter@gmail.com>
+ *
+ * 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 3 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.
+ *
+ */
+
+#ifndef WATC_PROVIDER_H_
+#define WATC_PROVIDER_H_
+
+#include <stdio.h>
+#include <rest/rest/rest-proxy.h>
+
+#define WATC_SERVICE_URL "http://whatsafterthecredits.com/api.php"
+
+int watc_has_stingers(const char *name);
+
+#endif /* WATC_PROVIDER_H_ */