diff --git a/internal/web/uploads.go b/internal/web/uploads.go index 1558523..d35ee3f 100644 --- a/internal/web/uploads.go +++ b/internal/web/uploads.go @@ -18,6 +18,7 @@ import ( "git.d-ma.be/mathias/tapir/internal/adapters/chat" "git.d-ma.be/mathias/tapir/internal/adapters/store" + "git.d-ma.be/mathias/tapir/internal/config" "git.d-ma.be/mathias/tapir/internal/domain" "git.d-ma.be/mathias/tapir/internal/errkind" "git.d-ma.be/mathias/tapir/internal/uploads" @@ -243,6 +244,17 @@ func titleFromFilename(name string) string { return t } +// cloudProvider names the cloud service that produced a transcript, or false when it was +// served locally (or by an unknown endpoint). "Local" is config.IsLocalModel: the same +// definition the start-up validation uses, not a second string match here (#52). +func cloudProvider(endpoint string) (string, bool) { + if endpoint == "" || config.IsLocalModel(endpoint) { + return "", false + } + provider, _, _ := strings.Cut(endpoint, "/") + return provider, true +} + // hasNote reports whether any phase carries a note. A note is the only warning for a // recording that is shorter than its file claimed, so a record that has one is shown open. func hasNote(steps []domain.ProgressStep) bool {