diff --git a/crawler b/crawler index 3cd510d..6bfdc3a 100755 Binary files a/crawler and b/crawler differ diff --git a/main.go b/main.go index 0a7c4c2..63759e7 100644 --- a/main.go +++ b/main.go @@ -69,16 +69,18 @@ func initDB() (*sql.DB, error) { return nil, err } - // --- NEW: Safely add new columns for read status --- + // --- Safely add new columns for read status --- addColumn(db, "books", "tuomas_read", "INTEGER DEFAULT 0") addColumn(db, "books", "jenni_read", "INTEGER DEFAULT 0") - // --- END NEW --- + + // --- NEW: Add hidden column --- + addColumn(db, "books", "hidden", "INTEGER DEFAULT 0") log.Println("Database initialized successfully.") return db, nil } -// --- NEW: Helper function to add a column only if it doesn't already exist. --- +// Helper function to add a column only if it doesn't already exist. func addColumn(db *sql.DB, tableName, columnName, columnType string) { rows, err := db.Query(fmt.Sprintf("PRAGMA table_info(%s)", tableName)) if err != nil { @@ -109,8 +111,6 @@ func addColumn(db *sql.DB, tableName, columnName, columnType string) { } } -// --- END NEW --- - func startServer(db *sql.DB) { r := gin.Default() @@ -128,7 +128,7 @@ func startServer(db *sql.DB) { }) }) - // --- NEW: Endpoint to handle updating the read status --- + // Endpoint to handle updating the read status r.POST("/books/:id/update", func(c *gin.Context) { idStr := c.Param("id") var payload struct { @@ -156,13 +156,12 @@ func startServer(db *sql.DB) { c.JSON(http.StatusOK, gin.H{"status": "success", "person": payload.Person, "read": payload.Read}) }) - // --- END NEW --- log.Println("Starting server on http://localhost:8080/books") r.Run(":8080") } -// --- NEW: Function to update the read status in the database --- +// Function to update the read status in the database func updateReadStatus(db *sql.DB, bookID int, person string, read bool) error { var columnName string switch strings.ToLower(person) { @@ -186,9 +185,6 @@ func updateReadStatus(db *sql.DB, bookID int, person string, read bool) error { return err } -// --- END NEW --- - -// Modified crawl_dua to not require the ticker argument func crawl_dua(db *sql.DB) { // The main page is a better starting point to find all books currenturl := "https://www.service95.com/book-club/" @@ -317,8 +313,7 @@ func bookExists(db *sql.DB, name string) (bool, error) { // getAllBooks now retrieves the read status as well. func getAllBooks(db *sql.DB) ([]Book, error) { - // --- UPDATED: Select the new columns --- - query := "SELECT id, name, image_path, tuomas_read, jenni_read FROM books ORDER BY id DESC" + query := "SELECT id, name, image_path, tuomas_read, jenni_read FROM books WHERE hidden = 0 ORDER BY id DESC" rows, err := db.Query(query) if err != nil { return nil, err