|
|
@ -987,6 +987,7 @@ var (
|
|
|
|
// Prevent duplicate tasks.
|
|
|
|
// Prevent duplicate tasks.
|
|
|
|
isMirrorUpdating = false
|
|
|
|
isMirrorUpdating = false
|
|
|
|
isGitFscking = false
|
|
|
|
isGitFscking = false
|
|
|
|
|
|
|
|
isCheckRepos = false
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// MirrorUpdate checks and updates mirror repositories.
|
|
|
|
// MirrorUpdate checks and updates mirror repositories.
|
|
|
@ -1078,6 +1079,42 @@ func GitGcRepos() error {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func CheckRepoStats() {
|
|
|
|
|
|
|
|
if isCheckRepos {
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
isCheckRepos = true
|
|
|
|
|
|
|
|
defer func() { isCheckRepos = false }()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Check count watchers
|
|
|
|
|
|
|
|
results_watch, err := x.Query("SELECT r.id FROM `repository` r WHERE r.num_watches!=(SELECT count(*) FROM `watch` WHERE repo_id=r.id)")
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
log.Error(4, "select repository check 'watch': %v", err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, repo_id := range results_watch {
|
|
|
|
|
|
|
|
log.Info("updating repository count 'watch'")
|
|
|
|
|
|
|
|
repoID := com.StrTo(repo_id["id"]).MustInt64()
|
|
|
|
|
|
|
|
_, err := x.Exec("UPDATE `repository` SET num_watches=(SELECT count(*) FROM `watch` WHERE repo_id=?) WHERE id=?", repoID, repoID)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
log.Error(4, "update repository check 'watch', repo %v: %v", repo_id, err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Check count stars
|
|
|
|
|
|
|
|
results_star, err := x.Query("SELECT s.id FROM `repository` s WHERE s.num_stars!=(SELECT count(*) FROM `star` WHERE repo_id=s.id)")
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
log.Error(4, "select repository check 'star': %v", err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, repo_id := range results_star {
|
|
|
|
|
|
|
|
log.Info("updating repository count 'star'")
|
|
|
|
|
|
|
|
repoID := com.StrTo(repo_id["id"]).MustInt64()
|
|
|
|
|
|
|
|
_, err := x.Exec("UPDATE `repository` SET .num_stars=(SELECT count(*) FROM `star` WHERE repo_id=?) WHERE id=?", repoID, repoID)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
log.Error(4, "update repository check 'star', repo %v: %v", repo_id, err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// _________ .__ .__ ___. __ .__
|
|
|
|
// _________ .__ .__ ___. __ .__
|
|
|
|
// \_ ___ \ ____ | | | | _____ \_ |__ ________________ _/ |_|__| ____ ____
|
|
|
|
// \_ ___ \ ____ | | | | _____ \_ |__ ________________ _/ |_|__| ____ ____
|
|
|
|
// / \ \/ / _ \| | | | \__ \ | __ \ / _ \_ __ \__ \\ __\ |/ _ \ / \
|
|
|
|
// / \ \/ / _ \| | | | \__ \ | __ \ / _ \_ __ \__ \\ __\ |/ _ \ / \
|
|
|
|