X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fimdb%2Fimdb-sqlite.vala;h=ff9edcbf91de4398bcc5635bb2b147ab7f634fd1;hb=e0d6417e36aa8a6c6c705e186ffa81ab3ca2d141;hp=a49160c0a0831213e97445174697551c7d6fa71f;hpb=0895fbdb5e3cc7aac90107695122edb937c8924b;p=cinaest diff --git a/src/imdb/imdb-sqlite.vala b/src/imdb/imdb-sqlite.vala index a49160c..ff9edcb 100644 --- a/src/imdb/imdb-sqlite.vala +++ b/src/imdb/imdb-sqlite.vala @@ -406,6 +406,36 @@ class IMDbSqlite : Object { return ""; } + public List get_cast (string title) { + int rowid; + string sql = "SELECT Name,Character FROM Actors,People WHERE TitleID IN (SELECT rowid FROM Movies WHERE Title=\"%s\") AND ActorID=People.rowid AND Number>0 ORDER BY NUMBER LIMIT 3".printf (title); + Statement stmt; + int rc; + int count = 0; + var cast = new List (); + + if (!movie_exists (title, out rowid)) + return null; + + rc = db.prepare_v2 (sql, -1, out stmt); + if (rc != Sqlite.OK) { + stderr.printf ("SQL error: %d, %s\n", rc, db.errmsg ()); + return null; + } + + do { + rc = stmt.step (); + if (rc == Sqlite.ROW) { + var role = new Role (); + role.actor_name = stmt.column_text (0); + role.character = stmt.column_text (1); + cast.append (role); + } + } while (rc == Sqlite.ROW); + + return cast; + } + public int clear () { int rc;