diff --git a/config.go b/config.go index 75f3a1a..bb028fb 100644 --- a/config.go +++ b/config.go @@ -1,48 +1,10 @@ package main const ( - HOST_URL = "xfmro77i3lixucja.onion" - PORT = "8080" + PORT = "8080" - DB_IP = "127.0.0.1" - DB_NAME = "trantor" - META_COLL = "meta" + DB_IP = "127.0.0.1" + DB_NAME = "trantor" - EPUB_FILE = "book.epub" - COVER_FILE = "cover.jpg" - COVER_SMALL_FILE = "coverSmall.jpg" - - 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 - CACHE_MAX_AGE = 1800 - - STORE_PATH = "store/" - TEMPLATE_PATH = "templates/" - CSS_PATH = "css/" - JS_PATH = "js/" - IMG_PATH = "img/" - ROBOTS_PATH = "robots.txt" - DESCRIPTION_PATH = "description.json" - OPENSEARCH_PATH = "opensearch.xml" - KEY_PATH = "key.asc" - LOGGER_CONFIG = "logger.xml" - - IMG_WIDTH_BIG = 300 - IMG_WIDTH_SMALL = 60 - IMG_QUALITY = 80 - - CHAN_SIZE = 100 + STORE_PATH = "store/" ) diff --git a/admin.go b/lib/admin.go similarity index 98% rename from admin.go rename to lib/admin.go index e2e08a1..61e6105 100644 --- a/admin.go +++ b/lib/admin.go @@ -1,4 +1,4 @@ -package main +package trantor import ( log "github.com/cihub/seelog" @@ -8,7 +8,7 @@ import ( "strings" "github.com/gorilla/mux" - "gitlab.com/trantor/trantor/database" + "gitlab.com/trantor/trantor/lib/database" ) func deleteHandler(h handler) { diff --git a/lib/config.go b/lib/config.go new file mode 100644 index 0000000..5700bb5 --- /dev/null +++ b/lib/config.go @@ -0,0 +1,44 @@ +package trantor + +const ( + HOST_URL = "xfmro77i3lixucja.onion" + + META_COLL = "meta" + + EPUB_FILE = "book.epub" + COVER_FILE = "cover.jpg" + COVER_SMALL_FILE = "coverSmall.jpg" + + 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 + CACHE_MAX_AGE = 1800 + + TEMPLATE_PATH = "templates/" + CSS_PATH = "css/" + JS_PATH = "js/" + IMG_PATH = "img/" + ROBOTS_PATH = "robots.txt" + DESCRIPTION_PATH = "description.json" + OPENSEARCH_PATH = "opensearch.xml" + KEY_PATH = "key.asc" + LOGGER_CONFIG = "logger.xml" + + IMG_WIDTH_BIG = 300 + IMG_WIDTH_SMALL = 60 + IMG_QUALITY = 80 + + CHAN_SIZE = 100 +) diff --git a/cover.go b/lib/cover.go similarity index 98% rename from cover.go rename to lib/cover.go index d5034e8..7170678 100644 --- a/cover.go +++ b/lib/cover.go @@ -1,4 +1,4 @@ -package main +package trantor import ( _ "image/gif" @@ -18,7 +18,7 @@ import ( "github.com/gorilla/mux" "github.com/meskio/epubgo" "github.com/nfnt/resize" - "gitlab.com/trantor/trantor/storage" + "gitlab.com/trantor/trantor/lib/storage" ) func coverHandler(h handler) { diff --git a/database/books.go b/lib/database/books.go similarity index 100% rename from database/books.go rename to lib/database/books.go diff --git a/database/books_test.go b/lib/database/books_test.go similarity index 100% rename from database/books_test.go rename to lib/database/books_test.go diff --git a/database/database.go b/lib/database/database.go similarity index 100% rename from database/database.go rename to lib/database/database.go diff --git a/database/database_test.go b/lib/database/database_test.go similarity index 100% rename from database/database_test.go rename to lib/database/database_test.go diff --git a/database/news.go b/lib/database/news.go similarity index 100% rename from database/news.go rename to lib/database/news.go diff --git a/database/news_test.go b/lib/database/news_test.go similarity index 100% rename from database/news_test.go rename to lib/database/news_test.go diff --git a/database/stats.go b/lib/database/stats.go similarity index 100% rename from database/stats.go rename to lib/database/stats.go diff --git a/database/users.go b/lib/database/users.go similarity index 100% rename from database/users.go rename to lib/database/users.go diff --git a/database/users_test.go b/lib/database/users_test.go similarity index 100% rename from database/users_test.go rename to lib/database/users_test.go diff --git a/news.go b/lib/news.go similarity index 95% rename from news.go rename to lib/news.go index ad07310..8c2ad9e 100644 --- a/news.go +++ b/lib/news.go @@ -1,9 +1,9 @@ -package main +package trantor import ( "net/http" - "gitlab.com/trantor/trantor/database" + "gitlab.com/trantor/trantor/lib/database" ) type newsData struct { diff --git a/parser/isbn.go b/lib/parser/isbn.go similarity index 100% rename from parser/isbn.go rename to lib/parser/isbn.go diff --git a/parser/isbn_test.go b/lib/parser/isbn_test.go similarity index 100% rename from parser/isbn_test.go rename to lib/parser/isbn_test.go diff --git a/parser/language.go b/lib/parser/language.go similarity index 100% rename from parser/language.go rename to lib/parser/language.go diff --git a/parser/parser.go b/lib/parser/parser.go similarity index 100% rename from parser/parser.go rename to lib/parser/parser.go diff --git a/reader.go b/lib/reader.go similarity index 98% rename from reader.go rename to lib/reader.go index 87528bd..f4967be 100644 --- a/reader.go +++ b/lib/reader.go @@ -1,4 +1,4 @@ -package main +package trantor import ( log "github.com/cihub/seelog" @@ -10,7 +10,7 @@ import ( "github.com/gorilla/mux" "github.com/meskio/epubgo" - "gitlab.com/trantor/trantor/database" + "gitlab.com/trantor/trantor/lib/database" ) type chapter struct { diff --git a/search.go b/lib/search.go similarity index 95% rename from search.go rename to lib/search.go index 57065a6..f6e16ed 100644 --- a/search.go +++ b/lib/search.go @@ -1,11 +1,11 @@ -package main +package trantor import ( "net/http" "strconv" "strings" - "gitlab.com/trantor/trantor/database" + "gitlab.com/trantor/trantor/lib/database" ) type searchData struct { diff --git a/session.go b/lib/session.go similarity index 96% rename from session.go rename to lib/session.go index b33a28d..2338d9c 100644 --- a/session.go +++ b/lib/session.go @@ -1,4 +1,4 @@ -package main +package trantor import ( "encoding/hex" @@ -6,7 +6,7 @@ import ( "github.com/gorilla/securecookie" "github.com/gorilla/sessions" - "gitlab.com/trantor/trantor/database" + "gitlab.com/trantor/trantor/lib/database" ) var sesStore = sessions.NewCookieStore(securecookie.GenerateRandomKey(64)) diff --git a/stats.go b/lib/stats.go similarity index 97% rename from stats.go rename to lib/stats.go index 26c96ab..55ca515 100644 --- a/stats.go +++ b/lib/stats.go @@ -1,4 +1,4 @@ -package main +package trantor import ( log "github.com/cihub/seelog" @@ -9,8 +9,8 @@ import ( "time" "github.com/gorilla/mux" - "gitlab.com/trantor/trantor/database" - "gitlab.com/trantor/trantor/storage" + "gitlab.com/trantor/trantor/lib/database" + "gitlab.com/trantor/trantor/lib/storage" ) const ( diff --git a/storage/dir.go b/lib/storage/dir.go similarity index 100% rename from storage/dir.go rename to lib/storage/dir.go diff --git a/storage/storage.go b/lib/storage/storage.go similarity index 100% rename from storage/storage.go rename to lib/storage/storage.go diff --git a/storage/storage_test.go b/lib/storage/storage_test.go similarity index 100% rename from storage/storage_test.go rename to lib/storage/storage_test.go diff --git a/tasker.go b/lib/tasker.go similarity index 89% rename from tasker.go rename to lib/tasker.go index c9735e8..a177b8a 100644 --- a/tasker.go +++ b/lib/tasker.go @@ -1,15 +1,15 @@ -package main +package trantor import ( log "github.com/cihub/seelog" "time" - "gitlab.com/trantor/trantor/database" + "gitlab.com/trantor/trantor/lib/database" ) func InitTasks(db *database.DB) { - periodicTask(updateLogger, MINUTES_UPDATE_LOGGER*time.Minute) + periodicTask(UpdateLogger, MINUTES_UPDATE_LOGGER*time.Minute) periodicTask(db.UpdateTags, MINUTES_UPDATE_TAGS*time.Minute) periodicTask(db.UpdateMostVisited, MINUTES_UPDATE_VISITED*time.Minute) periodicTask(db.UpdateDownloadedBooks, MINUTES_UPDATE_DOWNLOADED*time.Minute) diff --git a/template.go b/lib/template.go similarity index 98% rename from template.go rename to lib/template.go index f82a4f8..33f685c 100644 --- a/template.go +++ b/lib/template.go @@ -1,4 +1,4 @@ -package main +package trantor import ( txt_tmpl "text/template" @@ -11,7 +11,7 @@ import ( "net/http" "time" - "gitlab.com/trantor/trantor/database" + "gitlab.com/trantor/trantor/lib/database" ) type Status struct { diff --git a/trantor.go b/lib/trantor.go similarity index 90% rename from trantor.go rename to lib/trantor.go index 5253fb9..377fb37 100644 --- a/trantor.go +++ b/lib/trantor.go @@ -1,4 +1,4 @@ -package main +package trantor import ( log "github.com/cihub/seelog" @@ -6,12 +6,10 @@ import ( "fmt" "io" "net/http" - "os" "strings" "github.com/gorilla/mux" - "gitlab.com/trantor/trantor/database" - "gitlab.com/trantor/trantor/storage" + "gitlab.com/trantor/trantor/lib/database" ) type statusData struct { @@ -147,7 +145,7 @@ func notFound(h handler) { loadTemplate(h, "404", data) } -func updateLogger() error { +func UpdateLogger() error { logger, err := log.LoggerFromConfigAsFile(LOGGER_CONFIG) if err != nil { return err @@ -156,32 +154,7 @@ func updateLogger() error { return log.ReplaceLogger(logger) } -func main() { - defer log.Flush() - err := updateLogger() - if err != nil { - log.Error("Error loading the logger xml: ", err) - } - log.Info("Start the imperial library of trantor") - - db := database.Init(DB_IP, DB_NAME) - defer db.Close() - - store, err := storage.Init(STORE_PATH) - if err != nil { - log.Critical("Problem initializing store: ", err) - os.Exit(1) - } - - InitTasks(db) - sg := InitStats(db, store) - InitUpload(db, store) - - initRouter(db, sg) - log.Error(http.ListenAndServe(":"+PORT, nil)) -} - -func initRouter(db *database.DB, sg *StatsGatherer) { +func InitRouter(db *database.DB, sg *StatsGatherer) { const id_pattern = "[0-9a-zA-Z\\-\\_]{16}" r := mux.NewRouter() diff --git a/upload.go b/lib/upload.go similarity index 94% rename from upload.go rename to lib/upload.go index 030e4b3..770a1f3 100644 --- a/upload.go +++ b/lib/upload.go @@ -1,4 +1,4 @@ -package main +package trantor import ( log "github.com/cihub/seelog" @@ -10,9 +10,9 @@ import ( "mime/multipart" "github.com/meskio/epubgo" - "gitlab.com/trantor/trantor/database" - "gitlab.com/trantor/trantor/parser" - "gitlab.com/trantor/trantor/storage" + "gitlab.com/trantor/trantor/lib/database" + "gitlab.com/trantor/trantor/lib/parser" + "gitlab.com/trantor/trantor/lib/storage" ) func InitUpload(database *database.DB, store *storage.Store) { diff --git a/user.go b/lib/user.go similarity index 99% rename from user.go rename to lib/user.go index c00d22b..dc02838 100644 --- a/user.go +++ b/lib/user.go @@ -1,4 +1,4 @@ -package main +package trantor import ( log "github.com/cihub/seelog" diff --git a/main.go b/main.go new file mode 100644 index 0000000..e395749 --- /dev/null +++ b/main.go @@ -0,0 +1,46 @@ +package main + +import ( + log "github.com/cihub/seelog" + + "net/http" + "os" + + "gitlab.com/trantor/trantor/lib" + "gitlab.com/trantor/trantor/lib/database" + "gitlab.com/trantor/trantor/lib/storage" +) + +const ( + PORT = "8080" + + DB_IP = "127.0.0.1" + DB_NAME = "trantor" + + STORE_PATH = "store/" +) + +func main() { + defer log.Flush() + err := trantor.UpdateLogger() + if err != nil { + log.Error("Error loading the logger xml: ", err) + } + log.Info("Start the imperial library of trantor") + + db := database.Init(DB_IP, DB_NAME) + defer db.Close() + + store, err := storage.Init(STORE_PATH) + if err != nil { + log.Critical("Problem initializing store: ", err) + os.Exit(1) + } + + trantor.InitTasks(db) + sg := trantor.InitStats(db, store) + trantor.InitUpload(db, store) + + trantor.InitRouter(db, sg) + log.Error(http.ListenAndServe(":"+PORT, nil)) +}