Set min confidence to 0.8.

Fixes #1
diff --git a/main.go b/main.go
index 22d7d41..befe90e 100644
--- a/main.go
+++ b/main.go
@@ -110,8 +110,11 @@
 	return writeResponse(w, status, errorTemplate, http.StatusText(status))
 }
 
+const version = 1
+
 type storePackage struct {
-	Data []byte
+	Data    []byte
+	Version int
 }
 
 type lintPackage struct {
@@ -129,9 +132,10 @@
 }
 
 type lintProblem struct {
-	Line     int
-	Text     string
-	LineText string
+	Line       int
+	Text       string
+	LineText   string
+	Confidence float64
 }
 
 func putPackage(c appengine.Context, importPath string, pkg *lintPackage) error {
@@ -141,15 +145,21 @@
 	}
 	_, err := datastore.Put(c,
 		datastore.NewKey(c, "Pacakge", importPath, 0, nil),
-		&storePackage{Data: buf.Bytes()})
+		&storePackage{Data: buf.Bytes(), Version: version})
 	return err
 }
 
 func getPackage(c appengine.Context, importPath string) (*lintPackage, error) {
 	var spkg storePackage
 	if err := datastore.Get(c, datastore.NewKey(c, "Pacakge", importPath, 0, nil), &spkg); err != nil {
+		if err == datastore.ErrNoSuchEntity {
+			err = nil
+		}
 		return nil, err
 	}
+	if spkg.Version != version {
+		return nil, nil
+	}
 	var pkg lintPackage
 	if err := gob.NewDecoder(bytes.NewReader(spkg.Data)).Decode(&pkg); err != nil {
 		return nil, err
@@ -184,9 +194,10 @@
 		} else {
 			for _, p := range problems {
 				file.Problems = append(file.Problems, &lintProblem{
-					Line:     p.Position.Line,
-					Text:     p.Text,
-					LineText: p.LineText,
+					Line:       p.Position.Line,
+					Text:       p.Text,
+					LineText:   p.LineText,
+					Confidence: p.Confidence,
 				})
 			}
 		}
@@ -202,6 +213,23 @@
 	return &pkg, nil
 }
 
+func filterByConfidence(r *http.Request, pkg *lintPackage) {
+	minConfidence, err := strconv.ParseFloat(r.FormValue("minConfidence"), 64)
+	if err != nil {
+		minConfidence = 0.8
+	}
+	for _, f := range pkg.Files {
+		j := 0
+		for i := range f.Problems {
+			if f.Problems[i].Confidence >= minConfidence {
+				f.Problems[j] = f.Problems[i]
+				j += 1
+			}
+		}
+		f.Problems = f.Problems[:j]
+	}
+}
+
 var setupOnce sync.Once
 
 func setup(r *http.Request) {
@@ -242,12 +270,13 @@
 		}
 		c := appengine.NewContext(r)
 		pkg, err := getPackage(c, importPath)
-		if err == datastore.ErrNoSuchEntity {
+		if pkg == nil && err == nil {
 			pkg, err = runLint(c, importPath)
 		}
 		if err != nil {
 			return err
 		}
+		filterByConfidence(r, pkg)
 		return writeResponse(w, 200, packageTemplate, pkg)
 	}
 }