package main

import log "github.com/cihub/seelog"

import (
	"git.gitorious.org/go-pkg/epubgo.git"
	"net/http"
	"os"
)

func main() {
	db := initDB()
	defer db.Close()

	for _, file := range os.Args[1:len(os.Args)] {
		uploadEpub(file, db)
	}
}

func uploadEpub(filename string, db *DB) {
	epub, err := epubgo.Open(filename)
	if err != nil {
		log.Error("Not valid epub '", filename, "': ", err)
		return
	}
	defer epub.Close()

	book := parseFile(epub, db)
	title, _ := book["title"].(string)
	_, numTitleFound, _ := db.GetBooks(buildQuery("title:"+title), 1)
	if numTitleFound == 0 {
		book["active"] = true
	}

	file, _ := os.Open(filename)
	defer file.Close()
	id, size, err := StoreNewFile(title+".epub", file, db)
	if err != nil {
		log.Error("Error storing book (", title, "): ", err)
		return
	}

	book["file"] = id
	book["filesize"] = size
	err = db.InsertBook(book)
	if err != nil {
		log.Error("Error storing metadata (", title, "): ", err)
		return
	}
	log.Info("File uploaded: ", filename)
}

type Status struct {
	Upload bool
	Stats  bool
	Search string
}

func GetStatus(h handler) Status {
	return Status{}
}

func loadTemplate(w http.ResponseWriter, tmpl string, data interface{})    {}
func loadTxtTemplate(w http.ResponseWriter, tmpl string, data interface{}) {}
func notFound(h handler)                                                   {}