feat(migrations): Harden task audit tracking and optimize article templates

- Added migration to harden task audit tracking by modifying audit_logs and related tables.
- Introduced operator_id to several tables for better tracking of actions.
- Updated article_templates with new prompt templates for various article types, enhancing content generation.
- Created prompt_rules and schedule_tasks tables to manage content generation rules and scheduling.
- Added foreign key constraints to articles for better data integrity.
This commit is contained in:
2026-04-02 00:31:28 +08:00
parent de30497f59
commit b31d8d0096
101 changed files with 16671 additions and 721 deletions
@@ -0,0 +1,36 @@
package contentstats
import (
"regexp"
"strings"
"unicode"
)
var latinTokenPattern = regexp.MustCompile(`[A-Za-z0-9]+(?:['-][A-Za-z0-9]+)?`)
func CountWords(input string) int {
input = strings.TrimSpace(input)
if input == "" {
return 0
}
var builder strings.Builder
hanCount := 0
for _, r := range input {
switch {
case unicode.Is(unicode.Han, r):
hanCount++
builder.WriteRune(' ')
case unicode.IsLetter(r) || unicode.IsDigit(r):
builder.WriteRune(r)
case unicode.IsSpace(r):
builder.WriteRune(' ')
default:
builder.WriteRune(' ')
}
}
latinCount := len(latinTokenPattern.FindAllString(builder.String(), -1))
return hanCount + latinCount
}