- convertedArtID := uint32(artID)
- bs := make([]byte, 4)
- binary.BigEndian.PutUint32(bs, convertedArtID)
-
- cc.Server.mux.Lock()
- defer cc.Server.mux.Unlock()
-
- newArt := NewsArtData{
- Title: string(t.GetField(FieldNewsArtTitle).Data),
- Poster: string(cc.UserName),
- Date: toHotlineTime(time.Now()),
- ParentArt: [4]byte(bs),
- DataFlav: []byte("text/plain"),
- Data: string(t.GetField(FieldNewsArtData).Data),
- }
-
- var keys []int
- for k := range cat.Articles {
- keys = append(keys, int(k))
- }
-
- nextID := uint32(1)
- if len(keys) > 0 {
- sort.Ints(keys)
- prevID := uint32(keys[len(keys)-1])
- nextID = prevID + 1
-
- binary.BigEndian.PutUint32(newArt.PrevArt[:], prevID)
-
- // Set next article ID
- binary.BigEndian.PutUint32(cat.Articles[prevID].NextArt[:], nextID)
- }
-
- // Update parent article with first child reply
- parentID := convertedArtID
- if parentID != 0 {
- parentArt := cat.Articles[parentID]