Skip to content

Commit e8cc5eb

Browse files
committed
feat: #18 add emote aliasing option for add and yoink
1 parent 99d0111 commit e8cc5eb

4 files changed

Lines changed: 37 additions & 7 deletions

File tree

command/cmd_add.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ var add = Command{
4949
targetChannelName = message.Channel
5050
}
5151

52+
var as string
53+
if alias, found := parsedArgs.Named["as"]; found {
54+
as = alias
55+
}
56+
5257
res, err := twitchapi.GetUserByName(message.Cfg, targetChannelName)
5358
if err != nil || len(res) == 0 {
5459
msg := message.Localizer.MustLocalize(&i18n.LocalizeConfig{
@@ -107,12 +112,19 @@ var add = Command{
107112
errorEmotes []string
108113
)
109114
for _, emote := range parsedArgs.Positional {
110-
err = seventvapi.AddEmoteWithQuery("https://7tv.io", targetChannel.ID, emote, message.Cfg.SevenTVToken)
115+
var alias string
116+
if len(parsedArgs.Positional) == 1 && as != "" {
117+
alias = as
118+
} else {
119+
alias = emote
120+
}
121+
122+
err = seventvapi.AddEmoteWithQuery("https://7tv.io", targetChannel.ID, emote, alias, message.Cfg.SevenTVToken)
111123
if _, found := activeSetEmotes[emote]; err != nil || found {
112124
errorEmotes = append(errorEmotes, emote)
113125
continue
114126
}
115-
addedEmotes = append(addedEmotes, emote)
127+
addedEmotes = append(addedEmotes, alias)
116128
}
117129

118130
var reply string
@@ -129,7 +141,7 @@ var add = Command{
129141
"Emotes": strings.Join(errorEmotes, " "),
130142
},
131143
})
132-
reply += msg
144+
reply += msg + ". "
133145
}
134146
if len(addedEmotes) > 0 {
135147
msg := message.Localizer.MustLocalize(&i18n.LocalizeConfig{

command/cmd_yoink.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ var yoink = Command{
6060
toChannelName = message.Chatter.Name
6161
}
6262

63+
var as string
64+
if alias, found := parsedArgs.Named["as"]; found {
65+
as = alias
66+
}
67+
6368
if strings.EqualFold(fromChannelName, toChannelName) {
6469
msg := message.Localizer.MustLocalize(&i18n.LocalizeConfig{
6570
DefaultMessage: &i18n.Message{
@@ -264,7 +269,14 @@ var yoink = Command{
264269

265270
var added []string
266271
for _, emote := range emotes {
267-
err = seventvapi.AddEmoteWithID("https://7tv.io", toChannel.ID, emote.ID, emote.alias, message.Cfg.SevenTVToken)
272+
var alias string
273+
if len(emotes) == 1 && as != "" {
274+
alias = as
275+
} else {
276+
alias = emote.alias
277+
}
278+
279+
err = seventvapi.AddEmoteWithID("https://7tv.io", toChannel.ID, emote.ID, alias, message.Cfg.SevenTVToken)
268280
if err != nil {
269281
if errors.Is(err, seventvapi.NotAnEditorErr) {
270282
msg := message.Localizer.MustLocalize(&i18n.LocalizeConfig{
@@ -304,7 +316,7 @@ var yoink = Command{
304316
return fmt.Errorf("failed to yoink emote: %w", err)
305317
}
306318

307-
added = append(added, emote.alias)
319+
added = append(added, alias)
308320
}
309321

310322
msg := message.Localizer.MustLocalize(&i18n.LocalizeConfig{

seventvapi/addemote.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ import (
88
"net/http"
99
"net/url"
1010
"strings"
11+
12+
"github.com/rs/zerolog/log"
1113
)
1214

13-
func AddEmoteWithQuery(host, userTwitchID, searchQuery, seventvBearerToken string) error {
15+
func AddEmoteWithQuery(host, userTwitchID, searchQuery, newAlias, seventvBearerToken string) error {
1416
sevenTVUserData, err := GetUserByConnection(host, userTwitchID, seventvBearerToken)
1517
if err != nil {
1618
return err
@@ -24,7 +26,7 @@ func AddEmoteWithQuery(host, userTwitchID, searchQuery, seventvBearerToken strin
2426
if len(res.Data.Emotes.Search.Items) == 0 {
2527
return EmoteNotFound
2628
}
27-
id, alias := res.Data.Emotes.Search.Items[0].ID, res.Data.Emotes.Search.Items[0].DefaultName
29+
id, alias := res.Data.Emotes.Search.Items[0].ID, newAlias
2830

2931
gqlQuery := strings.ReplaceAll(`
3032
mutation EmoteSets {
@@ -45,6 +47,7 @@ mutation EmoteSets {
4547
if err != nil {
4648
return fmt.Errorf("failed to marshal request body: %w", err)
4749
}
50+
log.Debug().Any("query", string(m)).Msg("sending query for AddEmoteWithQuery")
4851
reqBody := strings.NewReader(string(m))
4952

5053
req, err := http.NewRequest("POST", svUrl, reqBody)

seventvapi/addemoteid.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99
"net/http"
1010
"net/url"
1111
"strings"
12+
13+
"github.com/rs/zerolog/log"
1214
)
1315

1416
var NotAnEditorErr error = errors.New("not and editor")
@@ -40,6 +42,7 @@ mutation EmoteSets {
4042
if err != nil {
4143
return fmt.Errorf("failed to marshal request body: %w", err)
4244
}
45+
log.Debug().Any("query", string(m)).Msg("sending query for AddEmoteWithID")
4346
reqBody := strings.NewReader(string(m))
4447

4548
req, err := http.NewRequest("POST", svUrl, reqBody)

0 commit comments

Comments
 (0)