Compare commits

..

26 Commits

Author SHA1 Message Date
Christian Nieves ae55110082 meh 2023-07-12 22:28:24 -05:00
Christian Nieves 4060a5c274 add build targets 2023-07-12 21:45:10 -05:00
Christian Nieves 28fae2c39d stuff 2023-07-12 21:39:47 -05:00
Christian Nieves d0dc725d64 ext 2023-07-12 17:34:35 -05:00
Christian Nieves 74b67313e7 Basic parsing 2023-07-03 18:35:57 -05:00
Christian Nieves 574a07495f bleh 2023-07-03 18:23:23 -05:00
Christian Nieves 8efe9263b1 clean 2023-07-03 17:36:08 -05:00
Christian Nieves a8b370c7b9 ok 2023-07-03 17:35:27 -05:00
Christian Nieves 6f40b3a405 start 2023-07-03 17:30:53 -05:00
Laramie Leavitt 328aa0b8f5 Merge pull request #1 from paniag/master
Fix broken configs for "remote" and "bare" repos.
2017-04-26 21:21:45 -07:00
Eric Paniagua d37b5ce6c1 Fix repo reference to go.bzl. 2016-04-14 08:39:29 -07:00
Eric Paniagua aecf949a2a Update to working commit for ws_remote repo. 2016-04-14 08:35:58 -07:00
Laramie Leavitt decd76f19d Minor whitespace, README update. 2016-03-21 16:58:04 -07:00
Laramie Leavitt dad6f57d6d Update WORKSPACE / BUILD to work with bazel at HEAD.
Uses external rules_go github repository.
2016-03-21 16:56:03 -07:00
Laramie Leavitt f189432d24 Add the vendor/ path, and add git submodules to the appropriate
subdirectory paths under vendor/

