IMDb plugin: display the 100 most voted upon movies if no filter is set
[cinaest] / src / plugins / imdb-plugin.vala
index d03a0eb..887b79a 100644 (file)
@@ -163,25 +163,27 @@ class IMDBSource : MovieSource {
        }
 
        MovieSource.ReceiveMovieFunction _get_callback;
-       public override async void get_movies (MovieFilter filter, MovieSource.ReceiveMovieFunction callback, int limit, Cancellable? cancellable) {
-               // IMDb has too many movies
-               if (filter.title == "" && filter.year_min == 0 && filter.year_max == 0 && filter.genres.field == 0 && filter.rating_min == 0)
-                       return;
+       public override async int get_movies (MovieFilter filter, MovieSource.ReceiveMovieFunction callback, int limit, Cancellable? cancellable) {
                var sqlite = new IMDbSqlite (Path.build_filename (Environment.get_user_cache_dir (),
                                             "cinaest", "imdb.db", null));
 
                _get_callback = callback;
-               yield sqlite.query (filter, receive_movie, limit, cancellable);
+               int n = yield sqlite.query (filter, receive_movie, limit, cancellable);
+               return n;
        }
 
-       private void receive_movie (string title, int year, int rating, int genres) {
+       private void receive_movie (string title, string? aka, int year, int rating, int genres) {
                Movie movie = new Movie ();
                movie.title = title;
                movie.year = year;
                movie.rating = rating;
                movie.genres.field = genres;
                // TODO - depending on settings, this could be something else, like director info or runtime
-               movie.secondary = movie.genres.to_string ();
+               if (aka != null) {
+                       movie.secondary = "aka \"%s\" - %s".printf (aka, movie.genres.to_string ());
+               } else {
+                       movie.secondary = movie.genres.to_string ();
+               }
                _get_callback (movie);
        }
 
@@ -196,7 +198,7 @@ class IMDBSource : MovieSource {
        }
 
        public override unowned string get_description () {
-               return "Movies on IMDb";
+               return _("Movies on IMDb");
        }
 
        public override bool get_editable () {