From fdaa166f37fdc6c75a643840d123738ee1011d76 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 12 Mar 2023 14:12:06 +0300 Subject: [PATCH] cmd/scrollback -whole --- cmd/scrollback/main.go | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/cmd/scrollback/main.go b/cmd/scrollback/main.go index 733b571..ddb29b6 100644 --- a/cmd/scrollback/main.go +++ b/cmd/scrollback/main.go @@ -20,21 +20,20 @@ import ( "flag" "log" "os" + "time" "github.com/mattermost/mattermost-server/v6/model" "go.cypherpunks.ru/recfile" "go.stargrave.org/mmc" ) -const PerPage = 100 - func main() { entrypoint := flag.String("entrypoint", mmc.GetEntrypoint(), "Entrypoint") pageNum := flag.Int("page", 0, "Page number") + whole := flag.Bool("whole", false, "Whole history") direct := flag.Bool("direct", false, "Direct channel") flag.Parse() log.SetFlags(log.Lshortfile) - log.SetOutput(os.Stdout) chId := flag.Arg(0) postId := flag.Arg(1) @@ -59,12 +58,29 @@ func main() { } chId = dc.Id } - list, _, err := c.GetPostsBefore(chId, postId, *pageNum, PerPage, "", false) - if err != nil { - log.Fatalln(err) + var slice []*model.Post + if *whole { + for n := 0; ; n++ { + log.Println("page:", n) + time.Sleep(mmc.SleepTime) + list, _, err := c.GetPostsBefore(chId, postId, n, mmc.PerPage, "", false) + if err != nil { + log.Fatalln(err) + } + s := list.ToSlice() + slice = append(slice, s...) + if len(s) < mmc.PerPage { + break + } + } + } else { + list, _, err := c.GetPostsBefore(chId, postId, *pageNum, mmc.PerPage, "", false) + if err != nil { + log.Fatalln(err) + } + slice = list.ToSlice() } w := recfile.NewWriter(os.Stdout) - slice := list.ToSlice() for i := len(slice) - 1; i >= 0; i-- { if err = mmc.PostToRec( w, users, -- 2.48.1