X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fimdb%2Fimdb-line-parser.vala;h=1218cbf3eb70621795b86ed8a8b56324e9f7144b;hb=c1eb404e7a5179d6df22bfa4d7878361f2e6844b;hp=25d165833f9d40e656f8249cd0fc002eaed98eaf;hpb=ec13e711f3c3797eb222cdf4d1788030efbf3400;p=cinaest diff --git a/src/imdb/imdb-line-parser.vala b/src/imdb/imdb-line-parser.vala index 25d1658..1218cbf 100644 --- a/src/imdb/imdb-line-parser.vala +++ b/src/imdb/imdb-line-parser.vala @@ -93,10 +93,16 @@ class GenreLineParser : LineParser { } class RatingLineParser : LineParser { + enum RatingState { + HEADER, + NONE + } + RatingState state; Regex re_rating; public RatingLineParser (IMDbSqlite _sqlite) { base (_sqlite); + state = RatingState.HEADER; try { re_rating = new Regex ("^ .+ +([0-9]+) +([0-9.]+) +(.+)$"); } catch (RegexError e) { @@ -105,6 +111,15 @@ class RatingLineParser : LineParser { } public override void parse_line (string line) { + if (state == RatingState.HEADER) { + if (line == "MOVIE RATINGS REPORT") + state = RatingState.NONE; + return; + } + + if (state != RatingState.NONE) + return; + MatchInfo matchinfo; // Skip series episodes @@ -117,7 +132,7 @@ class RatingLineParser : LineParser { string title; string votes = matchinfo.fetch (1); string rating = matchinfo.fetch (2); - try { + try { title = convert(matchinfo.fetch (3), -1, "utf-8", "latin1"); } catch (ConvertError e) { return;