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/upload.go
2012-07-27 16:03:09 +02:00

60 lines
1 KiB
Go

package main
import (
"fmt"
"os"
"git.gitorious.org/go-pkg/epub.git"
"labix.org/v2/mgo"
)
const (
IP = "127.0.0.1"
DB_NAME = "trantor"
BOOKS_COLL = "books"
PATH = "./books/"
)
func store(coll *mgo.Collection, path string) {
var book Book
e, err := epub.Open(path, 0)
if err != nil {
fmt.Println(path)
panic(err) // TODO: do something
}
defer e.Close()
// TODO: do it for all metadata
book.Title = e.Metadata(epub.EPUB_TITLE)
book.Creator = e.Metadata(epub.EPUB_CREATOR)
book.Subject = e.Metadata(epub.EPUB_SUBJECT)
book.Lang = e.Metadata(epub.EPUB_LANG)
book.Path = path
coll.Insert(book)
}
func main() {
session, err := mgo.Dial(IP)
if err != nil {
panic(err) // TODO: do something
}
defer session.Close()
coll := session.DB(DB_NAME).C(BOOKS_COLL)
f, err := os.Open(PATH)
if err != nil {
fmt.Println(PATH)
panic(err) // TODO: do something
}
names, err := f.Readdirnames(0)
if err != nil {
panic(err) // TODO: do something
}
for _, name := range names {
store(coll, PATH + name)
}
}