diff options
Diffstat (limited to 'tools/animeimporter/ACDv2Reader.go')
| -rw-r--r-- | tools/animeimporter/ACDv2Reader.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/animeimporter/ACDv2Reader.go b/tools/animeimporter/ACDv2Reader.go new file mode 100644 index 0000000..36564e4 --- /dev/null +++ b/tools/animeimporter/ACDv2Reader.go | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | package main | ||
| 2 | |||
| 3 | import ( | ||
| 4 | "encoding/json" | ||
| 5 | "io/ioutil" | ||
| 6 | "path/filepath" | ||
| 7 | "strconv" | ||
| 8 | "strings" | ||
| 9 | |||
| 10 | "fagott.pw/grilist/modules/grils" | ||
| 11 | ) | ||
| 12 | |||
| 13 | func ifErrExit(err error) { | ||
| 14 | if err != nil { | ||
| 15 | panic(err) | ||
| 16 | } | ||
| 17 | } | ||
| 18 | |||
| 19 | func toInt(s string) int { | ||
| 20 | i, err := strconv.ParseInt(s, 10, 32) | ||
| 21 | ifErrExit(err) | ||
| 22 | return int(i) | ||
| 23 | } | ||
| 24 | |||
| 25 | type ACDv2Reader struct{} | ||
| 26 | |||
| 27 | type ACDv2Series struct { | ||
| 28 | Name struct { | ||
| 29 | English string `json:"english"` | ||
| 30 | Romaji string `json:"romaji"` | ||
| 31 | Japanese string `json:"japanese"` | ||
| 32 | Furigana string `json:"furigana"` | ||
| 33 | Aliases []string `json:"aliases"` | ||
| 34 | } `json:"name"` | ||
| 35 | Tags []string `json:"tags"` | ||
| 36 | Image string `json:"image"` | ||
| 37 | } | ||
| 38 | |||
| 39 | func (r *ACDv2Reader) Read(path string) WrappedSeries { | ||
| 40 | s := WrappedSeries{} | ||
| 41 | data, err := ioutil.ReadFile(path) | ||
| 42 | ifErrExit(err) | ||
| 43 | var jObj ACDv2Series | ||
| 44 | err = json.Unmarshal(data, &jObj) | ||
| 45 | ifErrExit(err) | ||
| 46 | s.Image = jObj.Image | ||
| 47 | s.Series.ID = toInt(strings.TrimSuffix(filepath.Base(path), ".json")) | ||
| 48 | s.Series.Name = jObj.Name.English | ||
| 49 | s.Series.KanjiName = jObj.Name.Japanese | ||
| 50 | s.Series.RomajiName = jObj.Name.Romaji | ||
| 51 | s.Series.FuriganaName = jObj.Name.Furigana | ||
| 52 | s.Series.OtherNames = jObj.Name.Aliases | ||
| 53 | s.Series.Tags = jObj.Tags | ||
| 54 | return s | ||
| 55 | } | ||
| 56 | |||
| 57 | func (r *ACDv2Reader) ID() int { | ||
| 58 | return int(grils.DataSourceACD) | ||
| 59 | } | ||
