gitee.com/lonely0422/gometalinter.git@v3.0.1-0.20190307123442-32416ab75314+incompatible/_linters/src/github.com/nbutton23/zxcvbn-go/frequency/frequency.go (about)

     1  package frequency
     2  
     3  import (
     4  	"encoding/json"
     5  	"github.com/nbutton23/zxcvbn-go/data"
     6  	"log"
     7  )
     8  
     9  type FrequencyList struct {
    10  	Name string
    11  	List []string
    12  }
    13  
    14  var FrequencyLists = make(map[string]FrequencyList)
    15  
    16  func init() {
    17  	maleFilePath := getAsset("data/MaleNames.json")
    18  	femaleFilePath := getAsset("data/FemaleNames.json")
    19  	surnameFilePath := getAsset("data/Surnames.json")
    20  	englishFilePath := getAsset("data/English.json")
    21  	passwordsFilePath := getAsset("data/Passwords.json")
    22  
    23  	FrequencyLists["MaleNames"] = GetStringListFromAsset(maleFilePath, "MaleNames")
    24  	FrequencyLists["FemaleNames"] = GetStringListFromAsset(femaleFilePath, "FemaleNames")
    25  	FrequencyLists["Surname"] = GetStringListFromAsset(surnameFilePath, "Surname")
    26  	FrequencyLists["English"] = GetStringListFromAsset(englishFilePath, "English")
    27  	FrequencyLists["Passwords"] = GetStringListFromAsset(passwordsFilePath, "Passwords")
    28  
    29  }
    30  func getAsset(name string) []byte {
    31  	data, err := zxcvbn_data.Asset(name)
    32  	if err != nil {
    33  		panic("Error getting asset " + name)
    34  	}
    35  
    36  	return data
    37  }
    38  func GetStringListFromAsset(data []byte, name string) FrequencyList {
    39  
    40  	var tempList FrequencyList
    41  	err := json.Unmarshal(data, &tempList)
    42  	if err != nil {
    43  		log.Fatal(err)
    44  	}
    45  	tempList.Name = name
    46  	return tempList
    47  }