IMDb plaintext downloader: optionally download actors and actresses
[cinaest] / src / imdb / imdb-plaintext-downloader.vala
index 8b95f36..c073428 100644 (file)
@@ -74,6 +74,7 @@ class IMDbDownloadServer : Object, IMDbDownloader {
                        var rating_parser = new RatingLineParser (sqlite);
                        var aka_parser = new AkaLineParser (sqlite);
                        var plot_parser = new PlotLineParser (sqlite);
+                       var person_parser = new PersonParser (sqlite);
 
                        var downloader = new FtpDownloader (cancellable);
                        downloader.progress.connect (on_progress);
@@ -105,6 +106,25 @@ class IMDbDownloadServer : Object, IMDbDownloader {
                                description_changed ("Downloading plots ...");
                                downloader.download (url + "plot.list.gz", Path.build_filename (cache_dir, "plot.list.gz"));
                        }
+                       if (ACTORS in flags) {
+                               description_changed ("Downloading actors ...");
+                               downloader.download (url + "actors.list.gz", Path.build_filename (cache_dir, "actors.list.gz"));
+                               description_changed ("Downloading actresses ...");
+                               downloader.download (url + "actresses.list.gz", Path.build_filename (cache_dir, "actresses.list.gz"));
+                       }
+                       // composers
+                       // costume-designers
+                       if (DIRECTORS in flags) {
+                               description_changed ("Downloading directors ...");
+                               downloader.download (url + "directors.list.gz", Path.build_filename (cache_dir, "directors.list.gz"));
+                       }
+                       // editors
+                       // producers
+                       // production-designers
+                       if (WRITERS in flags) {
+                               description_changed ("Downloading writers ...");
+                               downloader.download (url + "writers.list.gz", Path.build_filename (cache_dir, "writers.list.gz"));
+                       }
 
                        percent_finished = 50;
                        if (MOVIES in flags) {
@@ -131,6 +151,13 @@ class IMDbDownloadServer : Object, IMDbDownloader {
                                description_changed ("Parsing plots ...");
                                parser.parse (Path.build_filename (cache_dir, "plot.list.gz"), plot_parser);
                        }
+                       if (ACTORS in flags) {
+                               description_changed ("Parsing actors ...");
+                               parser.parse (Path.build_filename (cache_dir, "actors.list.gz"), person_parser);
+                               person_parser.reset ();
+                               description_changed ("Parsing actresses ...");
+                               parser.parse (Path.build_filename (cache_dir, "actresses.list.gz"), person_parser);
+                       }
                } catch (Error e2) {
                        if (e2 is IOError.CANCELLED)
                                stdout.printf ("Download cancelled.\n");