goCaptcha/main.go
main.goRaw
1package main
2
3import (
4 "log"
5 "math/rand"
6 "net/http"
7 "strconv"
8 "time"
9
10 "github.com/gorilla/handlers"
11)
12
13func main() {
14 savelog()
15 log.Println("goCaptcha started")
16 rand.Seed(time.Now().UTC().UnixNano())
17
18 //connect with mongodb
19 readMongodbConfig("./mongodbConfig.json")
20 session, err := getSession()
21 check(err)
22 //captchaCollection = getCollection(session, "captchas")
23 captchaSolCollection = getCollection(session, "captchassolutions")
24 imgFakePathCollection = getCollection(session, "imgfakepath")
25 suspiciousIPCollection = getCollection(session, "suspiciousip")
26
27 //start the server
28 //http server start
29 readServerConfig("./serverConfig.json")
30
31 //read the filenames of the dataset
32 readDataset(serverConfig.ImgsFolder)
33 log.Println("dataset read")
34 log.Println("num of dataset categories: " + strconv.Itoa(len(dataset)))
35
36 log.Println("server running")
37 log.Print("port: ")
38 log.Println(serverConfig.ServerPort)
39 router := NewRouter()
40
41 headersOk := handlers.AllowedHeaders([]string{"X-Requested-With", "Access-Control-Allow-Origin"})
42 originsOk := handlers.AllowedOrigins([]string{"*"})
43 methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
44 log.Fatal(http.ListenAndServe(":"+serverConfig.ServerPort, handlers.CORS(originsOk, headersOk, methodsOk)(router)))
45}