Track artist popularity
[brackets.git] / scrape / graph / graph.go
index 7a31924..cc1dc1e 100644 (file)
@@ -20,7 +20,8 @@ WHERE ID NOT IN (
   SELECT ARTIST_ID
        FROM SCRAPED_ARTIST
        WHERE SCRAPED == 1
-)`)
+)`,
+               )
                if err != nil {
                        log.Print(err)
                        continue infinite
@@ -43,6 +44,23 @@ WHERE ID NOT IN (
                        success := true
                postArtists:
                        for _, artist := range artists {
+                               row := env.Db.Db.QueryRow(`
+SELECT EXISTS (
+       SELECT 1
+       FROM ARTIST
+       WHERE ID = ?
+)
+`,
+                                       artist.ID,
+                               )
+                               var exists bool
+                               if err := row.Scan(&exists); err != nil {
+                                       // We don't care, this was a short circuit check
+                               }
+                               if exists {
+                                       continue postArtists
+                               }
+
                                resp, err := http.PostForm("http://localhost:8080/artist/add", url.Values{"id": {string(artist.ID)}})
                                if err != nil {
                                        log.Print(err)
@@ -59,7 +77,8 @@ WHERE ID NOT IN (
                                env.Db.Db.Exec(`
 REPLACE INTO SCRAPED_ARTIST (ARTIST_ID, SCRAPED)
 VALUES (?, 1)`,
-                                       string(artistId))
+                                       string(artistId),
+                               )
                                env.Db.Mu.Unlock()
                        }
                }