The intent is to make use of the golang 1.6 VENDOR extension
to build. As seen, the bare example does not correctly build
using bazel in this mode.
2016-03-17 18:39:54 -07:00
Laramie Leavitt 53207a1865 Hack around broken bazel go build rules.
Fix comment in submodule/remote.go
2016-03-03 18:14:20 -08:00
Laramie Leavitt dfd84d2172 Hack around broken bazel golang build rules. 2016-03-03 18:12:32 -08:00
Laramie Leavitt a2e269c3f3 Update README with better description. 2016-03-03 15:52:56 -08:00
Laramie Leavitt a40db899c9 Update README to clarify the required submodule command. 2016-03-03 15:23:43 -08:00
Laramie Leavitt 78f4f71743 Update readme to new targets. 2016-03-03 11:12:25 -08:00
Laramie Leavitt 2c27d0f51d Make examples more consistent.
Move submodule examples into submodule/*
2016-03-03 10:32:09 -08:00
Laramie Leavitt d53f356dcd Add build files for submodules 2016-03-02 10:10:19 -08:00
Laramie Leavitt 18b35c7ea9 Added submodules, but have not added example executables which reference them. 2016-03-02 08:59:07 -08:00
Laramie Leavitt 96b5352755 Add references to remote and bare repositories. 2016-03-02 01:35:30 -08:00
Laramie Leavitt e3ebf6d71e Update readme heading 2016-03-02 01:01:34 -08:00
Laramie Leavitt 1f5135d9bd Initial commit 2016-03-02 01:00:40 -08:00
7 changed files with 37 additions and 141 deletions
Symlink
+1
View File
@@ -0,0 +1 @@
/private/var/tmp/_bazel_christian/3262850bcac806b0124f7f44b81dceb1/execroot/__main__
+1 -2
View File
@@ -14,8 +14,7 @@ go_library(
importpath = "github.com/squk/lotr/cmd/beornextract", importpath = "github.com/squk/lotr/cmd/beornextract",
deps = [ deps = [
"//cmd/beornextract/types", "//cmd/beornextract/types",
"@com_github_grokify_html_strip_tags_go//:html-strip-tags-go", "@com_github_davecgh_go_spew//spew",
"@com_github_jessevdk_go_flags//:go_default_library",
"@io_bazel_rules_go//go/tools/bazel:go_default_library", "@io_bazel_rules_go//go/tools/bazel:go_default_library",
], ],
) )
+6 -92
View File
@@ -1,37 +1,19 @@
package main package main
import ( import (
"encoding/csv"
"encoding/json" "encoding/json"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"log" "log"
"os" "os"
"path/filepath" "path/filepath"
"regexp"
"strconv"
"strings"
"github.com/bazelbuild/rules_go/go/tools/bazel" "github.com/bazelbuild/rules_go/go/tools/bazel"
strip "github.com/grokify/html-strip-tags-go" "github.com/davecgh/go-spew/spew"
"github.com/jessevdk/go-flags"
"github.com/squk/lotr/cmd/beornextract/types" "github.com/squk/lotr/cmd/beornextract/types"
) )
type Options struct {
RawConversion bool `short:"r" long:"raw" description:"Enable to keep the original text from HallOfBeorn dump. Enable to prep for ALEP pipeline."`
}
var opts = Options{
RawConversion: false,
}
func main() { func main() {
_, err := flags.ParseArgs(&opts, os.Args)
if err != nil {
panic(err)
}
fmt.Println("LOTR CARD PARSE") fmt.Println("LOTR CARD PARSE")
f, err := bazel.Runfile(".") f, err := bazel.Runfile(".")
if err != nil { if err != nil {
@@ -51,86 +33,18 @@ func main() {
// Open our jsonFile // Open our jsonFile
// jsonFile, err := os.Open("cmd/beornextract/data/Bot.Cards.json") // jsonFile, err := os.Open("cmd/beornextract/data/Bot.Cards.json")
jsonFile, err := os.Open("cmd/beornextract/data/Export.Cards.json") jsonFile, err := bazel.Runfile("cmd/beornextract/data/Bot.Cards.json")
// if we os.Open returns an error then handle it // if we os.Open returns an error then handle it
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
return return
} }
fmt.Println("Successfully Opened users.json")
// defer the closing of our jsonFile so that we can parse it later on // defer the closing of our jsonFile so that we can parse it later on
defer jsonFile.Close() defer jsonFile.Close()
byteValue, _ := ioutil.ReadAll(jsonFile) byteValue, _ := ioutil.ReadAll(jsonFile)
cards := []types.HallOfBeornCard{} c := []types.HallOfBeornCard{}
json.Unmarshal(byteValue, &cards) json.Unmarshal(byteValue, &c)
spew.Dump(c)
// Open a file for writing
csvFile, err := os.Create("/Users/christian/Downloads/lotr-lcg-set-generator.csv")
defer csvFile.Close()
if err != nil {
// Handle error
}
// Create a writer
w := csv.NewWriter(csvFile)
// Write some rows
for _, card := range cards {
if card.EncounterSet != "" {
continue // skip non=player cards
}
w.Write(
[]string{
card.Octgnid,
"", // hidden
"", // hidden
card.EncounterSet,
strconv.Itoa(card.Position),
strconv.Itoa(card.Quantity),
card.Name,
fmt.Sprintf(
"%t",
card.IsUnique,
),
card.TypeName,
card.SphereName,
card.Traits,
findKeywords(card.Text),
card.Cost,
card.EngagementCost,
strconv.Itoa(card.Threat),
strconv.Itoa(card.Willpower),
strconv.Itoa(card.Attack),
strconv.Itoa(card.Defense),
strconv.Itoa(card.Health),
card.QuestPoints,
strconv.Itoa(card.VictoryPoints),
"", // Special Icon
transformText(card.Name, card.Text),
card.Flavor,
},
)
}
// Close the writer
w.Flush()
// spew.Dump(c)
}
func transformText(name, text string) string {
if opts.RawConversion {
return text
}
out := strings.ReplaceAll(text, name, "[name]") // insert name tag
out = strip.StripTags(out)
out = keywordPattern.ReplaceAllLiteralString(out, "")
return strings.TrimSpace(out)
}
var keywordPattern = regexp.MustCompile(`((?:(?:[A-Z][a-z]+(\.|\s[0-9]+\.)\s*)+))`)
func findKeywords(text string) string {
return strings.TrimSpace(keywordPattern.FindString(text))
} }
+29 -23
View File
@@ -1,27 +1,33 @@
package types package types
type HallOfBeornCard struct { type HallOfBeornCard struct {
PackCode string `json:"pack_code,omitempty"` PackCode string `json:"pack_code"`
PackName string `json:"pack_name,omitempty"` PackName string `json:"pack_name"`
IsOfficial bool `json:"is_official,omitempty"` IsOfficial bool `json:"is_official"`
TypeCode string `json:"type_code,omitempty"` TypeCode string `json:"type_code"`
TypeName string `json:"type_name,omitempty"` TypeName string `json:"type_name"`
SphereCode string `json:"sphere_code,omitempty"` SphereCode string `json:"sphere_code"`
SphereName string `json:"sphere_name,omitempty"` SphereName string `json:"sphere_name"`
Position int `json:"position,omitempty"` Position int `json:"position"`
Threat int `json:"threat,omitempty"` Code string `json:"code"`
Willpower int `json:"willpower,omitempty"` Name string `json:"name"`
Attack int `json:"attack,omitempty"` Traits string `json:"traits"`
Defense int `json:"defense,omitempty"` Text string `json:"text"`
Health int `json:"health,omitempty"` Flavor string `json:"flavor"`
Octgnid string `json:"octgnid,omitempty"` IsUnique bool `json:"is_unique"`
HasErrata bool `json:"has_errata,omitempty"` Threat int `json:"threat"`
URL string `json:"url,omitempty"` Willpower int `json:"willpower"`
QuestPoints string `json:"quest,omitempty"` Attack int `json:"attack"`
VictoryPoints int `json:"victory,omitempty"` Defense int `json:"defense"`
Imagesrc string `json:"imagesrc,omitempty"` Health int `json:"health"`
Quantity int `json:"quantity"`
EncounterSet string `json:"encounter_set,omitempty"` DeckLimit int `json:"deck_limit"`
EngagementCost string `json:"engagement_cost,omitempty"` Illustrator string `json:"illustrator"`
ThreatStrength int `json:"threat_strength,omitempty"` Octgnid string `json:"octgnid"`
HasErrata bool `json:"has_errata"`
URL string `json:"url"`
Imagesrc string `json:"imagesrc"`
}
type NormalizedCard struct {
} }
-14
View File
@@ -30,20 +30,6 @@ def go_dependencies():
sum = "h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=", sum = "h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=",
version = "v1.5.2", version = "v1.5.2",
) )
go_repository(
name = "com_github_grokify_html_strip_tags_go",
build_file_proto_mode = "disable_global",
importpath = "github.com/grokify/html-strip-tags-go",
sum = "h1:0fThFwLbW7P/kOiTBs03FsJSV9RM2M/Q/MOnCQxKMo0=",
version = "v0.0.1",
)
go_repository(
name = "com_github_jessevdk_go_flags",
build_file_proto_mode = "disable_global",
importpath = "github.com/jessevdk/go-flags",
sum = "h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc=",
version = "v1.5.0",
)
go_repository( go_repository(
name = "com_github_mattn_go_sqlite3", name = "com_github_mattn_go_sqlite3",
-3
View File
@@ -6,8 +6,5 @@ require github.com/davecgh/go-spew v1.1.1
require ( require (
github.com/bazelbuild/rules_go v0.41.0 // indirect github.com/bazelbuild/rules_go v0.41.0 // indirect
github.com/grokify/html-strip-tags-go v0.0.1 // indirect
github.com/jessevdk/go-flags v1.5.0 // indirect
github.com/mattn/go-sqlite3 v1.14.17 // indirect github.com/mattn/go-sqlite3 v1.14.17 // indirect
golang.org/x/sys v0.0.0-20210510120138-977fb7262007 // indirect
) )
-7
View File
@@ -2,12 +2,5 @@ github.com/bazelbuild/rules_go v0.41.0 h1:JzlRxsFNhlX+g4drDRPhIaU5H5LnI978wdMJ0v
github.com/bazelbuild/rules_go v0.41.0/go.mod h1:TMHmtfpvyfsxaqfL9WnahCsXMWDMICTw7XeK9yVb+YU= github.com/bazelbuild/rules_go v0.41.0/go.mod h1:TMHmtfpvyfsxaqfL9WnahCsXMWDMICTw7XeK9yVb+YU=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/grokify/html-strip-tags-go v0.0.1 h1:0fThFwLbW7P/kOiTBs03FsJSV9RM2M/Q/MOnCQxKMo0=
github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78=
github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc=
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM= github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM=
github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=