valac -o $@ ${cinaest_VALAFLAGS} ${cinaest_SOURCES}
imdb_plugin_SOURCES = \
+ src/imdb/imdb-sqlite.vala \
src/imdb/plaintext-downloader-interface.vala \
src/movie.vala \
src/plugin-interface.vala \
src/plugins/imdb-plugin.vala
imdb_plugin_CSOURCES = \
+ src/imdb/imdb-sqlite.c \
src/plugins/imdb-download-dialog.c \
src/plugins/imdb-plugin.c
-imdb_plugin_VALAFLAGS = --vapidir ./vapi --pkg dbus-glib-1 --pkg hildon-1
-imdb_plugin_CFLAGS = -shared -fPIC `pkg-config --cflags dbus-glib-1 hildon-1`
-imdb_plugin_LDADD = `pkg-config --libs dbus-glib-1 hildon-1`
+imdb_plugin_VALAFLAGS = --vapidir ./vapi --pkg dbus-glib-1 --pkg hildon-1 --pkg sqlite3
+imdb_plugin_CFLAGS = -shared -fPIC `pkg-config --cflags dbus-glib-1 hildon-1 sqlite3`
+imdb_plugin_LDADD = `pkg-config --libs dbus-glib-1 hildon-1 sqlite3`
libimdb-plugin.so: ${imdb_plugin_SOURCES}
valac -C ${imdb_plugin_VALAFLAGS} ${imdb_plugin_SOURCES}
class IMDbPlugin : Plugin {
private dynamic DBus.Object server;
+ List<MovieSource> sources;
public override void hello (Gtk.Window window) {
string filename = Path.build_filename (Environment.get_user_cache_dir(),
download_imdb (window);
}
}
- }
- public override void get_movies (string filter, Plugin.ReceiveMovieFunction callback, int limit) {
- }
+ var source = new IMDBSource ();
- public override void add_movie (Movie movie) {
+ sources = new List<MovieSource> ();
+ sources.append (source);
}
private void download_imdb (Gtk.Window window) {
download.destroy ();
}
}
+
+ public override unowned List<MovieSource> get_sources () {
+ return sources;
+ }
+}
+
+class IMDBSource : MovieSource {
+ MovieSource.ReceiveMovieFunction _get_callback;
+ public override void get_movies (string filter, MovieSource.ReceiveMovieFunction callback, int limit) {
+ var sqlite = new IMDbSqlite (Path.build_filename (Environment.get_user_cache_dir (),
+ "cinaest", "imdb.db", null));
+
+ _get_callback = callback;
+ sqlite.query (filter, receive_movie);
+ }
+
+ private void receive_movie (string title, int year, int rating) {
+ Movie movie = new Movie ();
+ movie.title = title;
+ movie.year = year;
+ movie.rating = rating;
+ _get_callback (movie);
+ }
+
+ public override void add_movie (Movie movie) {
+ }
+
+ public override unowned string get_name () {
+ return "IMDb";
+ }
+
+ public override unowned string get_description () {
+ return "Movies on IMDb";
+ }
}
[ModuleInit]