Skip to content

Commit

Permalink
emoji on edge
Browse files Browse the repository at this point in the history
  • Loading branch information
rusq committed Nov 23, 2024
1 parent 5c57406 commit 1cac682
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 16 deletions.
15 changes: 12 additions & 3 deletions cmd/slackdump/internal/diag/edge.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,21 @@ func runEdge(ctx context.Context, cmd *base.Command, args []string) error {
defer cl.Close()
lg.Info("connected")

lg.Info("*** Search for Channels test ***")
channels, err := cl.SearchChannels(ctx, "")
// lg.Info("*** Search for Channels test ***")
// channels, err := cl.SearchChannels(ctx, "")
// if err != nil {
// return err
// }
// if err := save("channels.json", channels); err != nil {
// return err
// }

lg.Info("*** AdminEmojiList test ***")
emojis, err := cl.AdminEmojiList(ctx)
if err != nil {
return err
}
if err := save("channels.json", channels); err != nil {
if err := save("emoji.json", emojis); err != nil {
return err
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/slackdump/internal/diag/tools.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Tools command contains different tools, running which may be requested if you op
PrintFlags: false,
RequireAuth: false,
Commands: []*base.Command{
// cmdEdge,
cmdEdge,
dmdEncrypt,
dmdEzTest,
dmdInfo,
Expand Down
14 changes: 10 additions & 4 deletions cmd/slackdump/internal/emoji/emoji.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import (
"fmt"

"github.com/rusq/fsadapter"
"github.com/rusq/slackdump/v3"
"github.com/rusq/slackdump/v3/cmd/slackdump/internal/bootstrap"
"github.com/rusq/slackdump/v3/auth"
"github.com/rusq/slackdump/v3/cmd/slackdump/internal/cfg"
"github.com/rusq/slackdump/v3/cmd/slackdump/internal/emoji/emojidl"
"github.com/rusq/slackdump/v3/cmd/slackdump/internal/golang/base"
"github.com/rusq/slackdump/v3/internal/edge"
)

var CmdEmoji = &base.Command{
Expand Down Expand Up @@ -43,11 +43,17 @@ func run(ctx context.Context, cmd *base.Command, args []string) error {
}
defer fsa.Close()

sess, err := bootstrap.SlackdumpSession(ctx, slackdump.WithFilesystem(fsa))
prov, err := auth.FromContext(ctx)
if err != nil {
base.SetExitStatus(base.SApplicationError)
return fmt.Errorf("application error: %s", err)
return err
}
sess, err := edge.New(ctx, prov)
if err != nil {
base.SetExitStatus(base.SApplicationError)
return err
}
defer sess.Close()

if err := emojidl.DlFS(ctx, sess, fsa, cmdFlags.ignoreErrors); err != nil {
base.SetExitStatus(base.SApplicationError)
Expand Down
13 changes: 7 additions & 6 deletions cmd/slackdump/internal/emoji/emojidl/emoji.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import (

"github.com/rusq/fsadapter"
"github.com/rusq/slackdump/v3/cmd/slackdump/internal/cfg"
"github.com/rusq/slackdump/v3/internal/edge"
)

const (
Expand All @@ -39,12 +40,12 @@ var fetchFn = fetchEmoji

//go:generate mockgen -source emoji.go -destination emoji_mock_test.go -package emojidl
type emojidumper interface {
DumpEmojis(ctx context.Context) (map[string]string, error)
AdminEmojiList(ctx context.Context) (edge.EmojiResult, error)
}

// DlFS downloads all emojis from the workspace and saves them to the fsa.
func DlFS(ctx context.Context, sess emojidumper, fsa fsadapter.FS, failFast bool) error {
emojis, err := sess.DumpEmojis(ctx)
emojis, err := sess.AdminEmojiList(ctx)
if err != nil {
return fmt.Errorf("error during emoji dump: %w", err)
}
Expand All @@ -62,7 +63,7 @@ func DlFS(ctx context.Context, sess emojidumper, fsa fsadapter.FS, failFast bool

// fetch downloads the emojis and saves them to the fsa. It spawns numWorker
// goroutines for getting the files. It will call fetchFn for each emoji.
func fetch(ctx context.Context, fsa fsadapter.FS, emojis map[string]string, failFast bool) error {
func fetch(ctx context.Context, fsa fsadapter.FS, emojis edge.EmojiResult, failFast bool) error {
lg := cfg.Log.With("in", "fetch", "dir", emojiDir, "numWorkers", numWorkers, "failFast", failFast)

var (
Expand All @@ -75,11 +76,11 @@ func fetch(ctx context.Context, fsa fsadapter.FS, emojis map[string]string, fail
// 1. generator, send emojis into the emojiC channel.
go func() {
defer close(emojiC)
for name, uri := range emojis {
for _, e := range emojis.Emoji {
select {
case <-ctx.Done():
return
case emojiC <- emoji{name, uri}:
case emojiC <- emoji{e.Name, e.URL}:
}
}
}()
Expand All @@ -102,7 +103,7 @@ func fetch(ctx context.Context, fsa fsadapter.FS, emojis map[string]string, fail
// 4. Result processor, receives download results and logs any errors that
// may have occurred.
var (
total = len(emojis)
total = len(emojis.Emoji)
count = 0
)
lg = lg.With("total", total)
Expand Down
4 changes: 2 additions & 2 deletions internal/edge/emoji.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type EmojiResponse struct {

type EmojiResult struct {
Emoji []Emoji `json:"emoji"`
DisabledEmoji []Emoji `json:"disabled_emoji"`
DisabledEmoji []Emoji `json:"disabled_emoji,omitempty"`
}

type Emoji struct {
Expand Down Expand Up @@ -80,7 +80,7 @@ func (cl *Client) AdminEmojiList(ctx context.Context) (EmojiResult, error) {
if r.Paging.isLastPage() {
break
}
r.Paging.nextPage()
req.Paging.nextPage()
if err := l.Wait(ctx); err != nil {
return res, err
}
Expand Down

0 comments on commit 1cac682

Please sign in to comment.