}
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) {
}
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
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;