mirror of
https://github.com/shazow/ssh-chat.git
synced 2025-06-07 19:03:17 +03:00
chat: Clean up ignore comparisons
This commit is contained in:
parent
6fe0b40327
commit
fda705a2dc
22
chat/room.go
22
chat/room.go
@ -79,6 +79,11 @@ func (r *Room) SetLogging(out io.Writer) {
|
|||||||
|
|
||||||
// HandleMsg reacts to a message, will block until done.
|
// HandleMsg reacts to a message, will block until done.
|
||||||
func (r *Room) HandleMsg(m message.Message) {
|
func (r *Room) HandleMsg(m message.Message) {
|
||||||
|
var fromID string
|
||||||
|
if fromMsg, ok := m.(message.MessageFrom); ok {
|
||||||
|
fromID = fromMsg.From().ID()
|
||||||
|
}
|
||||||
|
|
||||||
switch m := m.(type) {
|
switch m := m.(type) {
|
||||||
case *message.CommandMsg:
|
case *message.CommandMsg:
|
||||||
cmd := *m
|
cmd := *m
|
||||||
@ -89,30 +94,23 @@ func (r *Room) HandleMsg(m message.Message) {
|
|||||||
}
|
}
|
||||||
case message.MessageTo:
|
case message.MessageTo:
|
||||||
user := m.To()
|
user := m.To()
|
||||||
if _, ok := m.(*message.PrivateMsg); ok {
|
if user.Ignored.In(fromID) {
|
||||||
fromMsg, _ := m.(message.MessageFrom)
|
return // Skip ignored
|
||||||
if fromMsg != nil && user.Ignored.In(fromMsg.From().ID()) {
|
|
||||||
// Skip because ignored
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
user.Send(m)
|
user.Send(m)
|
||||||
default:
|
default:
|
||||||
fromMsg, _ := m.(message.MessageFrom)
|
|
||||||
r.history.Add(m)
|
r.history.Add(m)
|
||||||
r.Members.Each(func(_ string, item set.Item) (err error) {
|
r.Members.Each(func(_ string, item set.Item) (err error) {
|
||||||
user := item.Value().(*Member).User
|
user := item.Value().(*Member).User
|
||||||
|
|
||||||
if fromMsg != nil && user.Ignored.In(fromMsg.From().ID()) {
|
if user.Ignored.In(fromID) {
|
||||||
// Skip because ignored
|
return // Skip ignored
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := m.(*message.AnnounceMsg); ok {
|
if _, ok := m.(*message.AnnounceMsg); ok {
|
||||||
if user.Config().Quiet {
|
if user.Config().Quiet {
|
||||||
// Skip announcements
|
return // Skip announcements
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
user.Send(m)
|
user.Send(m)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user