From 0e0e33d364ead89f107212d5c123e9cd9862c72d Mon Sep 17 00:00:00 2001 From: Las Zenow Date: Mon, 20 Aug 2012 15:38:13 +0200 Subject: [PATCH] Remove upload standalone program All the functionality is move to the web page --- upload.go | 1 - upload/database.go | 23 ----- upload/upload.go | 221 --------------------------------------------- 3 files changed, 245 deletions(-) delete mode 100644 upload/database.go delete mode 100644 upload/upload.go diff --git a/upload.go b/upload.go index 08faa3d..3ab5b94 100644 --- a/upload.go +++ b/upload.go @@ -3,7 +3,6 @@ package main import ( "git.gitorious.org/go-pkg/epub.git" "labix.org/v2/mgo" - //"labix.org/v2/mgo/bson" "net/http" "os" "os/exec" diff --git a/upload/database.go b/upload/database.go deleted file mode 100644 index 1688b37..0000000 --- a/upload/database.go +++ /dev/null @@ -1,23 +0,0 @@ -package main - -type Book struct { - Title string - Author []string - Contributor string - Publisher string - Description string - Subject []string - Date string - Lang []string - Type string - Format string - Source string - Relation string - Coverage string - Rights string - Meta string - Path string - Cover string - CoverSmall string - Keywords []string -} diff --git a/upload/upload.go b/upload/upload.go deleted file mode 100644 index 4139fe1..0000000 --- a/upload/upload.go +++ /dev/null @@ -1,221 +0,0 @@ -package main - -import ( - "fmt" - "git.gitorious.org/go-pkg/epub.git" - "labix.org/v2/mgo" - "os" - "os/exec" - "regexp" - "strings" -) - -const ( - IP = "127.0.0.1" - DB_NAME = "trantor" - BOOKS_COLL = "books" - PATH = "books/" - NEW_PATH = "new/" - COVER_PATH = "cover/" - RESIZE = "/usr/bin/convert -resize 300 -quality 60 " - RESIZE_THUMB = "/usr/bin/convert -resize 60 -quality 60 " -) - -func cleanStr(str string) string { - str = strings.Replace(str, "'", "'", -1) - exp, _ := regexp.Compile("[ ,]*$") - str = exp.ReplaceAllString(str, "") - return str -} - -func resize(folder, name, extension string) (string, string) { - imgPath := folder + name + extension - resize := append(strings.Split(RESIZE, " "), imgPath, imgPath) - cmd := exec.Command(resize[0], resize[1:]...) - cmd.Run() - imgPathSmall := folder + name + "_small" + extension - resize = append(strings.Split(RESIZE_THUMB, " "), imgPath, imgPathSmall) - cmd = exec.Command(resize[0], resize[1:]...) - cmd.Run() - return "/" + imgPath, "/" + imgPathSmall -} - -func getCover(e *epub.Epub, path string) (string, string) { - folder := COVER_PATH + path[:1] + "/" - os.Mkdir(folder, os.ModePerm) - - /* Try first common names */ - imgPath := folder + path + ".jpg" - file, _ := os.Create(imgPath) - defer file.Close() - n, _ := file.Write(e.Data("cover.jpg")) - if n != 0 { - return resize(folder, path, ".jpg") - } - n, _ = file.Write(e.Data("cover.jpeg")) - if n != 0 { - return resize(folder, path, ".jpg") - } - n, _ = file.Write(e.Data("cover1.jpg")) - if n != 0 { - return resize(folder, path, ".jpg") - } - n, _ = file.Write(e.Data("cover1.jpeg")) - if n != 0 { - return resize(folder, path, ".jpg") - } - os.Remove(imgPath) - - exp, _ := regexp.Compile("]*>") - str = exp.ReplaceAllString(str, "") - str = strings.Replace(str, "&", "&", -1) - str = strings.Replace(str, "<", "<", -1) - str = strings.Replace(str, ">", ">", -1) - str = strings.Replace(str, "\\n", "\n", -1) - return str -} - -func parseSubject(subject []string) []string { - var res []string - for _, s := range subject { - res = append(res, strings.Split(s, " / ")...) - } - return res -} - -func parseDate(date []string) string { - if len(date) == 0 { - return "" - } - return strings.Replace(date[0], "Unspecified: ", "", -1) -} - -func keywords(b Book) (k []string) { - k = strings.Split(b.Title, " ") - for _, a := range b.Author { - k = append(k, strings.Split(a, " ")...) - } - k = append(k, strings.Split(b.Publisher, " ")...) - k = append(k, b.Subject...) - return -} - -func store(coll *mgo.Collection, path string) { - var book Book - - fmt.Println(path) - e, err := epub.Open(NEW_PATH+path, 0) - if err != nil { - panic(err) // TODO: do something - } - defer e.Close() - - book.Title = cleanStr(strings.Join(e.Metadata(epub.EPUB_TITLE), ", ")) - book.Author = parseAuthr(e.Metadata(epub.EPUB_CREATOR)) - book.Contributor = cleanStr(strings.Join(e.Metadata(epub.EPUB_CONTRIB), ", ")) - book.Publisher = cleanStr(strings.Join(e.Metadata(epub.EPUB_PUBLISHER), ", ")) - book.Description = parseDescription(e.Metadata(epub.EPUB_DESCRIPTION)) - book.Subject = parseSubject(e.Metadata(epub.EPUB_SUBJECT)) - book.Date = parseDate(e.Metadata(epub.EPUB_DATE)) - book.Lang = e.Metadata(epub.EPUB_LANG) - book.Type = strings.Join(e.Metadata(epub.EPUB_TYPE), ", ") - book.Format = strings.Join(e.Metadata(epub.EPUB_FORMAT), ", ") - book.Source = strings.Join(e.Metadata(epub.EPUB_SOURCE), ", ") - book.Relation = strings.Join(e.Metadata(epub.EPUB_RELATION), ", ") - book.Coverage = strings.Join(e.Metadata(epub.EPUB_COVERAGE), ", ") - book.Rights = strings.Join(e.Metadata(epub.EPUB_RIGHTS), ", ") - book.Meta = strings.Join(e.Metadata(epub.EPUB_META), ", ") - book.Path = PATH + path[:1] + "/" + path - book.Cover, book.CoverSmall = getCover(e, path) - book.Keywords = keywords(book) - coll.Insert(book) - - os.Mkdir(PATH+path[:1], os.ModePerm) - cmd := exec.Command("mv", NEW_PATH+path, book.Path) - cmd.Run() -} - -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(NEW_PATH) - if err != nil { - fmt.Println(NEW_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, name) - } -}