package nmslib import ( "encoding/csv" "fmt" "io/ioutil" "os" "strings" ) /* Korvaxlang - set up structure of a word iteration */ type Korvaxlang struct { English string KorvaxWord string KWCaps string KWALLCAPS string } /* Korvax2Eng - convert known korvax words into english */ func Korvax2Eng(kvwrd string) string { data, err := Asset("tmp.nmslib/korvax-lang.csv") if err != nil { panic(err) } _, err2 := os.Stat("tmp.nmslib/") if os.IsNotExist(err2) { errDir := os.MkdirAll("tmp.nmslib/", 0755) if errDir != nil { panic(errDir) } } err = ioutil.WriteFile("tmp.nmslib/korvax-lang.csv", []byte(data), 0644) csvFile, err := os.Open("tmp.nmslib/korvax-lang.csv") if err != nil { fmt.Println(err) } defer csvFile.Close() CsvLines, err := csv.NewReader(csvFile).ReadAll() if err != nil { fmt.Println(err) } for _, line := range CsvLines { klang := Korvaxlang{ English: line[0], KorvaxWord: line[1], KWCaps: line[2], KWALLCAPS: line[3], } if kvwrd == klang.KorvaxWord { errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return klang.English } else if kvwrd == klang.KWCaps { errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return strings.Title(strings.ToLower(klang.English)) } else if kvwrd == klang.KWALLCAPS { errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return strings.ToUpper(klang.English) } } // remove recource folder to keep it clean errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return "*\\Kzzzzzzt\\*" // word not found default } /* Eng2Korvax - Convert (some) english words to Korvax */ func Eng2Korvax(enwrd string) string { data, err := Asset("tmp.nmslib/korvax-lang.csv") if err != nil { panic(err) } _, err2 := os.Stat("tmp.nmslib/") if os.IsNotExist(err2) { errDir := os.MkdirAll("tmp.nmslib/", 0755) if errDir != nil { panic(errDir) } } err = ioutil.WriteFile("tmp.nmslib/korvax-lang.csv", []byte(data), 0644) csvFile, err := os.Open("tmp.nmslib/korvax-lang.csv") if err != nil { fmt.Println(err) } defer csvFile.Close() CsvLines, err := csv.NewReader(csvFile).ReadAll() if err != nil { fmt.Println(err) } for _, line := range CsvLines { klang := Korvaxlang{ English: line[0], KorvaxWord: line[1], KWCaps: line[2], KWALLCAPS: line[3], } if enwrd == klang.English { errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return klang.KorvaxWord } } // remove recource folder to keep it clean errDir := os.RemoveAll("tmp.nmslib") if errDir != nil { panic(errDir) } return "*\\Kzzzzzzt\\*" // word not found default }