2023-01-12 12:42:16 +00:00
|
|
|
package plugins
|
|
|
|
|
|
|
|
import (
|
2023-02-02 11:16:18 +00:00
|
|
|
"context"
|
2023-01-12 12:42:16 +00:00
|
|
|
"fmt"
|
2023-01-18 15:02:59 +00:00
|
|
|
"github.com/fthvgb1/wp-go/cache"
|
2023-02-17 15:36:54 +00:00
|
|
|
"github.com/fthvgb1/wp-go/internal/cmd/cachemanager"
|
2023-01-18 15:02:59 +00:00
|
|
|
"github.com/fthvgb1/wp-go/internal/pkg/config"
|
|
|
|
"github.com/fthvgb1/wp-go/internal/pkg/models"
|
|
|
|
"github.com/fthvgb1/wp-go/plugin/digest"
|
2023-01-12 12:42:16 +00:00
|
|
|
"strings"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
var digestCache *cache.MapCache[uint64, string]
|
|
|
|
|
|
|
|
func InitDigestCache() {
|
2023-02-17 15:36:54 +00:00
|
|
|
digestCache = cachemanager.MapCacheBy[uint64](digestRaw, config.GetConfig().CacheTime.DigestCacheTime)
|
2023-01-12 12:42:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func digestRaw(arg ...any) (string, error) {
|
|
|
|
str := arg[0].(string)
|
|
|
|
id := arg[1].(uint64)
|
2023-02-08 15:49:48 +00:00
|
|
|
limit := arg[2].(int)
|
2023-01-12 12:42:16 +00:00
|
|
|
if limit < 0 {
|
|
|
|
return str, nil
|
|
|
|
} else if limit == 0 {
|
|
|
|
return "", nil
|
|
|
|
}
|
|
|
|
return digest.Raw(str, limit, fmt.Sprintf("/p/%d", id)), nil
|
|
|
|
}
|
|
|
|
|
2023-02-08 15:49:48 +00:00
|
|
|
func Digest(ctx context.Context, post *models.Posts, limit int) {
|
|
|
|
content, _ := digestCache.GetCache(ctx, post.Id, time.Second, post.PostContent, post.Id, limit)
|
|
|
|
post.PostContent = content
|
2023-01-12 12:42:16 +00:00
|
|
|
}
|
|
|
|
|
2023-02-08 15:49:48 +00:00
|
|
|
func PostExcerpt(post *models.Posts) {
|
|
|
|
post.PostContent = strings.Replace(post.PostExcerpt, "\n", "<br/>", -1)
|
2023-01-12 12:42:16 +00:00
|
|
|
}
|