mirror of
https://github.com/Kugelschieber/marvinblum.git
synced 2026-01-18 06:40:27 +00:00
Better blog article caching.
This commit is contained in:
14
blog/blog.go
14
blog/blog.go
@@ -13,7 +13,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
blogCacheTime = time.Hour
|
||||
blogCacheTime = time.Minute * 15
|
||||
blogFileCache = "static/blog"
|
||||
maxLatestArticles = 3
|
||||
)
|
||||
@@ -115,7 +115,12 @@ func (blog *Blog) loadArticles() {
|
||||
}
|
||||
|
||||
func (blog *Blog) loadArticle(article emvi.Article) *emvi.ArticleContent {
|
||||
_, content, _, err := blog.client.GetArticle(article.Id, article.LatestArticleContent.LanguageId, 0)
|
||||
existingArticle := blog.articles[article.Id]
|
||||
var content *emvi.ArticleContent
|
||||
|
||||
if len(existingArticle.Id) == 0 || !existingArticle.ModTime.Equal(article.ModTime) {
|
||||
var err error
|
||||
_, content, _, err = blog.client.GetArticle(article.Id, article.LatestArticleContent.LanguageId, 0)
|
||||
|
||||
if err != nil {
|
||||
logbuch.Error("Error loading article", logbuch.Fields{"err": err, "id": article.Id})
|
||||
@@ -126,6 +131,11 @@ func (blog *Blog) loadArticle(article emvi.Article) *emvi.ArticleContent {
|
||||
content.Content = linkRegex.ReplaceAllString(content.Content, `href="/blog/$1"`)
|
||||
content.Content = attachmentRegex.ReplaceAllString(content.Content, fmt.Sprintf(`$1="/static/blog/%s/$3"`, article.Id))
|
||||
logbuch.Debug("Article loaded", logbuch.Fields{"id": article.Id})
|
||||
} else {
|
||||
content = existingArticle.LatestArticleContent
|
||||
logbuch.Debug("Article up to date, skipping refreshing cache", logbuch.Fields{"id": article.Id})
|
||||
}
|
||||
|
||||
return content
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user