commit 122c876d8face92a2ebcbda005ecb249dbf065b3
parent 4f694f191e5834e91b8d1e26f932f302f7165702
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 25 May 2023 23:36:37 -0700
simplify code
Diffstat:
7 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/pkg/database/tableUsers.go b/pkg/database/tableUsers.go
@@ -15,12 +15,16 @@ import (
type UserID int64
-type Username string
-
func (u UserID) String() string {
return utils.FormatInt64(int64(u))
}
+type Username string
+
+func (u Username) AtStr() string {
+ return "@" + string(u)
+}
+
// User struct an internal representation of a user for our app
type User struct {
ID UserID
diff --git a/pkg/web/handlers/api/v1/handlers.go b/pkg/web/handlers/api/v1/handlers.go
@@ -325,7 +325,7 @@ func shouldPlaySound(authUser *database.User, lastKnownDate string, msgs []datab
if createdAtTrunc.After(lastKnownDateTrunc) {
if msg.User.ID != authUser.ID {
newMessageSound = true
- if strings.Contains(msg.Message, "@"+string(authUser.Username)) {
+ if strings.Contains(msg.Message, authUser.Username.AtStr()) {
taggedSound = true
}
if msg.ToUserID != nil && *msg.ToUserID == authUser.ID {
diff --git a/pkg/web/handlers/api/v1/slashInterceptor.go b/pkg/web/handlers/api/v1/slashInterceptor.go
@@ -174,7 +174,7 @@ func handleListModeratorsCmd(c *Command) (handled bool) {
if len(mods) > 0 {
c.message += "\n"
for _, mod := range mods {
- c.message += "@" + string(mod.Username) + "\n"
+ c.message += mod.Username.AtStr() + "\n"
}
} else {
c.message += "no moderators"
@@ -601,7 +601,7 @@ func handleGroupUsersCmd(c *Command) (handled bool) {
if len(users) > 0 {
c.message += "\n"
for _, user := range users {
- c.message += "@" + string(user.User.Username) + "\n"
+ c.message += user.User.Username.AtStr() + "\n"
}
} else {
c.message += "no user in th group: " + groupName
@@ -753,7 +753,7 @@ func handleWhitelistCmd(c *Command) (handled bool) {
if len(whitelistedUsers) > 0 {
usernames := make([]string, 0)
for _, whitelistedUser := range whitelistedUsers {
- usernames = append(usernames, "@"+string(whitelistedUser.User.Username))
+ usernames = append(usernames, whitelistedUser.User.Username.AtStr())
}
sort.Slice(usernames, func(i, j int) bool { return usernames[i] < usernames[j] })
c.message = "whitelisted users: " + strings.Join(usernames, ", ")
@@ -1108,7 +1108,7 @@ func handleListIgnoredCmd(c *Command) (handled bool) {
if len(ignoredUsers) > 0 {
c.message += "\n"
for _, ignoredUser := range ignoredUsers {
- c.message += "@" + string(ignoredUser.IgnoredUser.Username) + "\n"
+ c.message += ignoredUser.IgnoredUser.Username.AtStr() + "\n"
}
} else {
c.message += "no ignored users"
@@ -1129,7 +1129,7 @@ func handleListPmWhitelistCmd(c *Command) (handled bool) {
if len(pmWhitelistUsers) > 0 {
c.message += "\n"
for _, ignoredUser := range pmWhitelistUsers {
- c.message += "@" + string(ignoredUser.WhitelistedUser.Username) + "\n"
+ c.message += ignoredUser.WhitelistedUser.Username.AtStr() + "\n"
}
} else {
c.message += "no PM whitelisted users"
diff --git a/pkg/web/handlers/api/v1/snippetInterceptor.go b/pkg/web/handlers/api/v1/snippetInterceptor.go
@@ -48,7 +48,7 @@ func autocompleteTags(html string) string {
for _, au := range activeUsers {
l := strings.ToLower(string(au.Username))
if strings.HasPrefix(l, s1) {
- return "@" + string(au.Username)
+ return au.Username.AtStr()
}
}
return s
diff --git a/pkg/web/handlers/api/v1/topBarHandler.go b/pkg/web/handlers/api/v1/topBarHandler.go
@@ -601,7 +601,7 @@ func colorifyTaggedUsers(html string, getUsersByUsername getUsersByUsernameFn) (
taggedUsersMap := make(map[string]database.User)
taggedUsersIDsMap := make(map[database.UserID]database.User)
for _, taggedUser := range taggedUsers {
- taggedUsersMap["@"+strings.ToLower(string(taggedUser.Username))] = taggedUser
+ taggedUsersMap[strings.ToLower(taggedUser.Username.AtStr())] = taggedUser
if taggedUser.Username != config.NullUsername {
taggedUsersIDsMap[taggedUser.ID] = taggedUser
}
diff --git a/pkg/web/handlers/api/v1/werewolf.go b/pkg/web/handlers/api/v1/werewolf.go
@@ -92,13 +92,13 @@ func (b *Werewolf) InterceptPreGameMsg(cmd *Command) {
}
b.players[cmd.authUser.Username] = player
b.playersAlive[cmd.authUser.Username] = player
- b.Narrate("@"+string(cmd.authUser.Username)+" joined the Game", nil, nil)
+ b.Narrate(cmd.authUser.Username.AtStr()+" joined the Game", nil, nil)
cmd.err = ErrRedirect
return
} else if cmd.message == "/spectate" {
b.spectatorSet.Insert(cmd.authUser.ID)
- b.Narrate("@"+string(cmd.authUser.Username)+" spectate the Game", nil, nil)
+ b.Narrate(cmd.authUser.Username.AtStr()+" spectate the Game", nil, nil)
cmd.err = ErrRedirect
return
@@ -341,7 +341,7 @@ func (b *Werewolf) NarrateRaw(msg string, toUserID *database.UserID, groupID *da
func (b *Werewolf) displayRoles() {
msg := "Roles were:\n"
for _, player := range b.players {
- msg += "@" + string(player.Username) + " : " + player.Role + "\n"
+ msg += player.Username.AtStr() + " : " + player.Role + "\n"
}
b.Narrate(msg, nil, nil)
}
@@ -472,7 +472,7 @@ func (b *Werewolf) StartGame(db *database.DkfDB) {
func (b *Werewolf) alivePlayersStr() (out string) {
arr := make([]string, 0)
for _, player := range b.playersAlive {
- arr = append(arr, "@"+string(player.Username))
+ arr = append(arr, player.Username.AtStr())
}
sort.Slice(arr, func(i, j int) bool { return arr[i] < arr[j] })
return strings.Join(arr, ", ")
diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go
@@ -5012,7 +5012,7 @@ func applyUserFilters(db *database.DkfDB, authUser *database.User, msg *database
}
}
- if mentionsOnlyQuery && !strings.Contains(msg.Message, "@"+string(authUser.Username)) {
+ if mentionsOnlyQuery && !strings.Contains(msg.Message, authUser.Username.AtStr()) {
return false
}
return true
@@ -5188,7 +5188,7 @@ Loop:
var newMessageSound, taggedSound, pmSound bool
if msg.User.ID != authUser.ID {
newMessageSound = true
- if strings.Contains(renderedMsg, "@"+string(authUser.Username)) {
+ if strings.Contains(renderedMsg, authUser.Username.AtStr()) {
taggedSound = true
}
if msg.ToUserID != nil && msg.ToUser.ID == authUser.ID {