aboutsummaryrefslogtreecommitdiff
path: root/tools/importer/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'tools/importer/main.go')
-rw-r--r--tools/importer/main.go42
1 files changed, 23 insertions, 19 deletions
diff --git a/tools/importer/main.go b/tools/importer/main.go
index f0c0856..9caf287 100644
--- a/tools/importer/main.go
+++ b/tools/importer/main.go
@@ -81,8 +81,7 @@ func main() {
81 for rows.Next() { 81 for rows.Next() {
82 var id int 82 var id int
83 var name string 83 var name string
84 rows.Scan(&id) 84 rows.Scan(&id, &name)
85 rows.Scan(&name)
86 taglist[name] = id 85 taglist[name] = id
87 } 86 }
88 idmap := make(map[int]int) 87 idmap := make(map[int]int)
@@ -90,8 +89,7 @@ func main() {
90 for rows.Next() { 89 for rows.Next() {
91 var sourceID int 90 var sourceID int
92 var grilID int 91 var grilID int
93 rows.Scan(&sourceID) 92 rows.Scan(&sourceID, &grilID)
94 rows.Scan(&grilID)
95 idmap[sourceID] = grilID 93 idmap[sourceID] = grilID
96 } 94 }
97 filepath.Walk(path, func(path string, info os.FileInfo, err error) error { 95 filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
@@ -99,28 +97,16 @@ func main() {
99 return nil 97 return nil
100 } 98 }
101 g := r.Read(path) 99 g := r.Read(path)
102 for _, v := range g.Gril.Tags { 100 var dbID int
103 if _, ok := taglist[v]; ok { 101 var ok bool
104 continue 102 if dbID, ok = idmap[g.Gril.ID]; !ok {
105 }
106 var id int
107 row := db.QueryRow("INSERT INTO grilist.tags (name) VALUES ($1) RETURNING id;", v)
108 row.Scan(&id)
109 taglist[v] = id
110 }
111 if _, ok := idmap[g.Gril.ID]; !ok {
112 row := db.QueryRow("INSERT INTO grilist.grils (age) VALUES (NULL) RETURNING id;") 103 row := db.QueryRow("INSERT INTO grilist.grils (age) VALUES (NULL) RETURNING id;")
113 var dbID int
114 row.Scan(&dbID) 104 row.Scan(&dbID)
115 fmt.Printf( 105 fmt.Printf(
116 "Assigned %d from %s to %d\n", 106 "Assigned %d from %s to %d\n",
117 g.Gril.ID, 107 g.Gril.ID,
118 sourceType, 108 sourceType,
119 dbID) 109 dbID)
120 for _, v := range g.Gril.Tags {
121 tagID := taglist[v]
122 db.Exec("INSERT INTO grilist.grils_tags (gril_id, tag_id) VALUES ($1, $2);", dbID, tagID)
123 }
124 db.Exec(`INSERT INTO grilist.grils_id_mappings (gril_id, 110 db.Exec(`INSERT INTO grilist.grils_id_mappings (gril_id,
125 source, source_id) VALUES ($1, $2, $3);`, 111 source, source_id) VALUES ($1, $2, $3);`,
126 dbID, r.ID(), g.Gril.ID) 112 dbID, r.ID(), g.Gril.ID)
@@ -164,6 +150,24 @@ func main() {
164 } 150 }
165 fmt.Printf("Inserted %s\n", g.Gril.RomajiName) 151 fmt.Printf("Inserted %s\n", g.Gril.RomajiName)
166 } 152 }
153 for _, v := range g.Gril.Tags {
154 if _, ok := taglist[v]; ok {
155 continue
156 }
157 var id int
158 row := db.QueryRow("INSERT INTO grilist.tags (name) VALUES ($1) RETURNING id;", v)
159 row.Scan(&id)
160 taglist[v] = id
161 }
162 _, err = db.Exec(`DELETE FROM grilist.grils_tags WHERE gril_id
163 = $1`, dbID)
164 LogErr(err)
165 for _, v := range g.Gril.Tags {
166 tagID := taglist[v]
167 _, err := db.Exec(`INSERT INTO grilist.grils_tags
168 (gril_id, tag_id) VALUES ($1, $2);`, dbID, tagID)
169 LogErr(err)
170 }
167 return nil 171 return nil
168 }) 172 })
169} 173}