diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index b9d28c1..ec6d62f 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,25 +1,4 @@ -# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.231.5/containers/go/.devcontainer/base.Dockerfile +ARG VARIANT="1.21-bullseye" +FROM mcr.microsoft.com/devcontainers/go:1-${VARIANT} -# [Choice] Go version (use -bullseye variants on local arm64/Apple Silicon): 1, 1.16, 1.17, 1-bullseye, 1.16-bullseye, 1.17-bullseye, 1-buster, 1.16-buster, 1.17-buster -ARG VARIANT="1.18-bullseye" -FROM mcr.microsoft.com/vscode/devcontainers/go:0-${VARIANT} - -# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10 -ARG NODE_VERSION="none" -RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi - -# [Optional] Uncomment this section to install additional OS packages. -RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ - && apt-get -y install --no-install-recommends graphviz cmake zlib1g-dev genisoimage -RUN cd /tmp && git clone https://github.com/hamstergene/libdmg-hfsplus \ - && cd libdmg-hfsplus && cmake . -B build && make -C build/dmg -j8 && cp build/dmg/dmg /usr/local/bin \ - && rm -rf /tmp/libdmg-hfsplus - -# [Optional] Uncomment the next lines to use go get to install anything else you need -USER vscode -# RUN go get -x -# RUN npm install -g @angular/CLI -# [Optional] Uncomment this line to install global node packages. -# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 -RUN go install github.com/tc-hib/go-winres@latest \ - && go install github.com/goreleaser/goreleaser@latest \ No newline at end of file +USER vscode \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 2a9a478..faf950c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,40 +1,32 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: -// https://github.com/microsoft/vscode-dev-containers/tree/v0.231.5/containers/go +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/go { "name": "Go", "build": { "dockerfile": "Dockerfile", "args": { - // Update the VARIANT arg to pick a version of Go: 1, 1.18, 1.17 - // Append -bullseye or -buster to pin to an OS version. - // Use -bullseye variants on local arm64/Apple Silicon. - "VARIANT": "1.18", - // Options - "NODE_VERSION": "lts/*" + "VARIANT": "1.21" } }, - "runArgs": [ - "--cap-add=SYS_PTRACE", - "--security-opt", - "seccomp=unconfined" - ], - // Set *default* container specific settings.json values on container create. - "settings": { - "go.toolsManagement.checkForUpdates": "local", - "go.useLanguageServer": true, - "go.gopath": "/go" + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Set *default* container specific settings.json values on container create. + "settings": { + "go.toolsManagement.checkForUpdates": "local", + "go.useLanguageServer": true, + "go.gopath": "/go" + }, + "extensions": [ + "golang.Go", + "jinliming2.vscode-go-template", + "golang.go" + ] + } }, - // Add the IDs of extensions you want installed when the container is created. - "extensions": [ - "golang.Go", - "jinliming2.vscode-go-template", - "golang.go" - ], - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - // Use 'postCreateCommand' to run commands after the container is created. - // "postCreateCommand": "go version", - // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. - "remoteUser": "vscode", - "features": {} + "features": { + "ghcr.io/devcontainers-contrib/features/apt-get-packages:1": { + "packages": "genisoimage" + } + } } \ No newline at end of file diff --git a/analyze/df/generate_backend.go b/analyze/df/generate_backend.go index 2d8fee4..c18eb3c 100644 --- a/analyze/df/generate_backend.go +++ b/analyze/df/generate_backend.go @@ -234,6 +234,7 @@ func parse{{ $obj.Name }}{{ if $plus }}Plus{{ end }}(p *util.XMLParser{{ if $plu {{- end }} {{- end }} default: + obj.Details = NewHistoricalEventUnknown(string(data)) p.Skip() } if err != nil { diff --git a/backend/Makefile b/backend/Makefile index 11cfe80..06dc3cc 100644 --- a/backend/Makefile +++ b/backend/Makefile @@ -8,7 +8,7 @@ buildMacOs: GOOS=darwin GOARCH=amd64 go build -o ../bin/legendsbrowser-mac GOOS=darwin GOARCH=arm64 go build -o ../bin/legendsbrowser-mac-m1 -buildMacOsApp: +buildMacOsApp: buildMacOs mkdir -p /tmp/build/macos cp -r macos/LegendsBrowser.app /tmp/build/macos/ GOOS=darwin GOARCH=amd64 go build -o /tmp/build/macos/LegendsBrowser.app/Contents/MacOS/LegendsBrowser diff --git a/backend/model/extensions.go b/backend/model/extensions.go index e84ac48..f812736 100644 --- a/backend/model/extensions.go +++ b/backend/model/extensions.go @@ -1,6 +1,7 @@ package model import ( + "encoding/json" "fmt" "html/template" "sort" @@ -289,3 +290,34 @@ func (r *Reference) Html(c *Context) template.HTML { func (r *River) Id() int { return r.Id_ } + +type HistoricalEventUnknown struct { + EventType string +} + +func NewHistoricalEventUnknown(eventType string) *HistoricalEventUnknown { + return &HistoricalEventUnknown{ + EventType: eventType, + } +} + +func (x *HistoricalEventUnknown) Type() string { return x.EventType } +func (x *HistoricalEventUnknown) RelatedToEntity(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToHf(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToArtifact(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToSite(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToStructure(siteId, id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToRegion(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToWorldConstruction(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToWrittenContent(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToDanceForm(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToMusicalForm(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToPoeticForm(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToMountain(id int) bool { return false } +func (x *HistoricalEventUnknown) RelatedToIdentity(id int) bool { return false } +func (x *HistoricalEventUnknown) CheckFields() {} +func (x *HistoricalEventUnknown) Html(c *Context) string { return x.EventType } + +func (x *HistoricalEventUnknown) MarshalJSON() ([]byte, error) { + return json.Marshal(make(map[string]any)) +} diff --git a/backend/model/model.go b/backend/model/model.go index 4b79243..1eab95b 100644 --- a/backend/model/model.go +++ b/backend/model/model.go @@ -25187,6 +25187,8 @@ func parseHistoricalEvent(p *util.XMLParser) (*HistoricalEvent, error) { case "written content composed": obj.Details, err = parseHistoricalEventWrittenContentComposed(p) default: + + obj.Details = NewHistoricalEventUnknown(string(data)) p.Skip() } if err != nil {