本文整理汇总了Golang中github.com/kimxilxyong/intogooglego/post.Post.Hash方法的典型用法代码示例。如果您正苦于以下问题:Golang Post.Hash方法的具体用法?Golang Post.Hash怎么用?Golang Post.Hash使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/kimxilxyong/intogooglego/post.Post
的用法示例。
在下文中一共展示了Post.Hash方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: AddUpdatableChilds
func AddUpdatableChilds(htmlpost *post.Post, dbpost *post.Post, dbmap *gorp.DbMap) (updateNeeded bool, err error) {
// Check if there are aleady comments in dbpost
// If not get them from the database
if len(dbpost.Comments) == 0 {
pk := dbpost.Id
if pk == 0 {
err = errors.New("primary key not set in dbpost")
return
}
var res interface{}
res, err = dbmap.GetWithChilds(post.Post{}, pk)
if err != nil {
err = errors.New("get failed: " + err.Error())
return
}
if res == nil {
err = errors.New(fmt.Sprintf("Get post for id %d did not return any rows ", pk))
return
}
dbpost := res.(*post.Post)
if DebugLevel > 3 {
// Print out the update info
fmt.Println("----------- DB POST -----------------")
fmt.Println(dbpost.String("CHECK DB: "))
fmt.Println("----------- DB POST END -------------------")
}
}
if DebugLevel > 3 {
// Print out the update info
fmt.Println("----------- HTML POST -----------------")
fmt.Println(htmlpost.String("CHECK HTML: "))
fmt.Println("----------- HTML POST END -------------------")
}
updateNeeded = htmlpost.Hash() != dbpost.Hash()
if updateNeeded {
var UpdatedComments []*post.Comment
var found bool
if DebugLevel > 2 {
fmt.Printf("**** UpdatedComments len %d\n", len(UpdatedComments))
}
for _, h := range htmlpost.Comments {
found = false
htmlHash := h.Hash()
for _, d := range dbpost.Comments {
if DebugLevel > 2 {
fmt.Printf("**** COMPARE\n")
fmt.Printf("**** **** d.Hash():%d htmlHash %d\n", d.Hash(), htmlHash)
fmt.Printf("**** **** d.Date '%s' h.Date '%s'\n", d.GetCommentDate().String(), h.GetCommentDate().String())
fmt.Printf("**** COMPARE END\n")
}
if d.Hash() == htmlHash {
// post with identical content has been found - do not store this comment
found = true
if DebugLevel > 2 {
fmt.Printf("**** ***************** MATCH d.Hash() == htmlHash %d\n", d.Hash())
}
break
}
if h.WebCommentId == d.WebCommentId {
// external unique comment id found - this comment is already stored
// but the comment content has been changed - update needed
if DebugLevel > 3 {
fmt.Printf("**** COMPARE h.WebCommentId\n")
fmt.Printf("**** **** h '%s' d '%s'\n", h.WebCommentId, d.WebCommentId)
fmt.Printf("**** COMPARE h.WebCommentId END\n")
}
h.Id = d.Id
h.PostId = d.PostId
break
}
}
if !found {
UpdatedComments = append(UpdatedComments, h)
if DebugLevel > 2 {
fmt.Printf("**** UpdatedComments len %d\n", len(UpdatedComments))
fmt.Printf("**** **** append(UpdatedComments, h) %s\n", h.String("APP: "))
}
}
}
fmt.Printf("**** htmlpost.Comments len %d\n", len(htmlpost.Comments))
fmt.Printf("**** UpdatedComments len %d\n", len(UpdatedComments))
dbpost.Comments = make([]*post.Comment, len(UpdatedComments), len(UpdatedComments))
fmt.Printf("**** dbpost.Comments1 len %d\n", len(dbpost.Comments))
copy(dbpost.Comments, UpdatedComments)
fmt.Printf("**** dbpost.Comments2 len %d\n", len(dbpost.Comments))
}
if (DebugLevel > 3) && updateNeeded {
// Print out the update info
fmt.Println("----------- UPDATE NEEDED -----------------")
for i := range htmlpost.Comments {
fmt.Println(htmlpost.Comments[i].String("UPDATE NEEDED HTML: "))
if i < len(dbpost.Comments) {
fmt.Println(dbpost.Comments[i].String("UPDATE NEEDED DB: "))
//.........这里部分代码省略.........