feat: sqlite storage draft

This commit is contained in:
2026-02-03 09:15:29 +01:00
parent d6617cec02
commit 3f5cf0d673
7 changed files with 501 additions and 21 deletions

View File

@ -5,8 +5,8 @@ import (
"donniemarko/internal/note"
"donniemarko/internal/storage"
"os"
"log"
"os"
)
type NotesHandler struct {
@ -55,6 +55,7 @@ func ParseNoteFile(path string) (*note.Note, error) {
id := note.GenerateNoteID(path)
nn := note.NewNote()
nn.ID = id
nn.Path = path
nn.Content = string(content)
nn.Title = note.ExtractTitle(nn.Content)
// Use filename as title if no heading found
@ -62,6 +63,6 @@ func ParseNoteFile(path string) (*note.Note, error) {
nn.Title = filepath.Base(path)
}
nn.UpdatedAt = fileInfo.ModTime()
nn.CreatedAt = fileInfo.ModTime()
nn.Size = fileInfo.Size()
return nn, nil
}

View File

@ -98,6 +98,31 @@ func (s *ScannerService) Monitor(ctx context.Context) error {
ticker := time.NewTicker(s.Interval)
defer ticker.Stop()
applyChanges := func(changes []Change) {
for _, change := range changes {
var err error
switch change.Type {
case Created:
err = s.handler.HandleCreate(change.Path)
case Modified:
err = s.handler.HandleModify(change.Path)
case Deleted:
err = s.handler.HandleDelete(change.Path)
}
if err != nil {
log.Printf("handler error for %s: %v", change.Path, err)
}
}
}
changes, err := s.Scan()
if err != nil {
log.Printf("scan error: %v", err)
} else {
applyChanges(changes)
}
for {
select {
case <-ticker.C:
@ -107,21 +132,7 @@ func (s *ScannerService) Monitor(ctx context.Context) error {
continue
}
for _, change := range changes {
var err error
switch change.Type {
case Created:
err = s.handler.HandleCreate(change.Path)
case Modified:
err = s.handler.HandleModify(change.Path)
case Deleted:
err = s.handler.HandleDelete(change.Path)
}
if err != nil {
log.Printf("handler error for %s: %v", change.Path, err)
}
}
applyChanges(changes)
case <-ctx.Done():
return ctx.Err()