You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

user_data_analysis.go 1.4 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package repo
  2. import (
  3. "encoding/json"
  4. "code.gitea.io/gitea/models"
  5. "code.gitea.io/gitea/modules/log"
  6. wiki_service "code.gitea.io/gitea/services/wiki"
  7. )
  8. func TimeingCountData() {
  9. //query wiki data
  10. log.Info("start to time count data")
  11. wikiMap := make(map[int64]int)
  12. repoList := models.QueryAllRepo()
  13. for _, repoRecord := range repoList {
  14. wikiPath := models.WikiPath(repoRecord.OwnerName, repoRecord.Name)
  15. wikiRepo, commit, err := FindWikiRepoCommitByWikiPath(wikiPath)
  16. if err != nil {
  17. log.Error("query error.")
  18. } else {
  19. entries, err := commit.ListEntries()
  20. if err != nil {
  21. if wikiRepo != nil {
  22. wikiRepo.Close()
  23. }
  24. } else {
  25. pages := make([]PageMeta, 0, len(entries))
  26. for _, entry := range entries {
  27. if !entry.IsRegular() {
  28. continue
  29. }
  30. wikiName, err := wiki_service.FilenameToName(entry.Name())
  31. if err != nil {
  32. if models.IsErrWikiInvalidFileName(err) {
  33. continue
  34. }
  35. if wikiRepo != nil {
  36. wikiRepo.Close()
  37. }
  38. } else if wikiName == "_Sidebar" || wikiName == "_Footer" {
  39. continue
  40. }
  41. jsonObj, err := json.Marshal(entry)
  42. if err != nil {
  43. log.Error("convert to json error.")
  44. } else {
  45. log.Info("json=" + string(jsonObj))
  46. }
  47. pages = append(pages, PageMeta{
  48. Name: wikiName,
  49. SubURL: wiki_service.NameToSubURL(wikiName),
  50. })
  51. }
  52. }
  53. }
  54. }
  55. models.CountData(wikiMap)
  56. }