Commit Graph
73 Commits
Author SHA1 Message Date
LogiFlow 2484ec66a3 Merge pull request #33 from R0m1k3/claude/hardcode-website-urls-01QrWZK7suQnuBrxYgK1r5JC
fix: Improve French e-commerce sites configuration
2025-11-23 09:06:31 +01:00
Claude ee40ae68fc fix: Improve French e-commerce sites configuration
- Change default currency from USD to EUR for all French sites
- Update AI extraction prompt to use EUR by default
- Fix E.Leclerc search URL pattern
- Improve product selectors for Auchan, Carrefour, Amazon France
- Add Amazon France language parameter for better results
- Enhance cookie acceptance with site-specific selectors:
  - Amazon (#sp-cc-accept)
  - E.Leclerc (#onetrust-accept-btn-handler)
  - Auchan (#popin_tc_privacy_button_2, #didomi-notice-agree-button)
  - Carrefour (#onetrust-accept-btn-handler)
  - Cdiscount (#footer_tc_privacy_button_2)
  - And more CMP platforms (Didomi, OneTrust, Tarteaucitron, etc.)
- Improve cookie handling with iframe support and retry logic
2025-11-23 07:54:49 +00:00
LogiFlow c0ec22f7bb Merge pull request #32 from R0m1k3/claude/hardcode-website-urls-01QrWZK7suQnuBrxYgK1r5JC
feat: Hardcode French e-commerce websites configuration
2025-11-23 08:41:50 +01:00
Claude e1a9bd2657 feat: Hardcode French e-commerce websites configuration
- Remove ability to add/edit/delete search sites from settings UI
- Configure 16 French e-commerce sites with search URLs:
  - Discount: Gifi, Stokomani, B&M, Centrakor, L'Incroyable, Action, La Foir'Fouille
  - Grandes Surfaces: E.Leclerc, Auchan, Carrefour
  - E-commerce: Amazon France, Cdiscount
  - Électronique: Darty, Boulanger, Fnac
- Add automatic database seeding on application startup
- Add /api/search-sites/seed and /api/search-sites/reset endpoints
- Add cookie consent banner handling for sites that require it
- Simplify Settings page to only show site list with toggle for active state
2025-11-23 07:40:12 +00:00
LogiFlow c6a9ef681e Merge pull request #31 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
Claude/design product search 01 ea9d w zq zpu k fw bw vmp26 pg
2025-11-22 17:00:19 +01:00
Claude 7d92549a45 fix: Improve gifi.fr product link detection with .html pattern 2025-11-22 15:59:30 +00:00
Claude d132f991a9 fix: Add /products/ pattern for stokomani.fr 2025-11-22 15:58:18 +00:00
Claude 24fa6087fc fix: Improve product link detection for French e-commerce sites
- Add fallback to generic detection when configured selector fails
- Add many more CSS selectors for French e-commerce platforms (PrestaShop, Magento, WooCommerce)
- Add /produits/ pattern for bmstores.fr
- Improve generic container-based link detection
- Add navigation link filter to exclude non-product links
2025-11-22 15:57:58 +00:00
LogiFlow fae34d6acb Merge pull request #30 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Improve domain matching and add discover-all endpoint
2025-11-22 16:48:54 +01:00
Claude 826d04331c fix: Improve domain matching and add discover-all endpoint
- Improve domain matching in direct_search_service to handle various formats
- Add /discover-all endpoint to discover search URLs for all sites missing one
- Add constants for magic numbers and fix linting issues
- Better domain cleaning in comparison functions
2025-11-22 15:40:59 +00:00
LogiFlow 39c5f39277 Merge pull request #29 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
Claude/design product search 01 ea9d w zq zpu k fw bw vmp26 pg
2025-11-22 16:33:29 +01:00
Claude fa7a89d77d chore: Add .gitignore for Python cache files 2025-11-22 15:32:04 +00:00
Claude aad16985d4 fix: Clean up linting issues in search URL discovery
- Move imports to top-level in search_sites router
- Fix line too long issue with input selector
- Define constants for magic numbers (HTTP_OK, MIN_PRODUCTS_TO_MATCH)
- Use 'raise from' pattern for proper exception chaining
2025-11-22 15:31:12 +00:00
Claude 62b145ca8f feat: Auto-discover search URLs when adding sites
- Add search_url_discovery.py service that visits sites and finds search forms
- Automatically discover search_url when a new site is created without one
- Add POST /{site_id}/discover endpoint to force rediscovery
- Discovery runs in background to not block the API response
- Tries multiple methods: form analysis, common URL patterns
2025-11-22 15:27:21 +00:00
Claude 5bee3e3396 feat: Add more site configs and fix screenshot display
- Add search URLs for French discount stores: stokomani, gifi, bmstores,
  centrakor, lafoirfouille, tedi, leclerc, carrefour, auchan
- Fix screenshot URL construction in search results
- Include screenshot_url in AI extraction results and error cases
2025-11-22 15:24:02 +00:00
LogiFlow 40a66b0a55 Merge pull request #28 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Fix AI service call and domain URL building
2025-11-22 16:12:29 +01:00
Claude ccc9c0080e fix: Fix AI service call and domain URL building
- Use AIService.analyze_image() class method instead of module function
- Handle AIExtractionResponse tuple return type properly
- Add _clean_domain() to strip protocol/www from stored domains
- Fixes "https://https://" URL duplication issue
2025-11-22 15:09:50 +00:00
LogiFlow fcf002b68b Merge pull request #27 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Use Browserless for search page scraping
2025-11-22 16:06:36 +01:00
Claude df613cf64f fix: Use Browserless for search page scraping
- Replace httpx with Playwright/Browserless for search pages
- Handles JavaScript-rendered content and bot detection
- Add wait selectors for each site to ensure content is loaded
- Block images and tracking scripts for faster loading
- Sequential site scraping to avoid overloading Browserless
2025-11-22 15:05:47 +00:00
LogiFlow 6b705d1117 Merge pull request #26 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
feat: Replace DuckDuckGo with direct site search
2025-11-22 16:02:54 +01:00
Claude 3b095801c5 feat: Replace DuckDuckGo with direct site search
- Remove duckduckgo-search dependency (unreliable results)
- Add direct_search_service.py that scrapes sites' search pages directly
- Add search_url and product_link_selector fields to SearchSite model
- Add beautifulsoup4 and lxml for HTML parsing
- Update schemas with new fields
- Add database migration for new columns

Direct search is more reliable as it queries each site's own search
functionality instead of relying on external search engines.
2025-11-22 15:00:49 +00:00
LogiFlow 2f79bdf8ec Merge pull request #25 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Fix Browserless port and improve DuckDuckGo search
2025-11-22 15:54:21 +01:00
Claude 6f5b50a372 fix: Fix Browserless port and improve DuckDuckGo search
- Change BROWSERLESS_URL to use internal Docker port 3000 (not external 3012)
- Search each domain separately for better results
- Add detailed logging for debugging search issues
- Improve domain matching logic
2025-11-22 14:53:45 +00:00
LogiFlow 21d2ac9606 Merge pull request #24 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
feat: Replace SearXNG with DuckDuckGo for product search
2025-11-22 15:47:44 +01:00
Claude 36415b9cfc feat: Replace SearXNG with DuckDuckGo for product search
- Remove SearXNG container and configuration files
- Add duckduckgo-search library for web search
- Create duckduckgo_service.py with async search support
- Update search_service.py to use DuckDuckGo instead of SearXNG
- Fix BROWSERLESS_URL port to 3012

This eliminates the persistent limiter.toml directory issue and
provides a simpler, more reliable search solution.
2025-11-22 14:38:03 +00:00
LogiFlow e60fc1efb8 Merge pull request #23 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Mount entire SearXNG config directory to avoid file/directory is…
2025-11-22 15:30:21 +01:00
Claude 528c34eb6b fix: Mount entire SearXNG config directory to avoid file/directory issues
- Mount ./searxng as /etc/searxng:rw instead of individual files
- Remove custom entrypoint.sh (no longer needed)
- Simplify settings.yml configuration
2025-11-22 14:28:53 +00:00
LogiFlow fd68e06571 Merge pull request #22 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Mount limiter.toml directly (file exists locally)
2025-11-22 15:23:51 +01:00
Claude 1f8974ce1a fix: Mount limiter.toml directly (file exists locally)
- Remove entrypoint script approach
- Mount limiter.toml directly as a file
- User must DELETE the SearXNG container in Portainer before redeploying
  to clear the cached directory state
2025-11-22 14:14:15 +00:00
LogiFlow 7da3b83c59 Merge pull request #21 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Use custom entrypoint script for SearXNG limiter.toml
2025-11-22 15:12:01 +01:00
Claude 1f51dace41 fix: Use custom entrypoint script for SearXNG limiter.toml
- Create entrypoint.sh script that creates limiter.toml before SearXNG starts
- Script removes any existing limiter.toml (file or directory) first
- Then creates proper limiter.toml with bot detection bypass
- Finally executes the original SearXNG entrypoint
- This approach is more reliable than inline commands
2025-11-22 13:55:35 +00:00
LogiFlow bdf791d6da Merge pull request #20 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Simplify SearXNG config + add DNS servers
2025-11-22 14:51:07 +01:00
Claude 18372e870f fix: Simplify SearXNG config + add DNS servers
- Remove command override (limiter warning is non-blocking)
- Add DNS servers (8.8.8.8, 8.8.4.4, 1.1.1.1) to fix DNS resolution
- The real issue was 'Temporary failure in name resolution' not limiter.toml
2025-11-22 13:50:33 +00:00
LogiFlow fd6dccec0e Merge pull request #19 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: SearXNG printf command + edit site modal
2025-11-22 14:47:05 +01:00
Claude e9b7f17900 fix: SearXNG printf command + edit site modal
SearXNG:
- Use proper command list format instead of shell string
- Use printf with \n for proper newlines in limiter.toml
- Use exec to properly start the entrypoint

Edit Site Modal:
- Add Dialog component import
- Add siteModalOpen and editSiteData state
- Create proper modal with form for editing sites
- Modal opens when clicking edit button
- All site fields editable in modal
2025-11-22 13:45:34 +00:00
LogiFlow ce6f592c8c Merge pull request #18 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: SearXNG startup + always visible edit buttons
2025-11-22 14:39:53 +01:00
Claude 41ccfb6610 fix: SearXNG startup + always visible edit buttons
SearXNG:
- Use command override to rm -rf limiter.toml before recreating it
- This ensures any directory is removed before creating the file
- Mount only settings.yml, create limiter.toml dynamically

UI:
- Remove opacity-0 from site edit/delete buttons
- Buttons are now always visible (not just on hover)
- Added title attributes for accessibility
2025-11-22 13:38:37 +00:00
LogiFlow 2b60aafbc1 Merge pull request #17 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
Claude/design product search 01 ea9d w zq zpu k fw bw vmp26 pg
2025-11-22 14:33:41 +01:00
Claude 1c07f08457 fix: Improve database migrations - create table if missing
- Create search_sites table if it doesn't exist
- Add price_selector column only if table exists but column doesn't
- Fixes 400 Bad Request when creating search sites
2025-11-22 13:32:24 +00:00
Claude 99e7592cdc fix: Add automatic database migration for missing columns
- Add run_migrations() function that runs at app startup
- Automatically adds price_selector column to search_sites if missing
- Prevents UndefinedColumn errors on existing databases
2025-11-22 13:29:29 +00:00
LogiFlow dd6ec61e64 Merge pull request #16 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Mount entire searxng directory instead of individual files
2025-11-22 14:29:21 +01:00
Claude 861f38b984 fix: Mount entire searxng directory instead of individual files
Simple and robust solution:
- Mount ./searxng:/etc/searxng:rw (entire directory)
- No entrypoint/command overrides needed
- Both settings.yml and limiter.toml are included
- SearXNG uses its default entrypoint
2025-11-22 13:27:48 +00:00
LogiFlow e2261097b8 Merge pull request #15 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
feat: Improve search config + rename Dashboard + fix SearXNG
2025-11-22 14:25:48 +01:00
Claude 933cb2e66f feat: Improve search config + rename Dashboard + fix SearXNG
SearXNG:
- Fix tini not found error by calling entrypoint.sh directly
- Keep limiter.toml creation at container startup

UI Changes:
- Rename "Tableau de bord" to "Suivis produits" in navigation
- Move CSS selector configuration from item modal to Settings page
- Add price_selector field to search sites configuration
- Display CSS selector badge on site cards

Backend:
- Add price_selector column to SearchSite model and schemas
- Update init.sql with search_sites table and migration for existing DBs
2025-11-22 13:24:28 +00:00
LogiFlow a147e238ca Merge pull request #14 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: SearXNG startup + update README logo and favicon
2025-11-22 14:16:28 +01:00
Claude e8ccd69bff fix: SearXNG startup + update README logo and favicon
- Fix SearXNG limiter.toml directory issue by creating file at container
  startup via entrypoint command (rm -rf then recreate)
- Update README to use logo.svg instead of logo.png
- Redesign favicon.svg to match main logo style:
  - Same gold-to-green gradient background
  - Line gradient from white to green
  - Glow effect on chart line
  - Decorative dots at data points
  - Green arrow indicator
2025-11-22 13:15:31 +00:00
LogiFlow ee408bbcaa Merge pull request #13 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Complete SearXNG bot detection bypass configuration
2025-11-22 14:11:34 +01:00
Claude 60546f7a6c fix: Complete SearXNG bot detection bypass configuration
- Add real_ip config to settings.yml to trust proxy headers
- Update limiter.toml to allow all IPs (0.0.0.0/0 and ::/0)
- Re-add limiter.toml volume mount (file now exists)
- Add localhost range (127.0.0.0/8) to pass_ip list
2025-11-22 13:10:28 +00:00
LogiFlow 7377528307 Merge pull request #12 from R0m1k3/claude/design-product-search-01Ea9dWZqZpuKFwBwVmp26PG
fix: Remove limiter.toml volume mount to fix SearXNG container crash
2025-11-22 14:07:36 +01:00
Claude da1d88d432 fix: Remove limiter.toml volume mount to fix SearXNG container crash
Docker was creating /etc/searxng/limiter.toml as a directory instead of
mounting the file, causing IsADirectoryError. The limiter is already
disabled in settings.yml, so the separate toml file is not needed.
2025-11-22 13:04:42 +00:00