]> Sergey Matveev's repositories - mmc.git/blobdiff - cmd/mmc/main.go
DRY GetUser
[mmc.git] / cmd / mmc / main.go
index 85cb7594573ae8dbaa1dfc1465aed231f0fa38d4..20c8da45cc6426f3216834888d1ab655f049686d 100644 (file)
@@ -39,10 +39,7 @@ import (
        "go.stargrave.org/mmc"
 )
 
-const (
-       PerPage = 100
-       CmdFile = "/FILE "
-)
+const CmdFile = "/FILE "
 
 var (
        Newwin    = flag.String("newwin", "cmd/newwin", "Path to newwin command")
@@ -112,29 +109,13 @@ func main() {
        }
        Team := teams[0]
 
-       Users := make(map[string]*model.User)
-       for pageNum := 0; ; pageNum++ {
-               time.Sleep(mmc.SleepTime)
-               page, resp, err := c.GetUsers(pageNum, PerPage, "")
-               if err != nil {
-                       if DebugFd != nil {
-                               spew.Fdump(DebugFd, resp)
-                       }
-                       log.Fatalln(err)
-               }
-               if DebugFd != nil {
-                       spew.Fdump(DebugFd, page)
-               }
-               for _, u := range page {
-                       Users[u.Id] = u
-               }
-               if len(page) < PerPage {
-                       break
-               }
-       }
-
        var updateQueue []string
        LastSent := time.Now()
+
+       Users, err := mmc.GetUsers(c, DebugFd)
+       if err != nil {
+               log.Fatalln(err)
+       }
        for _, u := range Users {
                pth := path.Join("users", strings.ReplaceAll(u.Username, ".", "_"))
                os.MkdirAll(pth, 0777)
@@ -197,7 +178,6 @@ func main() {
                go func(u *model.User) {
                        var dc *model.Channel
                        for {
-                               time.Sleep(mmc.SleepTime)
                                fd, err := os.OpenFile(pth, os.O_RDONLY, os.FileMode(0666))
                                if err != nil {
                                        continue
@@ -279,8 +259,8 @@ func main() {
                                        log.Println("OpenFile:", usersPth, err)
                                        continue
                                }
-                               for pageNum := 0; ; pageNum++ {
-                                       users, resp, err := c.GetUsersInChannel(ch.Id, pageNum, PerPage, "")
+                               for n := 0; ; n++ {
+                                       users, resp, err := c.GetUsersInChannel(ch.Id, n, mmc.PerPage, "")
                                        if err != nil {
                                                if DebugFd != nil {
                                                        spew.Fdump(DebugFd, resp)
@@ -295,7 +275,7 @@ func main() {
                                        for _, u := range users {
                                                fmt.Fprintf(fd, "%s\n", u.Username)
                                        }
-                                       if len(users) < PerPage {
+                                       if len(users) < mmc.PerPage {
                                                break
                                        }
                                }
@@ -310,7 +290,6 @@ func main() {
                }
                go func(ch *model.Channel) {
                        for {
-                               time.Sleep(mmc.SleepTime)
                                fd, err := os.OpenFile(pth, os.O_RDONLY, os.FileMode(0666))
                                if err != nil {
                                        continue
@@ -401,6 +380,7 @@ func main() {
                                Name:     fi.Name,
                                Size:     int64(len(data)),
                                Mode:     0o666,
+                               ModTime:  time.Unix(fi.CreateAt/1000, 0),
                                PAXRecords: map[string]string{
                                        "MM.FileId":   fi.Id,
                                        "MM.MIMEType": fi.MimeType,