diff --git a/main.go b/main.go index 0d57f5e..d35a1fb 100644 --- a/main.go +++ b/main.go @@ -1,20 +1,21 @@ package main import ( + "bufio" "log" + "net/url" + "os" + "strings" "github.com/ncruces/go-sqlite3" _ "github.com/ncruces/go-sqlite3/embed" ) const memory = ":memory:" +var db *sqlite3.Conn -func main() { - db, err := sqlite3.Open(memory) - if err != nil { - log.Fatal(err) - } - +func initDb() error { + var err error /* Not necessary because I am currently saving the db in memory sqlstmt := ` DROP TABLE IF EXISTS artists; @@ -49,16 +50,9 @@ func main() { ` err = db.Exec(sqlstmt) if err != nil { - log.Fatal(err) + return err } - /* - err = db.Exec(`INSERT INTO users (id, name) VALUES (0, 'go'), (1, 'zig'), (2, 'whatever')`) - if err != nil { - log.Fatal(err) - } - */ - sqlstmt = ` SELECT name FROM sqlite_schema @@ -67,7 +61,7 @@ func main() { stmt, _, err := db.Prepare(sqlstmt) if err != nil { - log.Fatal(err) + return err } defer stmt.Close() @@ -75,14 +69,76 @@ func main() { log.Println("created table:", stmt.ColumnText(0)) } if err := stmt.Err(); err != nil { - log.Fatal(err) + return err } err = stmt.Close() + if err != nil { + return err + } + + return nil +} + +func getArtistFromUrl(Url string) string { + if strings.Contains(Url, "rule34.xxx") { + unescapedUrl, err := url.QueryUnescape(Url) + if err != nil { + log.Fatal(err) + } + return unescapedUrl[51:] + } + if strings.Contains(Url, "kemono.su") { + return "Kemono" + } + if strings.Contains(Url, "coomer.su") { + return "Coomer" + } + + return "" +} + +func parseLinks(filename string) error { + file, err := os.Open(filename) + if err != nil { + return err + } + + scanner := bufio.NewScanner(file) + for scanner.Scan() { + line := scanner.Text() + if strings.HasPrefix(line, "#") { + continue + } + if !strings.Contains(line, "DBPath") { + continue + } + + } + + err = file.Close() + if err != nil { + return err + } + + return nil +} + +func main() { + var err error + db, err = sqlite3.Open(memory) if err != nil { log.Fatal(err) } + err = initDb() + if err != nil { + log.Fatal(err) + } + + artist := getArtistFromUrl("https://rule34.xxx/index.php?page=post&s=list&tags=%27eadole") + log.Println("artist from url: ", artist) + err = db.Close() if err != nil { log.Fatal(err)