diff --git a/app/Classes/BookProgressHandler.php b/app/Classes/BookProgressHandler.php new file mode 100644 index 0000000..ade18f4 --- /dev/null +++ b/app/Classes/BookProgressHandler.php @@ -0,0 +1,41 @@ +cache) { + $cached = $this->cache->get($cacheKey); + if ($cached !== false) { + return json_decode($cached, true) ?? []; + } + } + + $response = $this->makeRequest('GET', 'optimized_books_progress?select=isbn,progress'); + $result = []; + + foreach ($response as $row) { + if (!empty($row['isbn'])) { + $result[$row['isbn']] = (int) $row['progress']; + } + } + + if ($this->cache) { + $this->cache->set($cacheKey, json_encode($result), $this->cacheTTL); + } + + return $result; + } catch (\Throwable $e) { + error_log('BookProgressHandler::getAllProgress error: ' . $e->getMessage()); + return []; + } + } + +} diff --git a/package-lock.json b/package-lock.json index d54cee0..18a78e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "coryd.dev", - "version": "10.5.6", + "version": "10.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coryd.dev", - "version": "10.5.6", + "version": "10.6.0", "license": "MIT", "dependencies": { "minisearch": "^7.1.2", diff --git a/package.json b/package.json index 2aeb249..7258cb5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coryd.dev", - "version": "10.5.6", + "version": "10.6.0", "description": "The source for my personal site. Built using 11ty (and other tools).", "type": "module", "engines": { diff --git a/queries/views/media/books.sql b/queries/views/media/books/books.sql similarity index 99% rename from queries/views/media/books.sql rename to queries/views/media/books/books.sql index 8704365..b7292e5 100644 --- a/queries/views/media/books.sql +++ b/queries/views/media/books/books.sql @@ -17,6 +17,7 @@ SELECT CONCAT(globals.cdn_url, '/', df.filename_disk) AS image, b.favorite, b.tattoo, + b.isbn, ( SELECT array_agg(t.name) diff --git a/queries/views/media/books/books_progress.sql b/queries/views/media/books/books_progress.sql new file mode 100644 index 0000000..309019a --- /dev/null +++ b/queries/views/media/books/books_progress.sql @@ -0,0 +1,8 @@ +CREATE OR REPLACE VIEW optimized_books_progress AS +SELECT + isbn, + progress +FROM + optimized_books +WHERE + status = 'started'; diff --git a/src/pages/dynamic/media/book.php.liquid b/src/pages/dynamic/media/reading/book.php.liquid similarity index 100% rename from src/pages/dynamic/media/book.php.liquid rename to src/pages/dynamic/media/reading/book.php.liquid diff --git a/src/pages/static/media/reading/index.html b/src/pages/dynamic/media/reading/index.php.liquid similarity index 75% rename from src/pages/static/media/reading/index.html rename to src/pages/dynamic/media/reading/index.php.liquid index 2e4c47a..861ac98 100644 --- a/src/pages/static/media/reading/index.html +++ b/src/pages/dynamic/media/reading/index.php.liquid @@ -1,9 +1,22 @@ --- title: Reading description: Here's what I'm reading at the moment. -permalink: "/reading/index.html" +permalink: "/reading/index.php" schema: books +eleventyComputed: + page: + activeUrl: "/reading" --- +getAllProgress(); + +?> {%- assign currentYear = 'now' | date: "%Y" -%} {%- assign bookData = books.all | filterBooksByStatus: 'started' | reverse -%} {%- assign currentBookCount = books.currentYear | size -%} @@ -45,14 +58,17 @@ schema: books {% if book.author %}
{% endif %} - {% if book.progress %} - {% render "static/media/progress-bar.liquid", - percentage:book.progress - %} - {% endif %} + + + {% if book.description %}