aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/importer/main.go47
1 files changed, 28 insertions, 19 deletions
diff --git a/tools/importer/main.go b/tools/importer/main.go
index 7f12d78..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,23 +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 for _, v := range g.Gril.Tags { 105 fmt.Printf(
116 tagID := taglist[v] 106 "Assigned %d from %s to %d\n",
117 db.Exec("INSERT INTO grilist.grils_tags (gril_id, tag_id) VALUES ($1, $2);", dbID, tagID) 107 g.Gril.ID,
118 } 108 sourceType,
109 dbID)
119 db.Exec(`INSERT INTO grilist.grils_id_mappings (gril_id, 110 db.Exec(`INSERT INTO grilist.grils_id_mappings (gril_id,
120 source, source_id) VALUES ($1, $2, $3);`, 111 source, source_id) VALUES ($1, $2, $3);`,
121 dbID, r.ID(), g.Gril.ID) 112 dbID, r.ID(), g.Gril.ID)
@@ -159,6 +150,24 @@ func main() {
159 } 150 }
160 fmt.Printf("Inserted %s\n", g.Gril.RomajiName) 151 fmt.Printf("Inserted %s\n", g.Gril.RomajiName)
161 } 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 }
162 return nil 171 return nil
163 }) 172 })
164} 173}