Commit Graph
491 Commits
Author SHA1 Message Date
LogiFlow 2fa99b4b4d Merge pull request #121 from R0m1k3/antigravity
feat: implement Bonial.fr scraper service for promotional catalogs us…
2025-11-29 22:32:27 +01:00
Michael 3d3d7c18c1 feat: implement Bonial.fr scraper service for promotional catalogs using Playwright. 2025-11-29 22:31:24 +01:00
LogiFlow 334f016980 Merge pull request #120 from R0m1k3/claude/add-product-monitoring-01DyNDGnKBX4fHNSjAkwVckd
feat: Extract visible text and optimize Amazon price detection
2025-11-29 20:45:23 +01:00
Claude 12b281f609 feat: Extract visible text and optimize Amazon price detection
Critical improvements to AI price extraction for better accuracy:

**1. Extract Visible Text Instead of HTML** (browserless_service.py)
- Changed from `page.content()` (raw HTML) to `page.inner_text('body')`
- Now captures text as rendered by JavaScript, not HTML source
- Amazon and other sites inject prices via JavaScript - HTML source doesn't contain them
- Includes proper fallback to HTML if inner_text fails

**2. Amazon-Specific Price Detection** (browserless_service.py)
- Wait for Amazon price elements to load before screenshot:
  - `.a-price .a-offscreen` (main price)
  - `#corePriceDisplay_desktop_feature_div` (price section)
  - `#corePrice_desktop` (alternative container)
  - `.a-price-whole` (price number)
- Prevents screenshots before dynamic prices are rendered

**3. Focused Amazon Screenshots** (browserless_service.py)
- Problem: Full-page Amazon screenshots are huge (multiple screens tall)
- When resized to 2048px, price text becomes tiny and unreadable
- Solution: Take focused screenshot of product container only:
  - Try `#dp-container`, `#ppd`, or `#centerCol` (product areas)
  - Falls back to viewport screenshot (better than full-page)
- Other sites still use full-page screenshots

**4. Enhanced Debug Logging** (ai_service.py)
- Log cleaned text preview (first 500 chars) to verify content
- Log prompt preview to debug AI instructions
- Warning when no page_text provided

These changes address the root causes of AI returning:
- price: null, confidence: 0.0-0.1 (too low to update DB)

Expected improvement:
- Visible text contains actual rendered prices
- Smaller, focused screenshots = better AI recognition
- Confidence scores should reach > 0.5 threshold
2025-11-29 19:45:00 +00:00
LogiFlow 146ec6d448 Merge pull request #119 from R0m1k3/antigravity
feat: add Bonial.fr catalog scraper service using Playwright for prom…
2025-11-29 20:35:46 +01:00
Michael ba932b79ef feat: add Bonial.fr catalog scraper service using Playwright for promotional catalog data extraction. 2025-11-29 20:35:23 +01:00
LogiFlow d3c12aefc4 Merge pull request #118 from R0m1k3/claude/add-product-monitoring-01DyNDGnKBX4fHNSjAkwVckd
fix: Improve AI product price extraction for French e-commerce sites
2025-11-29 20:33:15 +01:00
Claude f2d45f9566 fix: Improve AI product price extraction for French e-commerce sites
Three critical fixes to resolve AI extraction returning null prices with 0.0 confidence:

1. **Add French price/stock keywords** (app/utils/text.py)
   - Added € symbol and French price patterns (12,99 €, 1 234,56 €)
   - Added French keywords: prix, coût, promotion, réduction
   - Added French stock keywords: ajouter au panier, en stock, rupture, épuisé
   - Previously only detected $ and English keywords

2. **Enable full-page screenshots** (app/services/browserless_service.py)
   - Changed full_page=False to full_page=True
   - Now captures entire page instead of viewport-only
   - Prevents missing prices located below the fold

3. **Increase image resolution** (app/utils/image.py)
   - Increased MAX_IMAGE_SIZE from 1024px to 2048px
   - Preserves fine details in price text for better AI recognition
   - Improves readability on dense product pages

These changes fix the issue where AI models returned:
{"price": null, "price_confidence": 0.0, "in_stock": null, "in_stock_confidence": 0.0}

