mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-07-21 22:29:39 +02:00
fix: handle recipe-scraper returning a int causing clean_time to return None (#5522)
This commit is contained in:
parent
cacb197aa8
commit
b87edc823a
1 changed files with 10 additions and 2 deletions
|
@ -2,6 +2,7 @@ import contextlib
|
||||||
import functools
|
import functools
|
||||||
import html
|
import html
|
||||||
import json
|
import json
|
||||||
|
import numbers
|
||||||
import operator
|
import operator
|
||||||
import re
|
import re
|
||||||
import typing
|
import typing
|
||||||
|
@ -392,7 +393,7 @@ def clean_yield(yields: str | list[str] | None) -> tuple[float, float, str]:
|
||||||
return servings_qty, yld_qty, yld_str
|
return servings_qty, yld_qty, yld_str
|
||||||
|
|
||||||
|
|
||||||
def clean_time(time_entry: str | timedelta | None, translator: Translator) -> None | str:
|
def clean_time(time_entry: str | timedelta | int | float | None, translator: Translator) -> None | str:
|
||||||
"""_summary_
|
"""_summary_
|
||||||
|
|
||||||
Supported Structures:
|
Supported Structures:
|
||||||
|
@ -401,6 +402,7 @@ def clean_time(time_entry: str | timedelta | None, translator: Translator) -> No
|
||||||
- `"PT1H30M"` - returns "1 hour 30 minutes"
|
- `"PT1H30M"` - returns "1 hour 30 minutes"
|
||||||
- `timedelta(hours=1, minutes=30)` - returns "1 hour 30 minutes"
|
- `timedelta(hours=1, minutes=30)` - returns "1 hour 30 minutes"
|
||||||
- `{"minValue": "PT1H30M"}` - returns "1 hour 30 minutes"
|
- `{"minValue": "PT1H30M"}` - returns "1 hour 30 minutes"
|
||||||
|
- `30` - as a `int` or `float` assumed to be in minutes, returns "30 minutes"
|
||||||
|
|
||||||
Raises:
|
Raises:
|
||||||
TypeError: if the type is not supported a TypeError is raised
|
TypeError: if the type is not supported a TypeError is raised
|
||||||
|
@ -412,6 +414,10 @@ def clean_time(time_entry: str | timedelta | None, translator: Translator) -> No
|
||||||
return None
|
return None
|
||||||
|
|
||||||
match time_entry:
|
match time_entry:
|
||||||
|
case numbers.Number():
|
||||||
|
# type checked by case statement
|
||||||
|
time_delta = timedelta(minutes=time_entry) # type: ignore
|
||||||
|
return pretty_print_timedelta(time_delta, translator)
|
||||||
case str(time_entry):
|
case str(time_entry):
|
||||||
if not time_entry.strip():
|
if not time_entry.strip():
|
||||||
return None
|
return None
|
||||||
|
@ -431,7 +437,9 @@ def clean_time(time_entry: str | timedelta | None, translator: Translator) -> No
|
||||||
# TODO: Not sure what to do here
|
# TODO: Not sure what to do here
|
||||||
return str(time_entry)
|
return str(time_entry)
|
||||||
case _:
|
case _:
|
||||||
logger.warning("[SCRAPER] Unexpected type or structure for variable time_entry")
|
logger.warning(
|
||||||
|
"[SCRAPER] Unexpected type(%s) or structure for variable time_entry: %s", type(time_entry), time_entry
|
||||||
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue