diff --git a/public/home/home.js b/public/home/home.js new file mode 100644 index 000000000..e39d837d3 --- /dev/null +++ b/public/home/home.js @@ -0,0 +1,44 @@ + + var output = document.getElementById("newmessage"); + var socket = new WebSocket("ws://" + document.location.host + "/action/notification"); + + socket.onopen = function () { + console.log("message has connected."); + }; + + var messageQueue = []; + var maxSize = 10; + + socket.onmessage = function (e) { + console.log("data=" + e.data) + var data =JSON.parse(e.data) + var html = ""; + if (data != null){ + if(messageQueue.length > maxSize){ + delete messageQueue[0]; + }else{ + messageQueue.push(data); + } + for(var i = 0; i < messageQueue.length;i++){ + html += "
"; + html += " \"\"" + html += "
" + + + + html += "
"; + html += "
"; + } + /* +
+ +
+ zhoupzh 合并了合并请求 OpenI/aiforge#116822 分钟前 +
+
+ */ + + } + output.innerHTML = html + }; + diff --git a/routers/home.go b/routers/home.go index 7cc353ed8..356857ab8 100755 --- a/routers/home.go +++ b/routers/home.go @@ -513,24 +513,45 @@ func NotFound(ctx *context.Context) { ctx.Data["Title"] = "Page Not Found" ctx.NotFound("home.NotFound", nil) } + func RecommendOrgFromPromote(ctx *context.Context) { url := setting.RecommentRepoAddr + "organizations" - recommendFromPromote(ctx, url) + result, err := recommendFromPromote(url) + if err != nil { + ctx.ServerError("500", err) + return + } + resultOrg := make([]map[string]interface{}, 0) + for _, userName := range result { + user, err := models.GetUserByName(userName) + if err == nil { + userMap := make(map[string]interface{}) + userMap["Name"] = user.Name + userMap["ID"] = user.ID + userMap["Avatar"] = user.RelAvatarLink() + userMap["NumRepos"] = user.NumRepos + userMap["NumTeams"] = user.NumTeams + userMap["NumMembers"] = user.NumMembers + resultOrg = append(resultOrg, userMap) + } else { + log.Info("query user error," + err.Error()) + } + } + + ctx.JSON(200, resultOrg) } -func recommendFromPromote(ctx *context.Context, url string) { +func recommendFromPromote(url string) ([]string, error) { resp, err := http.Get(url) - if err != nil { + if err != nil || resp.StatusCode != 200 { log.Info("Get organizations url error=" + err.Error()) - ctx.ServerError("QueryTrainJobList:", err) - return + return nil, err } bytes, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { log.Info("Get organizations url error=" + err.Error()) - ctx.ServerError("QueryTrainJobList:", err) - return + return nil, err } allLineStr := string(bytes) @@ -546,10 +567,42 @@ func recommendFromPromote(ctx *context.Context, url string) { result[i] = strings.Trim(line[tmpIndex+1:], " ") } } - ctx.JSON(http.StatusOK, result) + return result, nil } func RecommendRepoFromPromote(ctx *context.Context) { url := setting.RecommentRepoAddr + "projects" - recommendFromPromote(ctx, url) + result, err := recommendFromPromote(url) + if err != nil { + ctx.ServerError("500", err) + return + } + resultRepo := make([]map[string]interface{}, 0) + //resultRepo := make([]*models.Repository, 0) + for _, repoName := range result { + tmpIndex := strings.Index(repoName, "/") + if tmpIndex == -1 { + log.Info("error repo name format.") + } else { + ownerName := strings.Trim(repoName[0:tmpIndex], " ") + repoName := strings.Trim(repoName[tmpIndex+1:], " ") + repo, err := models.GetRepositoryByOwnerAndName(ownerName, repoName) + if err == nil { + repoMap := make(map[string]interface{}) + repoMap["ID"] = fmt.Sprint(repo.ID) + repoMap["Name"] = repo.Name + repoMap["OwnerName"] = repo.OwnerName + repoMap["NumStars"] = repo.NumStars + repoMap["NumForks"] = repo.NumForks + repoMap["Description"] = repo.Description + repoMap["NumWatchs"] = repo.NumWatches + repoMap["Topics"] = repo.Topics + repoMap["Avatar"] = repo.RelAvatarLink() + resultRepo = append(resultRepo, repoMap) + } else { + log.Info("query repo error," + err.Error()) + } + } + } + ctx.JSON(200, resultRepo) } diff --git a/templates/home.tmpl b/templates/home.tmpl index fd21fbcd3..606a67ec5 100755 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -18,7 +18,7 @@
-
+
@@ -763,5 +763,5 @@ }, }); - + {{template "base/footer" .}} \ No newline at end of file