generated from VLADIMIR/template
update
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type story struct {
|
||||
Places []placeBlock `json:"places"`
|
||||
}
|
||||
|
||||
type placeBlock struct {
|
||||
Code string `json:"code"`
|
||||
Name string `json:"name"`
|
||||
Text string `json:"text"`
|
||||
Applications []application `json:"applications,omitempty"`
|
||||
}
|
||||
|
||||
type application struct {
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
b, err := os.ReadFile("./cmd/text_to_story/text.txt")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
story := &story{}
|
||||
lines := strings.Split(string(b), "\n")
|
||||
var place *placeBlock
|
||||
text := ""
|
||||
for _, line := range lines {
|
||||
if strings.HasPrefix(line, "[") {
|
||||
if place != nil {
|
||||
place.Text = strings.TrimSpace(text)
|
||||
story.Places = append(story.Places, *place)
|
||||
text = ""
|
||||
}
|
||||
place = &placeBlock{}
|
||||
codeAndName := strings.Split(line, " ")
|
||||
place.Code = strings.Trim(codeAndName[0], "[]")
|
||||
place.Name = strings.TrimSpace(strings.TrimPrefix(strings.Join(codeAndName[1:], " "), "-"))
|
||||
continue
|
||||
}
|
||||
if strings.HasPrefix(line, "Приложение:") {
|
||||
place.Applications = append(
|
||||
place.Applications,
|
||||
application{
|
||||
Name: strings.TrimSpace(strings.TrimPrefix(line, "Приложение:")),
|
||||
},
|
||||
)
|
||||
continue
|
||||
}
|
||||
text += line + "\n"
|
||||
}
|
||||
place.Text = strings.TrimSpace(text)
|
||||
story.Places = append(story.Places, *place)
|
||||
|
||||
res, err := json.Marshal(story)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := os.WriteFile("./cmd/text_to_story/story.json", res, 0x777); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user