Changeset 286 in code for trunk


Ignore:
Timestamp:
May 1, 2020, 4:12:47 PM (5 years ago)
Author:
contact
Message:

Unify upstream NOTICE and PRIVMSG handling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/upstream.go

    r284 r286  
    278278                })
    279279                return nil
    280         case "NOTICE":
     280        case "NOTICE", "PRIVMSG":
    281281                if msg.Prefix == nil {
    282282                        return fmt.Errorf("expected a prefix")
    283283                }
    284284
     285                var entity, text string
     286                if err := parseMessageParams(msg, &entity, &text); err != nil {
     287                        return err
     288                }
     289
     290                if msg.Prefix.Name == serviceNick {
     291                        uc.logger.Printf("skipping %v from soju's service: %v", msg.Command, msg)
     292                        break
     293                }
     294                if entity == serviceNick {
     295                        uc.logger.Printf("skipping %v to soju's service: %v", msg.Command, msg)
     296                        break
     297                }
     298
    285299                if msg.Prefix.User == "" && msg.Prefix.Host == "" { // server message
    286300                        uc.produce("", msg, nil)
    287                 } else { // regular user NOTICE
    288                         var entity, text string
    289                         if err := parseMessageParams(msg, &entity, &text); err != nil {
    290                                 return err
    291                         }
    292 
     301                } else { // regular user NOTICE or PRIVMSG
    293302                        target := entity
    294303                        if target == uc.nick {
     
    10841093                        })
    10851094                })
    1086         case "PRIVMSG":
    1087                 if msg.Prefix == nil {
    1088                         return fmt.Errorf("expected a prefix")
    1089                 }
    1090 
    1091                 var entity, text string
    1092                 if err := parseMessageParams(msg, &entity, &text); err != nil {
    1093                         return err
    1094                 }
    1095 
    1096                 if msg.Prefix.Name == serviceNick {
    1097                         uc.logger.Printf("skipping PRIVMSG from soju's service: %v", msg)
    1098                         break
    1099                 }
    1100                 if entity == serviceNick {
    1101                         uc.logger.Printf("skipping PRIVMSG to soju's service: %v", msg)
    1102                         break
    1103                 }
    1104 
    1105                 target := entity
    1106                 if target == uc.nick {
    1107                         target = msg.Prefix.Name
    1108                 }
    1109                 uc.produce(target, msg, nil)
    11101095        case "INVITE":
    11111096                var nick, channel string
Note: See TracChangeset for help on using the changeset viewer.