func (s *ContactManager) GetStrangers() []*User {
	clarray := make([]*User, 0)
	for _, v := range s.cl {
		if !strings.Contains(v.UserName, "@@") &&
			v.StarFriend == 0 &&
			v.VerifyFlag&8 == 0 &&
			!SpecialContact[v.UserName] {
			clarray = append(clarray, v)
		}
	}
	return clarray
}
GetStrangers: not group contact and not StarFriend and not special contact
package wxweb
import (
	"encoding/json"
	"strings"
)
var (
	SpecialContact = map[string]bool{
		"filehelper":            true,
		"newsapp":               true,
		"fmessage":              true,
		"weibo":                 true,
		"qqmail":                true,
		"tmessage":              true,
		"qmessage":              true,
		"qqsync":                true,
		"floatbottle":           true,
		"lbsapp":                true,
		"shakeapp":              true,
		"medianote":             true,
		"qqfriend":              true,
		"readerapp":             true,
		"blogapp":               true,
		"facebookapp":           true,
		"masssendapp":           true,
		"meishiapp":             true,
		"feedsapp":              true,
		"voip":                  true,
		"blogappweixin":         true,
		"weixin":                true,
		"brandsessionholder":    true,
		"weixinreminder":        true,
		"officialaccounts":      true,
		"wxitil":                true,
		"userexperience_alarm":  true,
		"notification_messages": true,
	}
)
type ContactManager struct {
	cl []*User  
}
func CreateContactManagerFromBytes(cb []byte) (*ContactManager, error) {
	var cr WxWebGetContactResponse
	if err := json.Unmarshal(cb, &cr); err != nil {
		return nil, err
	}
	cm := &ContactManager{
		cl: cr.MemberList,
	}
	return cm, nil
}
func (s *ContactManager) AddUserFromBytes(cb []byte) error {
	var cr WxWebGetContactResponse
	if err := json.Unmarshal(cb, &cr); err != nil {
		return err
	}
	s.cl = append(s.cl, cr.MemberList...)
	return nil
}
func (s *ContactManager) AddUser(user *User) {
	if user == nil {
		return
	}
	s.cl = append(s.cl, user)
}
func (s *ContactManager) GetContactByUserName(un string) *User {
	for _, v := range s.cl {
		if v.UserName == un {
			return v
		}
	}
	return nil
}
func (s *ContactManager) GetGroupContacts() []*User {
	clarray := make([]*User, 0)
	for _, v := range s.cl {
		if strings.Contains(v.UserName, "@@") {
			clarray = append(clarray, v)
		}
	}
	return clarray
}