Append a suffix if user is a guest user (nctalk) (#1250)

Signed-off-by: Gary Kim <gary@garykim.dev>
This commit is contained in:
Gary Kim 2020-10-01 16:59:35 -04:00 committed by GitHub
parent 214a6a1386
commit 219a5453f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 56 additions and 3 deletions

View File

@ -70,6 +70,13 @@ func (b *Btalk) JoinChannel(channel config.ChannelInfo) error {
return err return err
} }
b.rooms = append(b.rooms, newRoom) b.rooms = append(b.rooms, newRoom)
// Config
guestSuffix := " (Guest)"
if b.IsKeySet("GuestSuffix") {
guestSuffix = b.GetString("GuestSuffix")
}
go func() { go func() {
for msg := range c { for msg := range c {
// ignore messages that are one of the following // ignore messages that are one of the following
@ -81,7 +88,7 @@ func (b *Btalk) JoinChannel(channel config.ChannelInfo) error {
remoteMessage := config.Message{ remoteMessage := config.Message{
Text: formatRichObjectString(msg.Message, msg.MessageParameters), Text: formatRichObjectString(msg.Message, msg.MessageParameters),
Channel: newRoom.room.Token, Channel: newRoom.room.Token,
Username: msg.ActorDisplayName, Username: DisplayName(msg, guestSuffix),
UserID: msg.ActorID, UserID: msg.ActorID,
Account: b.Account, Account: b.Account,
} }
@ -144,3 +151,15 @@ func formatRichObjectString(message string, parameters map[string]ocs.RichObject
return message return message
} }
func DisplayName(msg ocs.TalkRoomMessageData, suffix string) string {
if msg.ActorType == ocs.ActorGuest {
if msg.ActorDisplayName == "" {
return "Guest"
}
return msg.ActorDisplayName + suffix
}
return msg.ActorDisplayName
}

2
go.mod
View File

@ -50,7 +50,7 @@ require (
github.com/zfjagann/golang-ring v0.0.0-20190304061218-d34796e0a6c2 github.com/zfjagann/golang-ring v0.0.0-20190304061218-d34796e0a6c2
golang.org/x/image v0.0.0-20200801110659-972c09e46d76 golang.org/x/image v0.0.0-20200801110659-972c09e46d76
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43 golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43
gomod.garykim.dev/nc-talk v0.1.3 gomod.garykim.dev/nc-talk v0.1.4
gopkg.in/olahol/melody.v1 v1.0.0-20170518105555-d52139073376 gopkg.in/olahol/melody.v1 v1.0.0-20170518105555-d52139073376
layeh.com/gumble v0.0.0-20200818122324-146f9205029b layeh.com/gumble v0.0.0-20200818122324-146f9205029b
) )

2
go.sum
View File

@ -993,6 +993,8 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1N
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gomod.garykim.dev/nc-talk v0.1.3 h1:u4TPUR5++xjNTHoiO82/E8xhGFpCbwwfcY/yUv3Rp60= gomod.garykim.dev/nc-talk v0.1.3 h1:u4TPUR5++xjNTHoiO82/E8xhGFpCbwwfcY/yUv3Rp60=
gomod.garykim.dev/nc-talk v0.1.3/go.mod h1:zKg8yxCk2KaTy6aPDEfRac0Jik72czX+nRsG8CZuhtc= gomod.garykim.dev/nc-talk v0.1.3/go.mod h1:zKg8yxCk2KaTy6aPDEfRac0Jik72czX+nRsG8CZuhtc=
gomod.garykim.dev/nc-talk v0.1.4 h1:U9viudEgq/biocorgWvZRVR+27IPEczYl/yszSvzN+8=
gomod.garykim.dev/nc-talk v0.1.4/go.mod h1:zKg8yxCk2KaTy6aPDEfRac0Jik72czX+nRsG8CZuhtc=
google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=

View File

@ -1405,6 +1405,9 @@ Login = "talkuser"
# Password of the bot # Password of the bot
Password = "talkuserpass" Password = "talkuserpass"
# Suffix for Guest Users
GuestSuffix = " (Guest)"
################################################################### ###################################################################
# #
# Mumble # Mumble

View File

@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [v0.1.4](https://github.com/gary-kim/go-nc-talk/tree/v0.1.4) - 2020-09-22
[Full Changelog](https://github.com/gary-kim/go-nc-talk/compare/v0.1.3...v0.1.4)
### Fixed
- Add ActorType for message data [\#18](https://github.com/gary-kim/go-nc-talk/pull/18) ([@gary-kim](https://github.com/gary-kim))
## [v0.1.3](https://github.com/gary-kim/go-nc-talk/tree/v0.1.3) - 2020-09-03 ## [v0.1.3](https://github.com/gary-kim/go-nc-talk/tree/v0.1.3) - 2020-09-03
[Full Changelog](https://github.com/gary-kim/go-nc-talk/compare/v0.1.2...v0.1.3) [Full Changelog](https://github.com/gary-kim/go-nc-talk/compare/v0.1.2...v0.1.3)

View File

@ -22,6 +22,9 @@ import (
// MessageType describes what kind of message a returned Nextcloud Talk message is // MessageType describes what kind of message a returned Nextcloud Talk message is
type MessageType string type MessageType string
// ActorType describes what kind of actor a returned Nextcloud Talk message is from
type ActorType string
const ( const (
// MessageComment is a Nextcloud Talk message that is a comment // MessageComment is a Nextcloud Talk message that is a comment
MessageComment MessageType = "comment" MessageComment MessageType = "comment"
@ -31,12 +34,19 @@ const (
// MessageCommand is a Nextcloud Talk message that is a command // MessageCommand is a Nextcloud Talk message that is a command
MessageCommand MessageType = "command" MessageCommand MessageType = "command"
// ActorUser is a Nextcloud Talk message sent by a user
ActorUser ActorType = "users"
// ActorGuest is a Nextcloud Talk message sent by a guest
ActorGuest ActorType = "guests"
) )
// TalkRoomMessageData describes the data part of a ocs response for a Talk room message // TalkRoomMessageData describes the data part of a ocs response for a Talk room message
type TalkRoomMessageData struct { type TalkRoomMessageData struct {
Message string `json:"message"` Message string `json:"message"`
ID int `json:"id"` ID int `json:"id"`
ActorType ActorType `json:"actorType"`
ActorID string `json:"actorId"` ActorID string `json:"actorId"`
ActorDisplayName string `json:"actorDisplayName"` ActorDisplayName string `json:"actorDisplayName"`
SystemMessage string `json:"systemMessage"` SystemMessage string `json:"systemMessage"`
@ -63,6 +73,17 @@ func (m *TalkRoomMessageData) PlainMessage() string {
return tr return tr
} }
// DisplayName returns the display name for the sender of the message (" (Guest)" is appended if sent by a guest user)
func (m *TalkRoomMessageData) DisplayName() string {
if m.ActorType == ActorGuest {
if m.ActorDisplayName == "" {
return "Guest"
}
return m.ActorDisplayName + " (Guest)"
}
return m.ActorDisplayName
}
// TalkRoomMessage describes an ocs response for a Talk room message // TalkRoomMessage describes an ocs response for a Talk room message
type TalkRoomMessage struct { type TalkRoomMessage struct {
OCS talkRoomMessage `json:"ocs"` OCS talkRoomMessage `json:"ocs"`

2
vendor/modules.txt vendored
View File

@ -293,7 +293,7 @@ golang.org/x/text/secure/bidirule
golang.org/x/text/transform golang.org/x/text/transform
golang.org/x/text/unicode/bidi golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm golang.org/x/text/unicode/norm
# gomod.garykim.dev/nc-talk v0.1.3 # gomod.garykim.dev/nc-talk v0.1.4
gomod.garykim.dev/nc-talk gomod.garykim.dev/nc-talk
gomod.garykim.dev/nc-talk/constants gomod.garykim.dev/nc-talk/constants
gomod.garykim.dev/nc-talk/ocs gomod.garykim.dev/nc-talk/ocs