44 lines
1.4 KiB
Go
44 lines
1.4 KiB
Go
package models
|
||
|
||
import (
|
||
"html/template"
|
||
"main/mvc/models/models_pages"
|
||
"time"
|
||
)
|
||
|
||
type App struct {
|
||
Cfg *Config // Сонфиг
|
||
Posts models_pages.Posts // Посты
|
||
Templates *template.Template // Шаблоны страниц
|
||
PagesCache *Cache // Кэш (отрендеренные странички)
|
||
LastfmLastTrack string // Последний трек, полученный с ластфм
|
||
Version int64 // Время запуска
|
||
}
|
||
|
||
// Инициализирует приложение
|
||
func InitApp() (*App, error) {
|
||
var err error
|
||
|
||
app := &App{}
|
||
|
||
// Версия чтобы статика не кэшировалась
|
||
app.Version = time.Now().Unix()
|
||
// Загрузка конфига
|
||
if app.Cfg, err = loadConfig(ConfigPath); err != nil {
|
||
return nil, err
|
||
}
|
||
// Загрузка постов
|
||
if app.Posts, err = models_pages.LoadPosts(app.Cfg.PostsDir); err != nil {
|
||
return nil, err
|
||
}
|
||
// Загрузка шаблонов
|
||
if app.Templates, err = loadTemplates(app.Cfg.TemplatesDir, app.Cfg.TemplatesExt); err != nil {
|
||
return nil, err
|
||
}
|
||
// Инициализация кэша
|
||
app.PagesCache = initCache()
|
||
// Строка по умолчанию для последнего прослушанного трека
|
||
app.LastfmLastTrack = "None"
|
||
return app, nil
|
||
}
|