Better blog article caching.

This commit is contained in:
Marvin Blum
2020-06-14 15:30:35 +02:00
committed by Marvin Blum
parent 7dffebf923
commit c7872b9cc5

View File

@@ -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
}