9 Commits

Author SHA1 Message Date
bradley.richins
f291891139 Temp directory renamed to nms-{SEED} 2020-10-20 15:14:42 -06:00
bradley.richins
230cefb85d Temp files are now stored in system temp dir 2020-10-20 14:47:04 -06:00
bradley.richins
84df8142c6 Updated 2020-10-20 14:45:49 -06:00
bradley.richins
38e45c4f60 Minnor change
Renamed strut Korvaxlang to KorvaxWord and
English > english
KorvaxWord > korvax
KWCaps > kwcaps
KWALLCAPS > kwallcaps
2020-10-20 12:43:19 -06:00
bradley.richins
221f4e59e1 Updated README.md 2020-10-20 00:08:37 -06:00
bradley.richins
8ccafd5c0c Renamed from LICENSE 2020-10-20 00:06:19 -06:00
bradley.richins
59fcf3e2f0 Renamed to COPYING 2020-10-20 00:05:33 -06:00
bradley.richins
59cc61105a Updated README.md 2020-10-19 22:37:00 -06:00
bradley.richins
ea438a7f40 Example Glyph Banner 2020-10-19 22:36:42 -06:00
6 changed files with 335 additions and 275 deletions

View File

BIN
NewLennon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

112
README.md
View File

@@ -16,28 +16,116 @@ go get -u gitlab.com/bradley.richins/nmslib
## Usage ## Usage
**Example:**
```golang ```golang
package main package main
import ( import (
"fmt" "fmt"
"gitlab.com/bradley.richins/nmslib" "gitlab.com/bradley.richins/nmslib"
) )
func main() { func main() {
portalcode := "006afa556c30" portalcode := "006afa556c30"
tstvar, err := nmslib.P2gc(portalcode) tstvar, err := nmslib.P2gc(portalcode)
if err != nil { if err != nil {
panic(err) panic(err)
} }
fmt.Printf("Input: \t%s\nExpecting: \t042F:0079:0D55:006A\nHave: \t%s\n", portalcode, tstvar) fmt.Printf("Input:\t%s\nExpecting:\t042F:0079:0D55:006A\nHave:\t%s\n", portalcode, tstvar)
nmslib.CreateBanner(portalcode, "NewLennon.png", 0)
fmt.Println(nmslib.Korvax2Eng("eapoluch")) nmslib.CreateBanner(portalcode, "NewLennon.png", 0)
fmt.Println(nmslib.Eng2Korvax("emergency"))
fmt.Println(nmslib.Korvax2Eng("eapoluch"))
fmt.Println(nmslib.Eng2Korvax("emergency"))
} }
``` ```
### Creating a Glyph banner with CreateBanner()
This function takes 3 parameters:
* portalcode: 12 char hex string of portal location
* savename: Save location and name
* Horizontal/Vertical layout: 0 is horizontal, 1 is vertical
**Example:**
Horizontal Layout for Galactic Hub [HUB10-6A Icarus Sun](https://nomanssky.gamepedia.com/HUB10-6A_Icarus_Sun) Eniwa 68/L3
```golang
nmslib.CreateBanner("006afa556c30", "NewLennon.png", 0)
```
![](NewLennon.png)
### Converting Portal code to Galactic address with P2gc()
This function only takes 1 parameter and returns a string
* portalcode: 12 char hex string of portal glyphs
**Example:**
```golang
ga, _ := nmslib.P3gc("006afa556c30")
fmt.Println(ga)
```
Output:
``042F:0079:0D55:006A``
### Converting Galactic coordinates to Portal codes with Gc2p()
This function only takes 1 parameter and returns a string
* galacticaddress: 16 char 4 block hex address
**Example:**
```golang
pc, _ := nmslib.P3gc("042F:0079:0D55:006A")
fmt.Println(pc)
```
Output:
``006AFA556C30``
### Translate Korvax to English with Korvax2Eng()
This function takes only 1 parameter and returns a string
* korvaxword: Any known Korvaxen word (ex. eapoluch)
**Example:**
```golang
fmt.Println(Korvax2Eng("eapoluch"))
```
Output:
``emergency``
### Translate English to Korvax with Eng2Korvax()
This function takes only 1 parameter and returns a string
* engword: English word to attempt conversion
**Example:**
```golang
fmt.Println(Eng2Korvax("emergency"))
```
Output:
``eapoluch``
## License ## License
[MIT](https://choosealicense.com/licenses/mit/) [MIT](COPYING)

View File

@@ -24,6 +24,14 @@ func CreateBanner(portalhex string, savename string, vopt int) {
var err error var err error
var GlyphHex [12]int64 var GlyphHex [12]int64
var glyphImg [12]string var glyphImg [12]string
// Setup temp dir
tempdir, err := ioutil.TempDir("", "nmslib-")
if err != nil {
panic(err)
}
defer os.RemoveAll(tempdir)
// verify len of portalhex // verify len of portalhex
if len(portalhex) == 12 { if len(portalhex) == 12 {
// get hex value from each digit in given string to an array of int64 // get hex value from each digit in given string to an array of int64
@@ -35,7 +43,7 @@ func CreateBanner(portalhex string, savename string, vopt int) {
} }
// assign image location of its glyph hex value to an array of strings // assign image location of its glyph hex value to an array of strings
for j := 0; j < len(glyphImg); j++ { for j := 0; j < len(glyphImg); j++ {
glyphImg[j] = fmt.Sprintf("tmp.nmslib/glyphs/GLYPH-%X.png", GlyphHex[j]) glyphImg[j] = fmt.Sprintf("glyphs/GLYPH-%X.png", GlyphHex[j])
} }
// pull images need from glyph.go and saved them to ./glyphs/ // pull images need from glyph.go and saved them to ./glyphs/
for k := 0; k < len(glyphImg); k++ { for k := 0; k < len(glyphImg); k++ {
@@ -43,24 +51,25 @@ func CreateBanner(portalhex string, savename string, vopt int) {
if err != nil { if err != nil {
panic(err) panic(err)
} }
_, err2 := os.Stat("tmp.nmslib/glyphs") _, err2 := os.Stat(tempdir + "/glyphs/")
if os.IsNotExist(err2) { if os.IsNotExist(err2) {
errDir := os.MkdirAll("tmp.nmslib/glyphs", 0755) errDir := os.MkdirAll(tempdir+"/glyphs", 0755)
if errDir != nil { if errDir != nil {
panic(errDir) panic(errDir)
} }
} }
err = ioutil.WriteFile(glyphImg[k], []byte(data), 0644)
err = ioutil.WriteFile(tempdir+"/"+glyphImg[k], []byte(data), 0644)
} }
} }
// load images for processing using github.com/ozankasikci/go-image-merge // load images for processing using github.com/ozankasikci/go-image-merge
grids := []*gim.Grid{ grids := []*gim.Grid{
{ImageFilePath: glyphImg[0]}, {ImageFilePath: glyphImg[1]}, {ImageFilePath: tempdir + "/" + glyphImg[0]}, {ImageFilePath: tempdir + "/" + glyphImg[1]},
{ImageFilePath: glyphImg[2]}, {ImageFilePath: glyphImg[3]}, {ImageFilePath: tempdir + "/" + glyphImg[2]}, {ImageFilePath: tempdir + "/" + glyphImg[3]},
{ImageFilePath: glyphImg[4]}, {ImageFilePath: glyphImg[5]}, {ImageFilePath: tempdir + "/" + glyphImg[4]}, {ImageFilePath: tempdir + "/" + glyphImg[5]},
{ImageFilePath: glyphImg[6]}, {ImageFilePath: glyphImg[7]}, {ImageFilePath: tempdir + "/" + glyphImg[6]}, {ImageFilePath: tempdir + "/" + glyphImg[7]},
{ImageFilePath: glyphImg[8]}, {ImageFilePath: glyphImg[9]}, {ImageFilePath: tempdir + "/" + glyphImg[8]}, {ImageFilePath: tempdir + "/" + glyphImg[9]},
{ImageFilePath: glyphImg[10]}, {ImageFilePath: glyphImg[11]}, {ImageFilePath: tempdir + "/" + glyphImg[10]}, {ImageFilePath: tempdir + "/" + glyphImg[11]},
} }
if vopt == 1 { if vopt == 1 {
// Merge images horizontally // Merge images horizontally
@@ -83,9 +92,4 @@ func CreateBanner(portalhex string, savename string, vopt int) {
file, err := os.Create(savename) file, err := os.Create(savename)
err = png.Encode(file, rgba) err = png.Encode(file, rgba)
} }
// remove glyphs folder to keep it clean
errDir := os.RemoveAll("tmp.nmslib/glyphs")
if errDir != nil {
panic(errDir)
}
} }

120
lang.go
View File

@@ -8,73 +8,53 @@ import (
"strings" "strings"
) )
/* // KorvaxWord - set up structure of a word iteration
Korvaxlang - set up structure of a word iteration type korvaxWord struct {
*/ english string
type Korvaxlang struct { korvax string
English string kwcaps string
KorvaxWord string kwallcaps string
KWCaps string
KWALLCAPS string
} }
/* /*
Korvax2Eng - convert known korvax words into english Korvax2Eng - Translate a Korvax word to English
*/ */
func Korvax2Eng(kvwrd string) string { func Korvax2Eng(kvwrd string) string {
data, err := Asset("tmp.nmslib/korvax-lang.csv") tempdir, err := ioutil.TempDir("", "nmslib-")
if err != nil { if err != nil {
panic(err) panic(err)
} }
_, err2 := os.Stat("tmp.nmslib/") defer os.RemoveAll(tempdir)
if os.IsNotExist(err2) {
errDir := os.MkdirAll("tmp.nmslib/", 0755) data, err := Asset("korvax-lang.csv")
if errDir != nil { if err != nil {
panic(errDir) panic(err)
}
} }
err = ioutil.WriteFile("tmp.nmslib/korvax-lang.csv", []byte(data), 0644) err = ioutil.WriteFile(tempdir+"/korvax-lang.csv", []byte(data), 0644)
csvFile, err := os.Open("tmp.nmslib/korvax-lang.csv") csvFile, err := os.Open(tempdir + "/korvax-lang.csv")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
defer csvFile.Close() defer csvFile.Close()
CsvLines, err := csv.NewReader(csvFile).ReadAll() csvlines, err := csv.NewReader(csvFile).ReadAll()
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
for _, line := range CsvLines { for _, line := range csvlines {
klang := Korvaxlang{ klang := korvaxWord{
English: line[0], english: line[0],
KorvaxWord: line[1], korvax: line[1],
KWCaps: line[2], kwcaps: line[2],
KWALLCAPS: line[3], kwallcaps: line[3],
} }
if kvwrd == klang.KorvaxWord { if kvwrd == klang.korvax {
errDir := os.RemoveAll("tmp.nmslib") return klang.english
if errDir != nil { } else if kvwrd == klang.korvax {
panic(errDir) return strings.Title(strings.ToLower(klang.english))
} } else if kvwrd == klang.kwallcaps {
return klang.English return strings.ToUpper(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 return "*\\Kzzzzzzt\\*" // word not found default
} }
@@ -82,46 +62,36 @@ func Korvax2Eng(kvwrd string) string {
Eng2Korvax - Convert (some) english words to Korvax Eng2Korvax - Convert (some) english words to Korvax
*/ */
func Eng2Korvax(enwrd string) string { func Eng2Korvax(enwrd string) string {
data, err := Asset("tmp.nmslib/korvax-lang.csv") tempdir, err := ioutil.TempDir("", "nmslib")
if err != nil { if err != nil {
panic(err) panic(err)
} }
_, err2 := os.Stat("tmp.nmslib/") defer os.RemoveAll(tempdir)
if os.IsNotExist(err2) {
errDir := os.MkdirAll("tmp.nmslib/", 0755) data, err := Asset("korvax-lang.csv")
if errDir != nil { if err != nil {
panic(errDir) panic(err)
}
} }
err = ioutil.WriteFile("tmp.nmslib/korvax-lang.csv", []byte(data), 0644) err = ioutil.WriteFile(tempdir+"/korvax-lang.csv", []byte(data), 0644)
csvFile, err := os.Open("tmp.nmslib/korvax-lang.csv") csvFile, err := os.Open(tempdir + "/korvax-lang.csv")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
defer csvFile.Close() defer csvFile.Close()
CsvLines, err := csv.NewReader(csvFile).ReadAll() csvlines, err := csv.NewReader(csvFile).ReadAll()
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
for _, line := range CsvLines { for _, line := range csvlines {
klang := Korvaxlang{ klang := korvaxWord{
English: line[0], english: line[0],
KorvaxWord: line[1], korvax: line[1],
KWCaps: line[2], kwcaps: line[2],
KWALLCAPS: line[3], kwallcaps: line[3],
} }
if enwrd == klang.English { if enwrd == klang.english {
errDir := os.RemoveAll("tmp.nmslib") return klang.korvax
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 return "*\\Kzzzzzzt\\*" // word not found default
} }

File diff suppressed because one or more lines are too long