diff options
author | rtz12 <koenig@fagott.pw> | 2016-10-09 14:41:57 (UTC) |
---|---|---|
committer | rtz12 <koenig@fagott.pw> | 2016-10-09 14:41:57 (UTC) |
commit | 4a383de2f73d67bb48f5a66c7a1e8cbf46e2fd88 (patch) | |
tree | 455a83a64c2c3c920b7dbb9539aba3f2bca4bdb1 /tools/animeimporter/ACDv2Reader.go | |
parent | 494858f082dbaf2244c0bac8ea8de31a83e719a5 (diff) |
Animeimporter hinzugefuegt
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 | } | ||