42 lines
793 B
Go
42 lines
793 B
Go
package main
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
)
|
|
|
|
func ingestJobExists(url string, db *sql.DB) bool {
|
|
var count int
|
|
|
|
err := db.QueryRow("SELECT count() FROM ingest where URL=?", url).Scan(&count)
|
|
if err != nil {
|
|
fmt.Println("Could not check ingest table for URL")
|
|
panic(err)
|
|
}
|
|
|
|
if count > 0 {
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func ingestURL(url string, db *sql.DB) sql.Result {
|
|
if ingestJobExists(url, db) {
|
|
fmt.Println("URL exists in ingest queue")
|
|
row, err := db.Exec("SELECT * FROM ingest WHERE URL=?", url)
|
|
if err != nil {
|
|
fmt.Println("Could not get job from ingest queue")
|
|
panic(err)
|
|
}
|
|
return row
|
|
}
|
|
|
|
row, err := db.Exec("INSERT INTO ingest(url) VALUES (?)", url)
|
|
if err != nil {
|
|
fmt.Println("Could not execute insert query")
|
|
panic(err)
|
|
}
|
|
|
|
return row
|
|
}
|