diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/importer/main.go | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/tools/importer/main.go b/tools/importer/main.go index 4eba9a0..8c60ef7 100644 --- a/tools/importer/main.go +++ b/tools/importer/main.go | |||
@@ -180,7 +180,7 @@ func InsertTraits(dbID int, g WrappedGril, traitlist map[string]int) { | |||
180 | } | 180 | } |
181 | } | 181 | } |
182 | 182 | ||
183 | func InsertSeries(dbID int, g WrappedGril) { | 183 | func InsertSeries(dbID int, g WrappedGril, seriesmap map[int]int) { |
184 | rows, err := db.Query("SELECT appearance_id FROM grils_appearances WHERE gril_id = $1;", dbID) | 184 | rows, err := db.Query("SELECT appearance_id FROM grils_appearances WHERE gril_id = $1;", dbID) |
185 | LogErr(err) | 185 | LogErr(err) |
186 | existingSeries := make(map[int]bool, 0) | 186 | existingSeries := make(map[int]bool, 0) |
@@ -190,13 +190,17 @@ func InsertSeries(dbID int, g WrappedGril) { | |||
190 | existingSeries[seriesID] = true | 190 | existingSeries[seriesID] = true |
191 | } | 191 | } |
192 | for _, v := range g.Gril.Series { | 192 | for _, v := range g.Gril.Series { |
193 | if _, ok := existingSeries[v.ID]; ok { | 193 | seriesID, ok := seriesmap[v.ID] |
194 | if !ok { | ||
195 | panic(fmt.Sprintf("Could not find series %s! Did you import the series?", v.ID)) | ||
196 | } | ||
197 | if _, ok := existingSeries[seriesID]; ok { | ||
194 | continue | 198 | continue |
195 | } | 199 | } |
196 | _, err := db.Exec("INSERT INTO grilist.grils_appearances (gril_id, appearance_id) VALUES ($1, $2);", | 200 | _, err := db.Exec("INSERT INTO grilist.grils_appearances (gril_id, appearance_id) VALUES ($1, $2);", |
197 | dbID, v.ID) | 201 | dbID, seriesID) |
198 | existingSeries[v.ID] = true | 202 | existingSeries[seriesID] = true |
199 | fmt.Printf("Assigned series %d to %s\n", v.ID, g.Gril.RomajiName) | 203 | fmt.Printf("Assigned series %d to %s\n", seriesID, g.Gril.RomajiName) |
200 | LogErr(err) | 204 | LogErr(err) |
201 | } | 205 | } |
202 | } | 206 | } |
@@ -261,6 +265,14 @@ func main() { | |||
261 | rows.Scan(&sourceID, &grilID) | 265 | rows.Scan(&sourceID, &grilID) |
262 | idmap[sourceID] = grilID | 266 | idmap[sourceID] = grilID |
263 | } | 267 | } |
268 | seriesmap := make(map[int]int) | ||
269 | rows, _ = db.Query("SELECT appearance_id, source_id FROM grilist.appearances_id_mappings WHERE source = $1", r.ID()) | ||
270 | for rows.Next() { | ||
271 | var seriesID int | ||
272 | var sourceID int | ||
273 | rows.Scan(&seriesID, &sourceID) | ||
274 | seriesmap[sourceID] = seriesID | ||
275 | } | ||
264 | 276 | ||
265 | filepath.Walk(path, func(path string, info os.FileInfo, err error) error { | 277 | filepath.Walk(path, func(path string, info os.FileInfo, err error) error { |
266 | if info.IsDir() { | 278 | if info.IsDir() { |
@@ -274,7 +286,7 @@ func main() { | |||
274 | } | 286 | } |
275 | InsertTags(dbID, g, taglist) | 287 | InsertTags(dbID, g, taglist) |
276 | InsertTraits(dbID, g, traitlist) | 288 | InsertTraits(dbID, g, traitlist) |
277 | InsertSeries(dbID, g) | 289 | InsertSeries(dbID, g, seriesmap) |
278 | 290 | ||
279 | return nil | 291 | return nil |
280 | }) | 292 | }) |