Tested with Amazon.fr product monitoring.
2025-11-29 19:07:04 +00:00
LogiFlow 094a3c7f7f Merge pull request #117 from R0m1k3/antigravity
feat: implement Bonial.fr catalog scraper using Playwright
2025-11-29 20:05:40 +01:00
Michael da90ea12f2 feat: implement Bonial.fr catalog scraper using Playwright 2025-11-29 20:04:06 +01:00
LogiFlow 7ca7fe630c Merge pull request #116 from R0m1k3/antigravity
feat: Add Bonial.fr scraper service to fetch promotional catalogs usi…
2025-11-29 19:57:49 +01:00
Michael c011f1d6bf feat: Add Bonial.fr scraper service to fetch promotional catalogs using Playwright. 2025-11-29 19:57:32 +01:00
LogiFlow dcf63749a2 Merge pull request #115 from R0m1k3/antigravity
feat: Add Bonial.fr scraper service for promotional catalogs.
2025-11-29 19:51:55 +01:00
Michael c8fcfd7a4d feat: Add Bonial.fr scraper service for promotional catalogs. 2025-11-29 19:51:34 +01:00
LogiFlow 01d9888002 Merge pull request #114 from R0m1k3/antigravity
feat: implement scheduled catalog scraping service
2025-11-29 19:37:36 +01:00
Michael debc1a973f feat: implement scheduled catalog scraping service 2025-11-29 19:36:52 +01:00
LogiFlow 8a8cf5c9b2 Merge pull request #113 from R0m1k3/antigravity
fix: Correct alembic upgrade command from `head` to `heads`.
2025-11-29 19:35:20 +01:00
Michael 1bdeb272d6 fix: Correct alembic upgrade command from head to heads. 2025-11-29 19:34:58 +01:00
LogiFlow a124fa747a Merge pull request #112 from R0m1k3/antigravity
chore: Add Alembic merge migration for catalog module and notificatio…
2025-11-29 19:33:21 +01:00
Michael b9059aeeda chore: Add Alembic merge migration for catalog module and notification channels. 2025-11-29 19:32:54 +01:00
LogiFlow f907c99ee3 Merge pull request #111 from R0m1k3/antigravity
feat: Add initial application structure, core data models, and a new …
2025-11-29 19:27:19 +01:00
Michael 58e6be3f0d feat: Add initial application structure, core data models, and a new catalog module with Bonial scraping capabilities. 2025-11-29 19:26:56 +01:00
LogiFlow 8dcc98748e Merge pull request #110 from R0m1k3/antigravity
feat: add core search configuration including Browserless settings, p…
2025-11-29 18:28:41 +01:00
Michael 906c6b483d feat: add core search configuration including Browserless settings, proxies, user agents, site-specific selectors, and cookie banner handlers. 2025-11-29 18:28:20 +01:00
LogiFlow 403fb67e58 Merge pull request #109 from R0m1k3/antigravity
feat: add script to verify search service functionality across all co…
2025-11-29 18:15:35 +01:00
Michael a0a48ced19 feat: add script to verify search service functionality across all configured sites, including Browserless connection and detailed reporting. 2025-11-29 18:15:12 +01:00
LogiFlow aa8f621646 Merge pull request #108 from R0m1k3/antigravity
feat: add debug script to display search site configurations and data…
2025-11-29 17:46:44 +01:00
Michael b47af1655d feat: add debug script to display search site configurations and database entries 2025-11-29 17:46:20 +01:00
LogiFlow 6a31e126b2 Merge pull request #107 from R0m1k3/antigravity
feat: Add new search service for multi-site product search and item d…
2025-11-29 17:29:39 +01:00
Michael 5d7f872dae feat: Add new search service for multi-site product search and item detail scraping. 2025-11-29 17:28:59 +01:00
LogiFlow 332014aba5 Merge pull request #106 from R0m1k3/antigravity
feat: introduce search configuration for sites, proxies, user agents,…
2025-11-29 17:22:49 +01:00
Michael 74bdcfa63e feat: introduce search configuration for sites, proxies, user agents, and cookie banners. 2025-11-29 17:22:28 +01:00
LogiFlow 6391feebfa Merge pull request #105 from R0m1k3/antigravity
feat: add `NewSearchService` to orchestrate multi-site e-commerce sea…
2025-11-29 17:11:09 +01:00
Michael 420dd3144a feat: add NewSearchService to orchestrate multi-site e-commerce searches and scrape item details. 2025-11-29 17:10:20 +01:00
LogiFlow 4b8cdc8dd8 Merge pull request #104 from R0m1k3/antigravity
feat: introduce new search service to orchestrate multi-site product …
2025-11-29 14:18:08 +01:00
Michael 48d1ab3a05 feat: introduce new search service to orchestrate multi-site product searches and scrape item details. 2025-11-29 14:17:46 +01:00
LogiFlow e3ab84319b Merge pull request #103 from R0m1k3/antigravity
build: Remove app volume mount, adjust Alembic script path, and clean…
2025-11-29 14:07:18 +01:00
Michael 89f6f7d3ae build: Remove app volume mount, adjust Alembic script path, and clean up entrypoint. 2025-11-29 14:06:53 +01:00
LogiFlow 0e7632e568 Merge pull request #102 from R0m1k3/antigravity
debug: Add recursive listing of 'app' directory in docker entrypoint.
2025-11-29 14:01:08 +01:00
Michael eeb7ff9d6a debug: Add recursive listing of 'app' directory in docker entrypoint. 2025-11-29 14:00:44 +01:00
LogiFlow 31dc57be63 Merge pull request #101 from R0m1k3/antigravity
Antigravity
2025-11-29 13:54:38 +01:00
Michael 30dfb44517 feat: Add new multi-site search service with browserless and AI integration, including site-specific configurations. 2025-11-29 13:52:07 +01:00
LogiFlow b5c09b09b1 Merge pull request #100 from R0m1k3/antigravity
feat: Add centralized search configuration for e-commerce sites and a…
2025-11-29 13:32:04 +01:00
Michael d54427bdbe build: add volume mount for application code to enable local development. 2025-11-29 13:31:37 +01:00
Michael 8399b819da feat: Add centralized search configuration for e-commerce sites and a verification script. 2025-11-29 13:21:45 +01:00
LogiFlow 1032b90b01 Merge pull request #99 from R0m1k3/antigravity
feat: Implement web scraping and search system with centralized confi…
2025-11-29 13:10:18 +01:00
Michael f976ae1127 feat: Implement web scraping and search system with centralized configuration, browserless integration, and a verification script. 2025-11-29 13:09:53 +01:00
LogiFlow 6c217ed2a1 Merge pull request #98 from R0m1k3/antigravity
feat: Add Stokomani raw HTML data and new search configuration.
2025-11-29 11:26:51 +01:00
Michael 7f85a9764c feat: Add Stokomani raw HTML data and new search configuration. 2025-11-29 11:25:49 +01:00
LogiFlow 8da668f57c Merge pull request #97 from R0m1k3/antigravity
feat: Add centralized search configuration including site definitions…
2025-11-29 11:10:13 +01:00