github.com/Ptt-official-app/go-bbs@v0.12.0/pttbbs/pttbss_append_new_line.go (about)

     1  package pttbbs
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/Ptt-official-app/go-bbs"
     8  )
     9  
    10  func (c *Connector) AppendBoardArticleFile(filename string, content []byte) error {
    11  	// TODO: Lockfile
    12  
    13  	f, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, 0644)
    14  	if err != nil {
    15  		return fmt.Errorf("AppendNewLine: Cannot open file %s, err: %s", filename, err)
    16  	}
    17  	defer f.Close()
    18  
    19  	_, err = f.Write(content)
    20  	if err != nil {
    21  		return fmt.Errorf("AppendNewLine: Write to file (%s) failed, err: %w", filename, err)
    22  	}
    23  	return nil
    24  }
    25  
    26  func (c *Connector) UpdateArticleRecordFileRecord(filename string, index uint, article bbs.ArticleRecord) error {
    27  	a, ok := article.(*FileHeader)
    28  	if !ok {
    29  		return fmt.Errorf("article should be create with NewArticleRecord or get by ReadArticleRecordFileRecord")
    30  	}
    31  	return UpdateFileHeaderFileRecord(filename, index, a)
    32  }