···
126
-
languageInfo, err := getLanguageInfo(repoInfo, rp, f, user, signedClient, ref)
126
+
languageInfo, err := getLanguageInfo(f, signedClient, ref)
log.Printf("failed to compute language percentages: %s", err)
···
160
-
repoInfo repoinfo.RepoInfo,
f *reporesolver.ResolvedRepo,
signedClient *knotclient.SignedClient,
) ([]types.RepoLanguageDetails, error) {
···
return []types.RepoLanguageDetails{}, err
if repoLanguages == nil {
172
-
repoLanguages = &types.RepoLanguageResponse{Languages: make(map[string]int)}
169
+
repoLanguages = &types.RepoLanguageResponse{Languages: make(map[string]int64)}
175
-
totalLanguageFileCount := 0
176
-
for _, fileCount := range repoLanguages.Languages {
177
-
totalLanguageFileCount += fileCount
172
+
var totalSize int64
173
+
for _, fileSize := range repoLanguages.Languages {
174
+
totalSize += fileSize
var languageStats []types.RepoLanguageDetails
181
-
var otherLanguageStat *types.RepoLanguageDetails
var otherPercentage float32 = 0
184
-
for fileType, fileCount := range repoLanguages.Languages {
185
-
percentage := (float32(fileCount) / float32(totalLanguageFileCount)) * 100
187
-
if percentage <= 0.1 {
188
-
otherPercentage += percentage
180
+
for lang, size := range repoLanguages.Languages {
181
+
percentage := (float32(size) / float32(totalSize)) * 100
192
-
// Exclude languages
193
-
if fileType == "Text" {
183
+
if percentage <= 0.5 {
otherPercentage += percentage
198
-
color := enry.GetColor(fileType)
188
+
color := enry.GetColor(lang)
200
-
if fileType == "Other" {
201
-
otherLanguageStat = &types.RepoLanguageDetails{Name: fileType, Percentage: percentage, Color: color}
203
-
languageStats = append(languageStats, types.RepoLanguageDetails{Name: fileType, Percentage: percentage, Color: color})
190
+
languageStats = append(languageStats, types.RepoLanguageDetails{Name: lang, Percentage: percentage, Color: color})
sort.Slice(languageStats, func(i, j int) bool {
208
-
return languageStats[i].Percentage > languageStats[j].Percentage
194
+
if languageStats[i].Name == enry.OtherLanguage {
197
+
if languageStats[j].Name == enry.OtherLanguage {
200
+
if languageStats[i].Percentage != languageStats[j].Percentage {
201
+
return languageStats[i].Percentage > languageStats[j].Percentage
203
+
return languageStats[i].Name < languageStats[j].Name
211
-
if otherLanguageStat != nil {
212
-
otherLanguageStat.Percentage += otherPercentage
213
-
languageStats = append(languageStats, *otherLanguageStat)
return languageStats, nil