Commit Graph

24 Commits

Author SHA1 Message Date
admin 8f76ca0b31 Center only the image, keep label left-aligned
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 09:17:52 +01:00
admin a6844e3ab2 Center recipe image on edit page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 09:15:24 +01:00
admin e746dc10c9 Edit page: auto-expand step textareas, wider layout, image management
- Textareas auto-resize to fit content (min 120px)
- Edit page container widened to 1100px
- Show recipe image with URL input and file upload options
- Add image upload endpoint (POST /api/recipes/<backend>/<id>/image)
- Add upload_image_bytes() to both Mealie and Tandoor clients

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 09:07:56 +01:00
admin ae2f0e062f Move btn-danger style to base.html so it works on all pages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 08:57:48 +01:00
admin 6aa7ed3c71 Search dropdown: keyboard navigation, edit/delete actions; edit page delete
- Search dropdown now supports arrow up/down to highlight items,
  Enter navigates to edit page of highlighted recipe
- Each dropdown item shows edit (pencil) and delete (trash) buttons
- Edit page now has a "Recept törlése" button with confirmation modal
- Successful delete on edit page redirects back to /recipes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 08:55:43 +01:00
admin 4a1ebfaf4e UI improvements: search dropdown, layout fixes, taller step fields
- Recipe search now shows dropdown suggestions while typing;
  full results load on Enter or clicking "Keresés" button
- Search field moved above tag filter; active filter tags below input
- Instruction textarea doubled in height (60px → 120px) on both
  import and edit pages

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 08:45:11 +01:00
admin 19cbd505d4 feat: recipe management page — browse, search, edit, delete recipes
New /recipes page with backend switching (Mealie/Tandoor), full-text
search, tag filtering, multi-select bulk delete, per-recipe edit/delete
buttons, and a full recipe editor reusing the import preview form.

New API client methods: list_recipes, get_recipe, update_recipe,
delete_recipe for both MealieClient and TandoorClient.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 08:30:26 +01:00
admin d8ca4f1336 logo change 2026-02-25 08:28:30 +01:00
admin 20fabb84bf v0.7.0: kiskegyed.hu parser, dual measurements, site links as URLs
- New parser for kiskegyed.hu: ingredients (with groups, dual measurements),
  instructions (ol > li > div), tags (section.tags)
- Dual measurement handling: "3 ek (70 g)" extracts alternate measurement
  to comment field
- Cross-site linking: kiskegyed→sobors links are followed to get full recipe
  (mirrors existing sobors→kiskegyed support)
- Supported sites now shown as clickable URLs in the import page
- supported_sites() returns dicts with name and url

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:45:25 +01:00
admin 2408984421 Extract ingredient comments from food field, add import-to-both button
- Global post-processing in scrape() extracts trailing (comment) from
  ingredient food names into the extra/comment field. Works for all parsers.
- Added "Importálás mindkettőbe" button on single import page when both
  Mealie and Tandoor are configured.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:27:58 +01:00
admin baa63a43b2 v0.6.1: follow linked recipes on sobors.hu, white favicon
- Sobors.hu parser: detect external links in instructions and follow them
  to scrape real recipe content (e.g. kiskegyed.hu linked recipes)
- Article-style ingredient fallback for sobors.hu pages without structured
  ingredient containers (h4 + ul > li plain text)
- Favicon changed to logo_notext_white.svg

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:18:54 +01:00
admin a0bcb62588 v0.6.0: Sobors.hu parser, HTTP auth, recipe validation, UI polish
- New sobors.hu parser with ingredient groups and section headers
- Incomplete recipe warnings (missing ingredients/instructions)
- Optional HTTP Basic Auth (configurable on settings page)
- Brand text: "Recept" in white, "Importáló" in blue
- Larger logo (36px), favicon using logo_notext.svg

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:07:05 +01:00
admin ca863e4118 v0.5.1: Design overhaul — felhom.eu branding, blue/cyan color scheme
- New color palette matching felhom.eu/controller templates (blue/cyan accent)
- Plus Jakarta Sans font, 12px border radius, accent glow on focus
- felhom.eu logo in navbar, "Powered by felhom.eu" footer
- Settings page: documentation about external vs internal Docker URLs
- Fixed version double "v" prefix display
- Cleaned up example HTML files from development

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:21:54 +01:00
admin 8e45d647fd Add bulk import feature and supported sites display
- Two-tab UI: single import (existing) and bulk import
- Bulk mode: paste multiple URLs, choose review-each or auto-import
- Review mode: edit each recipe before importing, option to switch
  to auto mid-way
- Auto mode: scrape and import all without manual review
- Tag option for auto mode: import all tags or none
- Progress table with per-recipe status tracking
- Import targets: Mealie, Tandoor, or both
- Supported sites shown on both tabs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:06:02 +01:00
admin 6e7ad11933 Make section dividers more visible (remove opacity)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:23:15 +01:00
admin 56f1bc84a3 Add subtle section dividers to import page for visual clarity
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:21:37 +01:00
admin f8772b20b7 fix: tag UI — two-field design with active/inactive toggle
Scraped tags default to inactive (won't be added). Click a tag to move
it between active (green, will be imported) and inactive (muted, from
webpage). Manually added/searched tags go directly to active.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 12:49:53 +01:00
admin bbd0889471 feat: tag management — scrape, edit, search existing, import to Mealie/Tandoor
- Scraper extracts tags from mindmegette.hu (<a class="tag">) and schema.org keywords
- Tag editor UI with removable chips, search/autocomplete for existing tags, custom add
- Mealie: auto-create tags via POST /api/organizers/tags, include in recipe PATCH
- Tandoor: include keywords in recipe POST (auto-created by name)
- New GET /tags endpoint returns existing tags from both services for search

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 12:42:54 +01:00
admin 458b1e362a feat: Tandoor integration — settings, test connection, import, duplicate detection
Add TandoorClient (app/tandoor.py) with full recipe creation, image upload,
and duplicate detection via the Tandoor REST API. Settings page now has
separate Mealie and Tandoor sections. Import page shows both send buttons
based on which services are configured.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 09:29:58 +01:00
admin f7810ba33d feat: duplicate detection + original URL in description
- Add original recipe URL to Mealie description (appended after blank line)
- Check for duplicate recipes on scrape (match orgURL or URL in description)
- Show warning with link to existing recipe if duplicate found
- User can still import anyway (warning only, not blocking)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 09:02:53 +01:00
admin c235d5caa7 fix: image upload (add extension field) + ingredient groups
- Fix Mealie image upload 422: send required `extension` field in form data
- Parse ingredient groups from mindmegette (multiple div.ingredients
  containers with strong.ingredients-group titles)
- Show group headers in UI with dashed-border accent input
- Pass group markers through to Mealie as title-only ingredient entries

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 08:44:34 +01:00
admin cb669f1861 feat: structured ingredients with unit/food resolution
Scraper returns {quantity, unit, food, extra} dicts instead of flat
strings. UI shows 4-column ingredient editor. Mealie client resolves
unit/food IDs via API (creates missing ones automatically).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 08:33:24 +01:00
admin 92912c5890 fix: test connection reads form values instead of saved config
The "Kapcsolat tesztelése" button sent an empty POST to /settings/test,
which read from the (possibly empty) config file on disk. Now sends the
current form values so testing works before clicking Save.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 07:53:11 +01:00
admin f600885b14 feat: initial recipe-importer application
Python/Flask web app that scrapes Hungarian recipe sites (mindmegette.hu)
and imports them into Mealie via its REST API. Includes dark-themed web UI
with editable preview, Dockerfile, build script, and docker-compose.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 21:52:46 +01:00