]> Sergey Matveev's repositories - mmc.git/blobdiff - common.go
Channel name can be missing
[mmc.git] / common.go
index 8b4fc8cbcf22d46d803344a7adf5310beb752776..e0e2b3eb5fb6c932c1d9a4bfdf802a4f90e0fea1 100644 (file)
--- a/common.go
+++ b/common.go
 package mmc
 
 import (
+       "os"
        "strings"
        "time"
 
+       "github.com/davecgh/go-spew/spew"
        "github.com/mattermost/mattermost-server/v6/model"
        "go.cypherpunks.ru/recfile"
 )
 
 const (
+       PerPage    = 100
        OutRec     = "out.rec"
        OutRecLock = "out.rec.lock"
        Last       = "last"
@@ -61,7 +64,11 @@ func PostToRec(w *recfile.Writer, users map[string]*model.User, post Post) error
        }
        if post.P.Metadata != nil {
                for _, fi := range post.P.Metadata.Files {
-                       fields = append(fields, recfile.Field{Name: "File", Value: fi.Id})
+                       fields = append(
+                               fields,
+                               recfile.Field{Name: "File", Value: fi.Id},
+                               recfile.Field{Name: "FileName", Value: fi.Name},
+                       )
                }
        }
        if _, err = w.WriteFields(fields...); err != nil {
@@ -70,3 +77,35 @@ func PostToRec(w *recfile.Writer, users map[string]*model.User, post Post) error
        _, err = w.WriteFieldMultiline("Text", strings.Split(post.P.Message, "\n"))
        return err
 }
+
+func GetUsers(c *model.Client4, debugFd *os.File) (map[string]*model.User, error) {
+       users := make(map[string]*model.User)
+       for n := 0; ; n++ {
+               time.Sleep(SleepTime)
+               page, resp, err := c.GetUsers(n, PerPage, "")
+               if err != nil {
+                       if debugFd != nil {
+                               spew.Fdump(debugFd, resp)
+                       }
+                       return nil, err
+               }
+               if debugFd != nil {
+                       spew.Fdump(debugFd, page)
+               }
+               for _, u := range page {
+                       users[u.Id] = u
+               }
+               if len(page) < PerPage {
+                       break
+               }
+       }
+       return users, nil
+}
+
+func GetEntrypoint() string {
+       s := os.Getenv("MMC_ENTRYPOINT")
+       if s == "" {
+               return "mm.invalid"
+       }
+       return s
+}