diff options
Diffstat (limited to 'pkg/data/db.go')
| -rw-r--r-- | pkg/data/db.go | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/pkg/data/db.go b/pkg/data/db.go index 56024d3..9127b88 100644 --- a/pkg/data/db.go +++ b/pkg/data/db.go @@ -5,6 +5,7 @@ import ( "database/sql" "fmt" "log/slog" + "os" "regexp" "strings" "time" @@ -451,9 +452,14 @@ func createSchema(db *sql.DB, version string) error { } t := time.Now().UTC().Unix() - if _, err = tx.Exec("INSERT OR IGNORE INTO Info (key, value, updated) VALUES (?,?,?), (?,?,?)", + hostname, _ := os.Hostname() + if _, err = tx.Exec(` + INSERT OR IGNORE INTO Info(key, value, updated) + VALUES + (?,?,?), (?,?,?), (?,?,?)`, "created", "", t, "version", version, t, + "creation_hostname", hostname, t, ); err != nil { tx.Rollback() return err @@ -610,6 +616,29 @@ func regex(re, s string) (bool, error) { return regexp.MatchString(re, s) } +func (q Query) UpdateInfo(crawlCount int, crawlTime int64, filteredCount int, filterTime int64, parseCount int, parseTime int64) error { + tx, err := q.db.Begin() + if err != nil { + return err + } + + defer tx.Rollback() + + _, err = tx.Exec(` + INSERT OR UPDATE INTO Info + VALUES + (?,?,?), (?,?,?), (?,?,?)`, + "crawl", fmt.Sprint(crawlCount), crawlTime, + "filter", fmt.Sprint(filteredCount), filterTime, + "parse", fmt.Sprint(parseCount), parseTime, + ) + if err != nil { + return err + } + + return tx.Commit() +} + func init() { sql.Register("sqlite3_regex", &sqlite3.SQLiteDriver{ |
