|
|
@@ -6,18 +6,26 @@ import ( |
|
|
|
"code.gitea.io/gitea/modules/setting" |
|
|
|
) |
|
|
|
|
|
|
|
func GetPreferredRepos() ([]models.Repository, error) { |
|
|
|
return models.GetSelectedRepos(models.FindSelectedReposOpts{ |
|
|
|
func GetPreferredRepos() ([]*models.Repository4Card, error) { |
|
|
|
repos, err := models.GetSelectedRepos(models.FindSelectedReposOpts{ |
|
|
|
ListOptions: models.ListOptions{ |
|
|
|
PageSize: 10, |
|
|
|
Page: 1, |
|
|
|
}, |
|
|
|
OnlyPublic: true, |
|
|
|
}) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
result := make([]*models.Repository4Card, len(repos)) |
|
|
|
for i, r := range repos { |
|
|
|
result[i] = r.ToCardFormat() |
|
|
|
} |
|
|
|
return result, nil |
|
|
|
} |
|
|
|
|
|
|
|
func GetIncubationRepos() ([]models.Repository, error) { |
|
|
|
return models.GetSelectedRepos(models.FindSelectedReposOpts{ |
|
|
|
func GetIncubationRepos() ([]*models.Repository4Card, error) { |
|
|
|
repos, err := models.GetSelectedRepos(models.FindSelectedReposOpts{ |
|
|
|
ListOptions: models.ListOptions{ |
|
|
|
PageSize: 10, |
|
|
|
Page: 1, |
|
|
@@ -25,9 +33,17 @@ func GetIncubationRepos() ([]models.Repository, error) { |
|
|
|
OrgId: setting.IncubationSourceOrgId, |
|
|
|
OnlyPublic: true, |
|
|
|
}) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
result := make([]*models.Repository4Card, len(repos)) |
|
|
|
for i, r := range repos { |
|
|
|
result[i] = r.ToCardFormat() |
|
|
|
} |
|
|
|
return result, nil |
|
|
|
} |
|
|
|
|
|
|
|
func GetHotPaperRepos() ([]models.Repository, error) { |
|
|
|
func GetHotPaperRepos() ([]*models.Repository4Card, error) { |
|
|
|
rlist, _, err := models.SearchRepository(&models.SearchRepoOptions{ |
|
|
|
ListOptions: models.ListOptions{ |
|
|
|
Page: 1, |
|
|
@@ -41,9 +57,9 @@ func GetHotPaperRepos() ([]models.Repository, error) { |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
result := make([]models.Repository, len(rlist)) |
|
|
|
result := make([]*models.Repository4Card, len(rlist)) |
|
|
|
for i, r := range rlist { |
|
|
|
result[i] = *r |
|
|
|
result[i] = r.ToCardFormat() |
|
|
|
} |
|
|
|
return result, nil |
|
|
|
} |
|
|
@@ -69,40 +85,30 @@ func FindRepos(opts FindReposOptions) (*models.FindReposResponse, error) { |
|
|
|
|
|
|
|
switch opts.Sort { |
|
|
|
//1.近期热门:按最近1个月浏览量倒序排序,最近1个月浏览量>最近更新>项目名称升序 |
|
|
|
//2.近期活跃:按提交增长量(最近4个月commit数)倒序排序,提交增长量>最近更新>项目名称升序。 |
|
|
|
//3.最近更新:按最近更新>项目名称升序排序。 |
|
|
|
//4.最近创建:按项目创建时间排序,最近的排前面。最近创建>项目名称升序。 |
|
|
|
//5.点赞最多:按点赞数倒序排序。点赞数>最近更新>项目名称升序。 |
|
|
|
//6.派生最多:按派生数倒序排序。派生数>最近更新>项目名称升序。 |
|
|
|
//7.数据集最多:按项目包含的数据集文件数量倒序排序,数据集文件数>最近更新>项目名称升序。 |
|
|
|
//8.AI任务最多:按项目包含的AI任务数量倒序排序,AI任务数>最近更新>项目名称升序。 |
|
|
|
//9.模型最多:按项目包含的模型数量倒序排序,模型大小为0则不统计。模型数>最近更新>项目名称升序。\ |
|
|
|
|
|
|
|
//1.近期热门 |
|
|
|
case "most_popular": |
|
|
|
orderBy = models.SearchOrderByLastMonthVisitsReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically |
|
|
|
//2.近期活跃 |
|
|
|
//2.近期活跃:按提交增长量(最近4个月commit数)倒序排序,提交增长量>最近更新>项目名称升序。 |
|
|
|
case "most_active": |
|
|
|
orderBy = models.SearchOrderByLastFourMonthCommitsReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically |
|
|
|
//3.最近更新 |
|
|
|
//3.最近更新:按最近更新>项目名称升序排序。 |
|
|
|
case "recent_update": |
|
|
|
orderBy = models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically |
|
|
|
//4.最近创建 |
|
|
|
//4.最近创建:按项目创建时间排序,最近的排前面。最近创建>项目名称升序。 |
|
|
|
case "newest": |
|
|
|
orderBy = models.SearchOrderByNewest + "," + models.SearchOrderByAlphabetically |
|
|
|
//5.点赞最多 |
|
|
|
//5.点赞最多:按点赞数倒序排序。点赞数>最近更新>项目名称升序。 |
|
|
|
case "most_stars": |
|
|
|
orderBy = models.SearchOrderByStarsReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically |
|
|
|
//6.派生最多 |
|
|
|
//6.派生最多:按派生数倒序排序。派生数>最近更新>项目名称升序。 |
|
|
|
case "most_forks": |
|
|
|
orderBy = models.SearchOrderByForksReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically |
|
|
|
//7.数据集最多 |
|
|
|
//7.数据集最多:按项目包含的数据集文件数量倒序排序,数据集文件数>最近更新>项目名称升序。 |
|
|
|
case "most_datasets": |
|
|
|
orderBy = models.SearchOrderByDatasetCntReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically |
|
|
|
//8.AI任务最多 |
|
|
|
//8.AI任务最多:按项目包含的AI任务数量倒序排序,AI任务数>最近更新>项目名称升序。 |
|
|
|
case "most_ai_tasks": |
|
|
|
orderBy = models.SearchOrderByAiTaskCntReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically |
|
|
|
//9.模型最多 |
|
|
|
//9.模型最多:按项目包含的模型数量倒序排序,模型大小为0则不统计。模型数>最近更新>项目名称升序。 |
|
|
|
case "most_models": |
|
|
|
orderBy = models.SearchOrderByModelCntReverse + "," + models.SearchOrderByRecentUpdated + "," + models.SearchOrderByAlphabetically |
|
|
|
|
|
|
@@ -126,8 +132,13 @@ func FindRepos(opts FindReposOptions) (*models.FindReposResponse, error) { |
|
|
|
log.Error("FindRepos error when SearchRepository.%v", err) |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
result := make([]*models.Repository4Card, len(repos)) |
|
|
|
for i, r := range repos { |
|
|
|
result[i] = r.ToCardFormat() |
|
|
|
} |
|
|
|
|
|
|
|
return &models.FindReposResponse{ |
|
|
|
Repos: repos, |
|
|
|
Repos: result, |
|
|
|
Total: count, |
|
|
|
Page: opts.Page, |
|
|
|
PageSize: opts.PageSize, |
|
|
|