Browse Source

提交代码。

Signed-off-by: zouap <zouap@pcl.ac.cn>
tags/v1.22.1.1^2
zouap 4 years ago
parent
commit
5fe2d9fd26
3 changed files with 108 additions and 11 deletions
  1. +44
    -0
      public/home/home.js
  2. +62
    -9
      routers/home.go
  3. +2
    -2
      templates/home.tmpl

+ 44
- 0
public/home/home.js View File

@@ -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 += "<div class=\"swiper-slide item\">";
html += " <img class=\"ui avatar image\" src=\"/user/avatar/" + data.ActUser.LowerName + "/-1\" alt=\"\">"
html += " <div class=\"middle aligned content\">"



html += "</div>";
html += "</div>";
}
/*
<div class="swiper-slide item">
<img class="ui avatar image" src="/user/avatar/zhoupzh/-1" alt="">
<div class="middle aligned content">
<a href="/zhoupzh" title="">zhoupzh</a> 合并了合并请求 <a href="/OpenI/aiforge/pulls/1168" rel="nofollow">OpenI/aiforge#1168</a><span class="time-since">22 分钟前</span>
</div>
</div>
*/

}
output.innerHTML = html
};


+ 62
- 9
routers/home.go View File

@@ -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)
}

+ 2
- 2
templates/home.tmpl View File

@@ -18,7 +18,7 @@
<div class="ui grid">
<div class="twelve wide tablet ten wide computer column homenews">
<div class="newslist">
<div class="ui mini aligned list swiper-wrapper">
<div class="ui mini aligned list swiper-wrapper" id="newmessage">
<div class="swiper-slide item">
<img class="ui avatar image" src="/user/avatar/zhoupzh/-1" alt="">
<div class="middle aligned content">
@@ -763,5 +763,5 @@
},
});
</script>
<script src="/home/home.js" type="text/javascript"></script>
{{template "base/footer" .}}

Loading…
Cancel
Save