fix: recipe import from unsupported websites and external URL deletion
Some checks failed
Basil CI/CD Pipeline / Build All Packages (push) Has been cancelled
Basil CI/CD Pipeline / E2E Tests (push) Has been cancelled
Basil CI/CD Pipeline / Build & Push Docker Images (push) Has been cancelled
Basil CI/CD Pipeline / Trigger Deployment (push) Has been cancelled
Basil CI/CD Pipeline / Web Tests (push) Has been cancelled
Basil CI/CD Pipeline / Shared Package Tests (push) Has been cancelled
Basil CI/CD Pipeline / API Tests (push) Has been cancelled
Basil CI/CD Pipeline / Security Scanning (push) Has been cancelled
Basil CI/CD Pipeline / Code Linting (push) Has been cancelled
Some checks failed
Basil CI/CD Pipeline / Build All Packages (push) Has been cancelled
Basil CI/CD Pipeline / E2E Tests (push) Has been cancelled
Basil CI/CD Pipeline / Build & Push Docker Images (push) Has been cancelled
Basil CI/CD Pipeline / Trigger Deployment (push) Has been cancelled
Basil CI/CD Pipeline / Web Tests (push) Has been cancelled
Basil CI/CD Pipeline / Shared Package Tests (push) Has been cancelled
Basil CI/CD Pipeline / API Tests (push) Has been cancelled
Basil CI/CD Pipeline / Security Scanning (push) Has been cancelled
Basil CI/CD Pipeline / Code Linting (push) Has been cancelled
- Enable wild mode in recipe scraper (supported_only=False) to work with any website that uses schema.org structured data, not just officially supported sites - Fix storage service to skip deletion of external URLs (imported recipe images) instead of treating them as local file paths Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
"""
|
"""
|
||||||
Recipe scraper script using the recipe-scrapers library.
|
Recipe scraper script using the recipe-scrapers library.
|
||||||
This script is called by the Node.js API to scrape recipes from URLs.
|
This script is called by the Node.js API to scrape recipes from URLs.
|
||||||
Uses wild mode (supported_only=False) to work with any website, not just officially supported ones.
|
Uses wild mode (supported_only=False) to work with any website that uses schema.org structured data.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
@@ -52,8 +52,8 @@ def scrape_recipe(url):
|
|||||||
html = fetch_html(url)
|
html = fetch_html(url)
|
||||||
|
|
||||||
# Use scrape_html to scrape the recipe
|
# Use scrape_html to scrape the recipe
|
||||||
# Works with officially supported websites
|
# supported_only=False enables wild mode for any website with schema.org data
|
||||||
scraper = scrape_html(html, org_url=url)
|
scraper = scrape_html(html, org_url=url, supported_only=False)
|
||||||
|
|
||||||
# Extract recipe data with safe extraction
|
# Extract recipe data with safe extraction
|
||||||
recipe_data = {
|
recipe_data = {
|
||||||
|
|||||||
@@ -51,6 +51,11 @@ export class StorageService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async deleteFile(fileUrl: string): Promise<void> {
|
async deleteFile(fileUrl: string): Promise<void> {
|
||||||
|
// Skip deletion if this is an external URL (from imported recipes)
|
||||||
|
if (fileUrl.startsWith('http://') || fileUrl.startsWith('https://')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (storageConfig.type === 'local') {
|
if (storageConfig.type === 'local') {
|
||||||
const basePath = storageConfig.localPath || './uploads';
|
const basePath = storageConfig.localPath || './uploads';
|
||||||
const filePath = path.join(basePath, fileUrl.replace('/uploads/', ''));
|
const filePath = path.join(basePath, fileUrl.replace('/uploads/', ''));
|
||||||
|
|||||||
Reference in New Issue
Block a user