diff options
-rw-r--r-- | modules/grils/gril.go | 3 | ||||
-rw-r--r-- | tools/importer/ACDv2Reader.go | 8 | ||||
-rw-r--r-- | tools/importer/main.go | 23 |
3 files changed, 34 insertions, 0 deletions
diff --git a/modules/grils/gril.go b/modules/grils/gril.go index edec05a..0462e86 100644 --- a/modules/grils/gril.go +++ b/modules/grils/gril.go | |||
@@ -8,6 +8,8 @@ import ( | |||
8 | "strings" | 8 | "strings" |
9 | "time" | 9 | "time" |
10 | 10 | ||
11 | "fagott.pw/grilist/modules/series" | ||
12 | |||
11 | "github.com/lib/pq" | 13 | "github.com/lib/pq" |
12 | ) | 14 | ) |
13 | 15 | ||
@@ -37,6 +39,7 @@ type Gril struct { | |||
37 | ForeignIDs map[DataSource]int | 39 | ForeignIDs map[DataSource]int |
38 | UpdatedAt time.Time | 40 | UpdatedAt time.Time |
39 | Lists []int | 41 | Lists []int |
42 | Series []series.Series | ||
40 | } | 43 | } |
41 | 44 | ||
42 | func (g *Gril) Slug() string { | 45 | func (g *Gril) Slug() string { |
diff --git a/tools/importer/ACDv2Reader.go b/tools/importer/ACDv2Reader.go index 974da52..4dab3c0 100644 --- a/tools/importer/ACDv2Reader.go +++ b/tools/importer/ACDv2Reader.go | |||
@@ -7,6 +7,7 @@ import ( | |||
7 | "strings" | 7 | "strings" |
8 | 8 | ||
9 | "fagott.pw/grilist/modules/grils" | 9 | "fagott.pw/grilist/modules/grils" |
10 | "fagott.pw/grilist/modules/series" | ||
10 | ) | 11 | ) |
11 | 12 | ||
12 | const failMsg = "Offenbar war meine Annahme bzgl. der Traits nicht ganz korrekt" | 13 | const failMsg = "Offenbar war meine Annahme bzgl. der Traits nicht ganz korrekt" |
@@ -75,6 +76,13 @@ func (r *ACDv2Reader) Read(path string) WrappedGril { | |||
75 | } | 76 | } |
76 | g.Gril.Traits = append(g.Gril.Traits, t) | 77 | g.Gril.Traits = append(g.Gril.Traits, t) |
77 | } | 78 | } |
79 | g.Gril.Series = make([]series.Series, 0) | ||
80 | for _, v := range jObj.Assignments { | ||
81 | s := series.Series{ | ||
82 | ID: v, | ||
83 | } | ||
84 | g.Gril.Series = append(g.Gril.Series, s) | ||
85 | } | ||
78 | return g | 86 | return g |
79 | } | 87 | } |
80 | 88 | ||
diff --git a/tools/importer/main.go b/tools/importer/main.go index fd7af37..4eba9a0 100644 --- a/tools/importer/main.go +++ b/tools/importer/main.go | |||
@@ -179,6 +179,28 @@ func InsertTraits(dbID int, g WrappedGril, traitlist map[string]int) { | |||
179 | LogErr(err) | 179 | LogErr(err) |
180 | } | 180 | } |
181 | } | 181 | } |
182 | |||
183 | func InsertSeries(dbID int, g WrappedGril) { | ||
184 | rows, err := db.Query("SELECT appearance_id FROM grils_appearances WHERE gril_id = $1;", dbID) | ||
185 | LogErr(err) | ||
186 | existingSeries := make(map[int]bool, 0) | ||
187 | for rows.Next() { | ||
188 | var seriesID int | ||
189 | rows.Scan(&seriesID) | ||
190 | existingSeries[seriesID] = true | ||
191 | } | ||
192 | for _, v := range g.Gril.Series { | ||
193 | if _, ok := existingSeries[v.ID]; ok { | ||
194 | continue | ||
195 | } | ||
196 | _, err := db.Exec("INSERT INTO grilist.grils_appearances (gril_id, appearance_id) VALUES ($1, $2);", | ||
197 | dbID, v.ID) | ||
198 | existingSeries[v.ID] = true | ||
199 | fmt.Printf("Assigned series %d to %s\n", v.ID, g.Gril.RomajiName) | ||
200 | LogErr(err) | ||
201 | } | ||
202 | } | ||
203 | |||
182 | func main() { | 204 | func main() { |
183 | flag.StringVar(&path, "path", "", "path of the source files") | 205 | flag.StringVar(&path, "path", "", "path of the source files") |
184 | flag.StringVar(&sourceType, "type", "", "type of the files (ACD, AniDB)") | 206 | flag.StringVar(&sourceType, "type", "", "type of the files (ACD, AniDB)") |
@@ -252,6 +274,7 @@ func main() { | |||
252 | } | 274 | } |
253 | InsertTags(dbID, g, taglist) | 275 | InsertTags(dbID, g, taglist) |
254 | InsertTraits(dbID, g, traitlist) | 276 | InsertTraits(dbID, g, traitlist) |
277 | InsertSeries(dbID, g) | ||
255 | 278 | ||
256 | return nil | 279 | return nil |
257 | }) | 280 | }) |