Add keywords updater tool
This commit is contained in:
parent
30af19cd62
commit
82ecb433df
4 changed files with 106 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -6,5 +6,6 @@ tools/getISBNnDesc/getISBNnDesc
|
||||||
tools/coverNew/coverNew
|
tools/coverNew/coverNew
|
||||||
tools/addsize/addsize
|
tools/addsize/addsize
|
||||||
tools/importer/importer
|
tools/importer/importer
|
||||||
|
tools/keywords/keywords
|
||||||
tags
|
tags
|
||||||
.*.swp
|
.*.swp
|
||||||
|
|
|
@ -15,3 +15,5 @@ Password:
|
||||||
- coverNew. Reload the cover from all the new books
|
- coverNew. Reload the cover from all the new books
|
||||||
|
|
||||||
- addsize. Add the size of the books to the book metadata
|
- addsize. Add the size of the books to the book metadata
|
||||||
|
|
||||||
|
- keywords. Recalculate keywords
|
||||||
|
|
40
tools/keywords/config.go
Normal file
40
tools/keywords/config.go
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
const (
|
||||||
|
PORT = "8080"
|
||||||
|
|
||||||
|
DB_IP = "127.0.0.1"
|
||||||
|
DB_NAME = "trantor"
|
||||||
|
META_COLL = "meta"
|
||||||
|
FS_BOOKS = "fs_books"
|
||||||
|
FS_IMGS = "fs_imgs"
|
||||||
|
|
||||||
|
PASS_SALT = "ImperialLibSalt"
|
||||||
|
MINUTES_UPDATE_TAGS = 11
|
||||||
|
MINUTES_UPDATE_VISITED = 41
|
||||||
|
MINUTES_UPDATE_DOWNLOADED = 47
|
||||||
|
MINUTES_UPDATE_HOURLY_V = 31
|
||||||
|
MINUTES_UPDATE_DAILY_V = 60*12 + 7
|
||||||
|
MINUTES_UPDATE_MONTHLY_V = 60*24 + 11
|
||||||
|
MINUTES_UPDATE_HOURLY_D = 29
|
||||||
|
MINUTES_UPDATE_DAILY_D = 60*12 + 13
|
||||||
|
MINUTES_UPDATE_MONTHLY_D = 60*24 + 17
|
||||||
|
MINUTES_UPDATE_LOGGER = 5
|
||||||
|
BOOKS_FRONT_PAGE = 6
|
||||||
|
SEARCH_ITEMS_PAGE = 20
|
||||||
|
NEW_ITEMS_PAGE = 50
|
||||||
|
NUM_NEWS = 10
|
||||||
|
DAYS_NEWS_INDEXPAGE = 15
|
||||||
|
|
||||||
|
TEMPLATE_PATH = "templates/"
|
||||||
|
CSS_PATH = "css/"
|
||||||
|
JS_PATH = "js/"
|
||||||
|
IMG_PATH = "img/"
|
||||||
|
LOGGER_CONFIG = "logger.xml"
|
||||||
|
|
||||||
|
IMG_WIDTH_BIG = 300
|
||||||
|
IMG_WIDTH_SMALL = 60
|
||||||
|
IMG_QUALITY = 80
|
||||||
|
|
||||||
|
CHAN_SIZE = 100
|
||||||
|
)
|
63
tools/keywords/keywords.go
Normal file
63
tools/keywords/keywords.go
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"git.gitorious.org/trantor/trantor.git/database"
|
||||||
|
"gopkgs.com/unidecode.v1"
|
||||||
|
"labix.org/v2/mgo/bson"
|
||||||
|
"strings"
|
||||||
|
"unicode"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
db := database.Init(DB_IP, DB_NAME)
|
||||||
|
defer db.Close()
|
||||||
|
|
||||||
|
books, _, err := db.GetBooks(bson.M{}, 0, 0)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, b := range books {
|
||||||
|
fmt.Println(b.Title)
|
||||||
|
book := map[string]interface{}{
|
||||||
|
"title": b.Title,
|
||||||
|
"author": b.Author,
|
||||||
|
"publisher": b.Publisher,
|
||||||
|
"subject": b.Subject,
|
||||||
|
}
|
||||||
|
k := keywords(book)
|
||||||
|
book = map[string]interface{}{"keywords": k}
|
||||||
|
id := bson.ObjectIdHex(b.Id)
|
||||||
|
err := db.UpdateBook(id, book)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func keywords(b map[string]interface{}) (k []string) {
|
||||||
|
title, _ := b["title"].(string)
|
||||||
|
k = tokens(title)
|
||||||
|
author, _ := b["author"].([]string)
|
||||||
|
for _, a := range author {
|
||||||
|
k = append(k, tokens(a)...)
|
||||||
|
}
|
||||||
|
publisher, _ := b["publisher"].(string)
|
||||||
|
k = append(k, tokens(publisher)...)
|
||||||
|
subject, _ := b["subject"].([]string)
|
||||||
|
for _, s := range subject {
|
||||||
|
k = append(k, tokens(s)...)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func tokens(str string) []string {
|
||||||
|
str = unidecode.Unidecode(str)
|
||||||
|
str = strings.ToLower(str)
|
||||||
|
f := func(r rune) bool {
|
||||||
|
return unicode.IsControl(r) || unicode.IsPunct(r) || unicode.IsSpace(r)
|
||||||
|
}
|
||||||
|
return strings.FieldsFunc(str, f)
|
||||||
|
}
|
Reference in a new issue