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
26 //start the server
27 //http server start
28 readServerConfig("./serverConfig.json")
29
30 //read the filenames of the dataset
31 readDataset(serverConfig.ImgsFolder)
32 log.Println("dataset read")
33 log.Println("num of dataset categories: " + strconv.Itoa(len(dataset)))
34
35 log.Println("server running")
36 log.Print("port: ")
37 log.Println(serverConfig.ServerPort)
38 router := NewRouter()
39
40 headersOk := handlers.AllowedHeaders([]string{"X-Requested-With", "Access-Control-Allow-Origin"})
41 originsOk := handlers.AllowedOrigins([]string{"*"})
42 methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
43 log.Fatal(http.ListenAndServe(":"+serverConfig.ServerPort, handlers.CORS(originsOk, headersOk, methodsOk)(router)))
44}