diff --git a/appview/repo/index.go b/appview/repo/index.go --- a/appview/repo/index.go +++ b/appview/repo/index.go @@ -162,7 +162,9 @@ orm.FilterEq("repo_at", repo.RepoAt()), orm.FilterEq("ref", currentRef), ) - if err != nil || langs == nil { + if err != nil || langs == nil || containsOtherLanguage(langs) { + langs = nil + // non-fatal, fetch langs from ks via XRPC xrpcc := &indigoxrpc.Client{ Host: rp.config.KnotMirror.Url, @@ -236,6 +238,15 @@ return languageStats[i].Name < languageStats[j].Name }) return languageStats, nil +} + +func containsOtherLanguage(langs []models.RepoLanguage) bool { + for _, l := range langs { + if l.Language == enry.OtherLanguage { + return true + } + } + return false } // buildIndexResponse creates a RepoIndexResponse by combining multiple xrpc calls in parallel diff --git a/knotserver/git/language.go b/knotserver/git/language.go --- a/knotserver/git/language.go +++ b/knotserver/git/language.go @@ -33,7 +33,7 @@ language = group } langType := enry.GetLanguageType(language) - if langType != enry.Programming && langType != enry.Markup && langType != enry.Unknown { + if langType != enry.Programming && langType != enry.Markup { return nil }