Changeset 292 in code for trunk/upstream.go
- Timestamp:
- May 11, 2020, 10:25:49 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/upstream.go
r288 r292 25 25 "labeled-response": true, 26 26 "message-tags": true, 27 "multi-prefix": true, 27 28 "server-time": true, 28 29 } … … 37 38 modes channelModes 38 39 creationTime string 39 Members map[string]*membership 40 Members map[string]*memberships 40 41 complete bool 41 42 } … … 230 231 } 231 232 232 func (uc *upstreamConn) parseMembershipPrefix(s string) (membership *membership, nick string) { 233 func (uc *upstreamConn) parseMembershipPrefix(s string) (ms *memberships, nick string) { 234 memberships := make(memberships, 0, 4) 235 i := 0 233 236 for _, m := range uc.availableMemberships { 234 if m.Prefix == s[0] { 235 return &m, s[1:] 236 } 237 } 238 return nil, s 237 if i >= len(s) { 238 break 239 } 240 if s[i] == m.Prefix { 241 memberships = append(memberships, m) 242 i++ 243 } 244 } 245 return &memberships, s[i:] 239 246 } 240 247 … … 645 652 646 653 for _, ch := range uc.channels { 647 if membership , ok := ch.Members[msg.Prefix.Name]; ok {654 if memberships, ok := ch.Members[msg.Prefix.Name]; ok { 648 655 delete(ch.Members, msg.Prefix.Name) 649 ch.Members[newNick] = membership 656 ch.Members[newNick] = memberships 650 657 uc.appendLog(ch.Name, msg) 651 658 uc.appendHistory(ch.Name, msg) … … 674 681 Name: ch, 675 682 conn: uc, 676 Members: make(map[string]*membership ),683 Members: make(map[string]*memberships), 677 684 } 678 685 … … 940 947 members := splitSpace(members) 941 948 for i, member := range members { 942 membership , nick := uc.parseMembershipPrefix(member)943 members[i] = membership .String() + dc.marshalEntity(uc.network, nick)949 memberships, nick := uc.parseMembershipPrefix(member) 950 members[i] = memberships.Format(dc) + dc.marshalEntity(uc.network, nick) 944 951 } 945 952 memberStr := strings.Join(members, " ") … … 961 968 962 969 for _, s := range splitSpace(members) { 963 membership , nick := uc.parseMembershipPrefix(s)964 ch.Members[nick] = membership 970 memberships, nick := uc.parseMembershipPrefix(s) 971 ch.Members[nick] = memberships 965 972 } 966 973 case irc.RPL_ENDOFNAMES: … … 1113 1120 prefix, channel := uc.parseMembershipPrefix(channel) 1114 1121 channel = dc.marshalEntity(uc.network, channel) 1115 channelList[i] = prefix. String() + channel1122 channelList[i] = prefix.Format(dc) + channel 1116 1123 } 1117 1124 channels := strings.Join(channelList, " ")
Note:
See TracChangeset
for help on using the changeset viewer.