This repository has been archived on 2025-03-01. You can view files and clone it, but cannot push or open issues or pull requests.
trantor/tools/importer/importer.go
2014-02-14 19:32:08 +01:00

65 lines
1.3 KiB
Go

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