Changeset 128 in code for trunk/downstream.go


Ignore:
Timestamp:
Mar 20, 2020, 9:11:27 AM (5 years ago)
Author:
delthas
Message:

Add WHOIS support

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/downstream.go

    r127 r128  
    946946                        Params:  params,
    947947                })
     948        case "WHOIS":
     949                if len(msg.Params) == 0 {
     950                        return ircError{&irc.Message{
     951                                Command: irc.ERR_NONICKNAMEGIVEN,
     952                                Params:  []string{dc.nick, "No nickname given"},
     953                        }}
     954                }
     955
     956                var target, mask string
     957                if len(msg.Params) == 1 {
     958                        target = ""
     959                        mask = msg.Params[0]
     960                } else {
     961                        target = msg.Params[0]
     962                        mask = msg.Params[1]
     963                }
     964                // TODO: support multiple WHOIS users
     965                if i := strings.IndexByte(mask, ','); i >= 0 {
     966                        mask = mask[:i]
     967                }
     968
     969                // TODO: support WHOIS masks
     970                uc, upstreamNick, err := dc.unmarshalEntity(mask)
     971                if err != nil {
     972                        return err
     973                }
     974
     975                var params []string
     976                if target != "" {
     977                        params = []string{target, upstreamNick}
     978                } else {
     979                        params = []string{upstreamNick}
     980                }
     981
     982                uc.SendMessage(&irc.Message{
     983                        Command: "WHOIS",
     984                        Params:  params,
     985                })
    948986        case "PRIVMSG":
    949987                var targetsStr, text string
Note: See TracChangeset for help on using the changeset viewer.