mirror of
https://github.com/shazow/ssh-chat.git
synced 2025-04-15 08:30:36 +03:00
parent
92d821387b
commit
f6e022548c
@ -21,7 +21,6 @@ var ErrUserClosed = errors.New("user closed")
|
|||||||
// User definition, implemented set Item interface and io.Writer
|
// User definition, implemented set Item interface and io.Writer
|
||||||
type User struct {
|
type User struct {
|
||||||
Identifier
|
Identifier
|
||||||
Config UserConfig
|
|
||||||
colorIdx int
|
colorIdx int
|
||||||
joined time.Time
|
joined time.Time
|
||||||
msg chan Message
|
msg chan Message
|
||||||
@ -32,6 +31,7 @@ type User struct {
|
|||||||
closeOnce sync.Once
|
closeOnce sync.Once
|
||||||
|
|
||||||
mu sync.Mutex
|
mu sync.Mutex
|
||||||
|
Config UserConfig
|
||||||
replyTo *User // Set when user gets a /msg, for replying.
|
replyTo *User // Set when user gets a /msg, for replying.
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,6 +78,8 @@ func (u *User) SetReplyTo(user *User) {
|
|||||||
|
|
||||||
// ToggleQuietMode will toggle whether or not quiet mode is enabled
|
// ToggleQuietMode will toggle whether or not quiet mode is enabled
|
||||||
func (u *User) ToggleQuietMode() {
|
func (u *User) ToggleQuietMode() {
|
||||||
|
u.mu.Lock()
|
||||||
|
defer u.mu.Unlock()
|
||||||
u.Config.Quiet = !u.Config.Quiet
|
u.Config.Quiet = !u.Config.Quiet
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,19 +143,24 @@ func (u *User) SetHighlight(s string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
u.mu.Lock()
|
||||||
u.Config.Highlight = re
|
u.Config.Highlight = re
|
||||||
|
u.mu.Unlock()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *User) render(m Message) string {
|
func (u *User) render(m Message) string {
|
||||||
|
u.mu.Lock()
|
||||||
|
cfg := u.Config
|
||||||
|
u.mu.Unlock()
|
||||||
switch m := m.(type) {
|
switch m := m.(type) {
|
||||||
case *PublicMsg:
|
case PublicMsg:
|
||||||
return m.RenderFor(u.Config) + Newline
|
return m.RenderFor(cfg) + Newline
|
||||||
case *PrivateMsg:
|
case PrivateMsg:
|
||||||
u.SetReplyTo(m.From())
|
u.SetReplyTo(m.From())
|
||||||
return m.Render(u.Config.Theme) + Newline
|
return m.Render(cfg.Theme) + Newline
|
||||||
default:
|
default:
|
||||||
return m.Render(u.Config.Theme) + Newline
|
return m.Render(cfg.Theme) + Newline
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user