}
func HandleTranAgreed(cc *ClientConn, t *Transaction) (res []Transaction, err error) {
- cc.Agreed = true
-
if t.GetField(fieldUserName).Data != nil {
if cc.Authorize(accessAnyName) {
cc.UserName = t.GetField(fieldUserName).Data
return res, err
}
-const defaultNewsDateFormat = "Jan02 15:04" // Jun23 20:49
-// "Mon, 02 Jan 2006 15:04:05 MST"
-
-const defaultNewsTemplate = `From %s (%s):
-
-%s
-
-__________________________________________________________`
-
// HandleTranOldPostNews updates the flat news
// Fields used in this request:
// 101 Data
// 326 News article ID
// 337 News article – recursive delete Delete child articles (1) or not (0)
pathStrs := ReadNewsPath(t.GetField(fieldNewsPath).Data)
- ID := binary.BigEndian.Uint16(t.GetField(fieldNewsArtID).Data)
+ ID, err := byteToInt(t.GetField(fieldNewsArtID).Data)
+ if err != nil {
+ return res, err
+ }
// TODO: Delete recursive
cats := cc.Server.GetNewsCatByPath(pathStrs[:len(pathStrs)-1])
catName := pathStrs[len(pathStrs)-1]
cat := cats[catName]
+ artID, err := byteToInt(t.GetField(fieldNewsArtID).Data)
+ if err != nil {
+ return res, err
+ }
+ convertedArtID := uint32(artID)
+ bs := make([]byte, 4)
+ binary.BigEndian.PutUint32(bs, convertedArtID)
+
newArt := NewsArtData{
Title: string(t.GetField(fieldNewsArtTitle).Data),
Poster: string(cc.UserName),
Date: toHotlineTime(time.Now()),
PrevArt: []byte{0, 0, 0, 0},
NextArt: []byte{0, 0, 0, 0},
- ParentArt: append([]byte{0, 0}, t.GetField(fieldNewsArtID).Data...),
+ ParentArt: bs,
FirstChildArt: []byte{0, 0, 0, 0},
DataFlav: []byte("text/plain"),
Data: string(t.GetField(fieldNewsArtData).Data),
}
// Update parent article with first child reply
- parentID := binary.BigEndian.Uint16(t.GetField(fieldNewsArtID).Data)
+ parentID := convertedArtID
if parentID != 0 {
- parentArt := cat.Articles[uint32(parentID)]
+ parentArt := cat.Articles[parentID]
if bytes.Equal(parentArt.FirstChildArt, []byte{0, 0, 0, 0}) {
binary.BigEndian.PutUint32(parentArt.FirstChildArt, nextID)
// HandleSetChatSubject is sent from a v1.8+ Hotline client when the user sets a private chat subject
// Fields used in the request:
// * 114 Chat ID
-// * 115 Chat subject Chat subject string
+// * 115 Chat subject
// Reply is not expected.
func HandleSetChatSubject(cc *ClientConn, t *Transaction) (res []Transaction, err error) {
chatID := t.GetField(fieldChatID).Data
return res, err
}
-// HandleMakeAlias makes a filer alias using the specified path.
+// HandleMakeAlias makes a file alias using the specified path.
// Fields used in the request:
// 201 File name
// 202 File path