]> Sergey Matveev's repositories - mmc.git/blobdiff - common.go
internal package
[mmc.git] / common.go
diff --git a/common.go b/common.go
deleted file mode 100644 (file)
index e0e2b3e..0000000
--- a/common.go
+++ /dev/null
@@ -1,111 +0,0 @@
-// mmc -- Mattermost client
-// Copyright (C) 2023 Sergey Matveev <stargrave@stargrave.org>
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-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"
-)
-
-var SleepTime = 250 * time.Millisecond
-
-type Post struct {
-       P *model.Post
-       E string
-}
-
-func PostToRec(w *recfile.Writer, users map[string]*model.User, post Post) error {
-       _, err := w.RecordStart()
-       if err != nil {
-               return err
-       }
-       created := time.Unix(post.P.CreateAt/1000, 0)
-       user := users[post.P.UserId]
-       sender := "unknown"
-       if user != nil {
-               sender = user.Username
-       }
-       fields := []recfile.Field{
-               {Name: "Id", Value: post.P.Id},
-               {Name: "Created", Value: created.Format("2006-01-02 15:04:05")},
-               {Name: "Sender", Value: sender},
-       }
-       if post.E != model.WebsocketEventPosted {
-               fields = append(fields, recfile.Field{Name: "Event", Value: post.E})
-       }
-       if post.P.RootId != "" {
-               fields = append(fields, recfile.Field{Name: "RootId", Value: post.P.RootId})
-       }
-       if post.P.Metadata != nil {
-               for _, fi := range post.P.Metadata.Files {
-                       fields = append(
-                               fields,
-                               recfile.Field{Name: "File", Value: fi.Id},
-                               recfile.Field{Name: "FileName", Value: fi.Name},
-                       )
-               }
-       }
-       if _, err = w.WriteFields(fields...); err != nil {
-               return err
-       }
-       _, 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
-}