mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2025-12-28 12:39:36 -05:00
Compare commits
99 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f14acc371d | ||
|
|
c031db9019 | ||
|
|
d7669279ff | ||
|
|
4293ec77c0 | ||
|
|
0a30c39add | ||
|
|
1b6449270b | ||
|
|
3ae264eea7 | ||
|
|
c9dc7164f5 | ||
|
|
5751ba1ec5 | ||
|
|
3eca8c6db4 | ||
|
|
5cccbb8e5c | ||
|
|
4390703c0c | ||
|
|
47bc3cfbe7 | ||
|
|
30a2012e90 | ||
|
|
b38ea866b4 | ||
|
|
5a0b9e14d2 | ||
|
|
4f0f59a55c | ||
|
|
768b678c93 | ||
|
|
10373b6ac5 | ||
|
|
4e0780d512 | ||
|
|
959ad2a45c | ||
|
|
94045905d3 | ||
|
|
ad8d8daf79 | ||
|
|
b623abf81e | ||
|
|
f8b8d3f199 | ||
|
|
be388b0d10 | ||
|
|
41a448578a | ||
|
|
441c55936d | ||
|
|
b67281bbc8 | ||
|
|
5a1a5f3c4d | ||
|
|
30e2fc4895 | ||
|
|
57304f9c6c | ||
|
|
87327b0959 | ||
|
|
7957413ca0 | ||
|
|
d99a157416 | ||
|
|
20b812c2cc | ||
|
|
7bfa23b953 | ||
|
|
ae37abf8b2 | ||
|
|
5f211e420e | ||
|
|
1235cb8da5 | ||
|
|
5e3a5eb8f5 | ||
|
|
b6a42e8e81 | ||
|
|
49539ef3ba | ||
|
|
db310c4076 | ||
|
|
0248e1c500 | ||
|
|
db04386997 | ||
|
|
54f0b2b036 | ||
|
|
33b23b299d | ||
|
|
a047613edb | ||
|
|
149cf93618 | ||
|
|
ceb68af503 | ||
|
|
d8c86a4bb8 | ||
|
|
a9dcc7261c | ||
|
|
341c6abc02 | ||
|
|
5c2d92103b | ||
|
|
7b9bd5bc2a | ||
|
|
e242412ec4 | ||
|
|
6aaec29c8a | ||
|
|
854af133c4 | ||
|
|
ac961ef7d2 | ||
|
|
b6f3ed6bd9 | ||
|
|
ccf56e24be | ||
|
|
5298b69d83 | ||
|
|
f2f004db87 | ||
|
|
9416406732 | ||
|
|
eeae2c1740 | ||
|
|
45d3fd34be | ||
|
|
bd61906aa4 | ||
|
|
c322782e89 | ||
|
|
2e6becb73d | ||
|
|
d2aeef7e63 | ||
|
|
8e700ba53c | ||
|
|
2f203d7786 | ||
|
|
2d021a83cf | ||
|
|
dda2cc16e7 | ||
|
|
07957814f9 | ||
|
|
658bc5ca54 | ||
|
|
539eb8e612 | ||
|
|
ba54a44e04 | ||
|
|
5ecddaf02f | ||
|
|
a6c0dba684 | ||
|
|
7986d9c8f3 | ||
|
|
02523f5325 | ||
|
|
36887b3488 | ||
|
|
bb77f80abf | ||
|
|
9c92e0f4c0 | ||
|
|
a6e8fa8ddf | ||
|
|
37fb0418ac | ||
|
|
2264050d40 | ||
|
|
aebc4a45ff | ||
|
|
f061e02a95 | ||
|
|
952d50d8dd | ||
|
|
3489216daf | ||
|
|
8e9285a24e | ||
|
|
8f55e15767 | ||
|
|
f2ce164a1e | ||
|
|
bfdd5a8bfc | ||
|
|
cf61de0dba | ||
|
|
29a937c44d |
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: awalsh128/cache-apt-pkgs-action@v1.4.1
|
||||
- uses: awalsh128/cache-apt-pkgs-action@v1.4.2
|
||||
with:
|
||||
packages: libsasl2-dev python3-dev libldap2-dev libssl-dev
|
||||
version: 1.0
|
||||
|
||||
21
.vscode/launch.json
vendored
21
.vscode/launch.json
vendored
@@ -4,7 +4,6 @@
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
|
||||
{
|
||||
"name": "Python Debugger: Django",
|
||||
"type": "debugpy",
|
||||
@@ -13,6 +12,22 @@
|
||||
"args": ["runserver"],
|
||||
"django": true,
|
||||
"justMyCode": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Python: Debug Tests",
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"purpose": [
|
||||
"debug-test"
|
||||
],
|
||||
"console": "integratedTerminal",
|
||||
"env": {
|
||||
// coverage and pytest can't both be running at the same time
|
||||
"PYTEST_ADDOPTS": "--no-cov"
|
||||
},
|
||||
"django": true,
|
||||
"justMyCode": true
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
9
boot.sh
9
boot.sh
@@ -76,4 +76,11 @@ echo "Done"
|
||||
|
||||
chmod -R 755 /opt/recipes/mediafiles
|
||||
|
||||
exec gunicorn -b "[::]:$TANDOOR_PORT" --workers $GUNICORN_WORKERS --threads $GUNICORN_THREADS --access-logfile - --error-logfile - --log-level $GUNICORN_LOG_LEVEL recipes.wsgi
|
||||
ipv6_disable=$(cat /sys/module/ipv6/parameters/disable)
|
||||
|
||||
# Check if IPv6 is enabled, only then run gunicorn with ipv6 support
|
||||
if [ "$ipv6_disable" -eq 0 ]; then
|
||||
exec gunicorn -b "[::]:$TANDOOR_PORT" --workers $GUNICORN_WORKERS --threads $GUNICORN_THREADS --access-logfile - --error-logfile - --log-level $GUNICORN_LOG_LEVEL recipes.wsgi
|
||||
else
|
||||
exec gunicorn -b ":$TANDOOR_PORT" --workers $GUNICORN_WORKERS --threads $GUNICORN_THREADS --access-logfile - --error-logfile - --log-level $GUNICORN_LOG_LEVEL recipes.wsgi
|
||||
fi
|
||||
@@ -1,26 +1,35 @@
|
||||
import logging
|
||||
from logging import Logger
|
||||
from typing import Dict, Tuple
|
||||
from urllib.parse import urljoin
|
||||
|
||||
from homeassistant_api import Client, HomeassistantAPIError, Domain
|
||||
from aiohttp import ClientError, request
|
||||
|
||||
from cookbook.connectors.connector import Connector
|
||||
from cookbook.models import ShoppingListEntry, ConnectorConfig, Space
|
||||
|
||||
|
||||
class HomeAssistant(Connector):
|
||||
_domains_cache: dict[str, Domain]
|
||||
_config: ConnectorConfig
|
||||
_logger: Logger
|
||||
_client: Client
|
||||
|
||||
def __init__(self, config: ConnectorConfig):
|
||||
if not config.token or not config.url or not config.todo_entity:
|
||||
raise ValueError("config for HomeAssistantConnector in incomplete")
|
||||
|
||||
self._domains_cache = dict()
|
||||
if config.url[-1] != "/":
|
||||
config.url += "/"
|
||||
self._config = config
|
||||
self._logger = logging.getLogger("connector.HomeAssistant")
|
||||
self._client = Client(self._config.url, self._config.token, async_cache_session=False, use_async=True)
|
||||
|
||||
async def homeassistant_api_call(self, method: str, path: str, data: Dict) -> str:
|
||||
headers = {
|
||||
"Authorization": f"Bearer {self._config.token}",
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
async with request(method, urljoin(self._config.url, path), headers=headers, json=data) as response:
|
||||
response.raise_for_status()
|
||||
return await response.json()
|
||||
|
||||
async def on_shopping_list_entry_created(self, space: Space, shopping_list_entry: ShoppingListEntry) -> None:
|
||||
if not self._config.on_shopping_list_entry_created_enabled:
|
||||
@@ -28,15 +37,17 @@ class HomeAssistant(Connector):
|
||||
|
||||
item, description = _format_shopping_list_entry(shopping_list_entry)
|
||||
|
||||
todo_domain = self._domains_cache.get('todo')
|
||||
try:
|
||||
if todo_domain is None:
|
||||
todo_domain = await self._client.async_get_domain('todo')
|
||||
self._domains_cache['todo'] = todo_domain
|
||||
logging.debug(f"adding {item=} to {self._config.name}")
|
||||
|
||||
logging.debug(f"pushing {item} to {self._config.name}")
|
||||
await todo_domain.add_item(entity_id=self._config.todo_entity, item=item)
|
||||
except HomeassistantAPIError as err:
|
||||
data = {
|
||||
"entity_id": self._config.todo_entity,
|
||||
"item": item,
|
||||
"description": description,
|
||||
}
|
||||
|
||||
try:
|
||||
await self.homeassistant_api_call("POST", "services/todo/add_item", data)
|
||||
except ClientError as err:
|
||||
self._logger.warning(f"[HomeAssistant {self._config.name}] Received an exception from the api: {err=}, {type(err)=}")
|
||||
|
||||
async def on_shopping_list_entry_updated(self, space: Space, shopping_list_entry: ShoppingListEntry) -> None:
|
||||
@@ -48,24 +59,31 @@ class HomeAssistant(Connector):
|
||||
if not self._config.on_shopping_list_entry_deleted_enabled:
|
||||
return
|
||||
|
||||
item, description = _format_shopping_list_entry(shopping_list_entry)
|
||||
if not hasattr(shopping_list_entry._state.fields_cache, "food"):
|
||||
# Sometimes the food foreign key is not loaded, and we cant load it from an async process
|
||||
self._logger.debug("required property was not present in ShoppingListEntry")
|
||||
return
|
||||
|
||||
item, _ = _format_shopping_list_entry(shopping_list_entry)
|
||||
|
||||
logging.debug(f"removing {item=} from {self._config.name}")
|
||||
|
||||
data = {
|
||||
"entity_id": self._config.todo_entity,
|
||||
"item": item,
|
||||
}
|
||||
|
||||
todo_domain = self._domains_cache.get('todo')
|
||||
try:
|
||||
if todo_domain is None:
|
||||
todo_domain = await self._client.async_get_domain('todo')
|
||||
self._domains_cache['todo'] = todo_domain
|
||||
|
||||
logging.debug(f"deleting {item} from {self._config.name}")
|
||||
await todo_domain.remove_item(entity_id=self._config.todo_entity, item=item)
|
||||
except HomeassistantAPIError as err:
|
||||
self._logger.warning(f"[HomeAssistant {self._config.name}] Received an exception from the api: {err=}, {type(err)=}")
|
||||
await self.homeassistant_api_call("POST", "services/todo/remove_item", data)
|
||||
except ClientError as err:
|
||||
# This error will always trigger if the item is not present/found
|
||||
self._logger.debug(f"[HomeAssistant {self._config.name}] Received an exception from the api: {err=}, {type(err)=}")
|
||||
|
||||
async def close(self) -> None:
|
||||
await self._client.async_cache_session.close()
|
||||
pass
|
||||
|
||||
|
||||
def _format_shopping_list_entry(shopping_list_entry: ShoppingListEntry):
|
||||
def _format_shopping_list_entry(shopping_list_entry: ShoppingListEntry) -> Tuple[str, str]:
|
||||
item = shopping_list_entry.food.name
|
||||
if shopping_list_entry.amount > 0:
|
||||
item += f" ({shopping_list_entry.amount:.2f}".rstrip('0').rstrip('.')
|
||||
@@ -76,10 +94,10 @@ def _format_shopping_list_entry(shopping_list_entry: ShoppingListEntry):
|
||||
else:
|
||||
item += ")"
|
||||
|
||||
description = "Imported by TandoorRecipes"
|
||||
description = "From TandoorRecipes"
|
||||
if shopping_list_entry.created_by.first_name and len(shopping_list_entry.created_by.first_name) > 0:
|
||||
description += f", created by {shopping_list_entry.created_by.first_name}"
|
||||
description += f", by {shopping_list_entry.created_by.first_name}"
|
||||
else:
|
||||
description += f", created by {shopping_list_entry.created_by.username}"
|
||||
description += f", by {shopping_list_entry.created_by.username}"
|
||||
|
||||
return item, description
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
from django.test.runner import DiscoverRunner
|
||||
from django_scopes import scopes_disabled
|
||||
|
||||
|
||||
class CustomTestRunner(DiscoverRunner):
|
||||
def run_tests(self, *args, **kwargs):
|
||||
with scopes_disabled():
|
||||
return super().run_tests(*args, **kwargs)
|
||||
@@ -71,7 +71,7 @@ class FoodPropertyHelper:
|
||||
# TODO move to central helper ? --> use defaultdict
|
||||
@staticmethod
|
||||
def add_or_create(d, key, value, food):
|
||||
if key in d:
|
||||
if key in d and d[key]['value']:
|
||||
d[key]['value'] += value
|
||||
else:
|
||||
d[key] = {'id': food.id, 'food': food.name, 'value': value}
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 4.2.10 on 2024-03-09 06:41
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cookbook', '0216_delete_shoppinglist'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='userpreference',
|
||||
name='default_page',
|
||||
field=models.CharField(choices=[('SEARCH', 'Search'), ('PLAN', 'Meal-Plan'), ('BOOKS', 'Books'), ('SHOPPING', 'Shopping')], default='SEARCH', max_length=64),
|
||||
),
|
||||
]
|
||||
@@ -449,11 +449,13 @@ class UserPreference(models.Model, PermissionModelMixin):
|
||||
SEARCH = 'SEARCH'
|
||||
PLAN = 'PLAN'
|
||||
BOOKS = 'BOOKS'
|
||||
SHOPPING = 'SHOPPING'
|
||||
|
||||
PAGES = (
|
||||
(SEARCH, _('Search')),
|
||||
(PLAN, _('Meal-Plan')),
|
||||
(BOOKS, _('Books')),
|
||||
(SHOPPING, _('Shopping')),
|
||||
)
|
||||
|
||||
user = AutoOneToOneField(User, on_delete=models.CASCADE, primary_key=True)
|
||||
|
||||
@@ -1,88 +1,88 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import pytest
|
||||
from django.contrib import auth
|
||||
from django.urls import reverse
|
||||
from icalendar import Calendar
|
||||
|
||||
from cookbook.models import MealPlan, MealType
|
||||
|
||||
BOUND_URL = 'api_get_plan_ical'
|
||||
FROM_URL = 'api_get_plan_ical_from'
|
||||
FUTURE_URL = 'api_get_plan_ical_future'
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def meal_type(space_1, u1_s1):
|
||||
return MealType.objects.get_or_create(name='test', space=space_1, created_by=auth.get_user(u1_s1))[0]
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def obj_1(space_1, recipe_1_s1, meal_type, u1_s1):
|
||||
return MealPlan.objects.create(recipe=recipe_1_s1, space=space_1, meal_type=meal_type, from_date=datetime.now(), to_date=datetime.now(),
|
||||
created_by=auth.get_user(u1_s1))
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def obj_2(space_1, recipe_1_s1, meal_type, u1_s1):
|
||||
return MealPlan.objects.create(recipe=recipe_1_s1, space=space_1, meal_type=meal_type, from_date=datetime.now()+timedelta(days=30), to_date=datetime.now()+timedelta(days=30),
|
||||
created_by=auth.get_user(u1_s1))
|
||||
|
||||
@pytest.fixture
|
||||
def obj_3(space_1, recipe_1_s1, meal_type, u1_s1):
|
||||
return MealPlan.objects.create(recipe=recipe_1_s1, space=space_1, meal_type=meal_type, from_date=datetime.now()+timedelta(days=-30), to_date=datetime.now()+timedelta(days=-1),
|
||||
created_by=auth.get_user(u1_s1))
|
||||
|
||||
|
||||
@pytest.mark.parametrize("arg", [
|
||||
['a_u', 403],
|
||||
['g1_s1', 403],
|
||||
['u1_s1', 200],
|
||||
['a1_s1', 200],
|
||||
])
|
||||
def test_permissions(arg, request):
|
||||
c = request.getfixturevalue(arg[0])
|
||||
assert c.get(reverse(FUTURE_URL)).status_code == arg[1]
|
||||
|
||||
def test_future(obj_1, obj_2, obj_3, u1_s1):
|
||||
r = u1_s1.get(reverse(FUTURE_URL))
|
||||
assert r.status_code == 200
|
||||
|
||||
cal = Calendar.from_ical(r.getvalue().decode('UTF-8'))
|
||||
events = cal.walk('VEVENT')
|
||||
assert len(events) == 2
|
||||
|
||||
def test_from(obj_1, obj_2, obj_3, u1_s1):
|
||||
from_date_slug = (datetime.now()+timedelta(days=1)).strftime("%Y-%m-%d")
|
||||
r = u1_s1.get(reverse(FROM_URL, kwargs={'from_date': from_date_slug}))
|
||||
assert r.status_code == 200
|
||||
|
||||
cal = Calendar.from_ical(r.getvalue().decode('UTF-8'))
|
||||
events = cal.walk('VEVENT')
|
||||
assert len(events) == 1
|
||||
|
||||
def test_bound(obj_1, obj_2, obj_3, u1_s1):
|
||||
from_date_slug = (datetime.now()+timedelta(days=-1)).strftime("%Y-%m-%d")
|
||||
to_date_slug = (datetime.now()+timedelta(days=1)).strftime("%Y-%m-%d")
|
||||
r = u1_s1.get(reverse(BOUND_URL, kwargs={'from_date': from_date_slug, 'to_date': to_date_slug}))
|
||||
assert r.status_code == 200
|
||||
|
||||
cal = Calendar.from_ical(r.getvalue().decode('UTF-8'))
|
||||
events = cal.walk('VEVENT')
|
||||
assert len(events) == 1
|
||||
|
||||
def test_event(obj_1, u1_s1):
|
||||
from_date_slug = (datetime.now()+timedelta(days=-1)).strftime("%Y-%m-%d")
|
||||
to_date_slug = (datetime.now()+timedelta(days=1)).strftime("%Y-%m-%d")
|
||||
r = u1_s1.get(reverse(BOUND_URL, kwargs={'from_date': from_date_slug, 'to_date': to_date_slug}))
|
||||
|
||||
cal = Calendar.from_ical(r.getvalue().decode('UTF-8'))
|
||||
events = cal.walk('VEVENT')
|
||||
assert len(events) == 1
|
||||
|
||||
event = events[0]
|
||||
assert int(event['uid']) == obj_1.id
|
||||
assert event['summary'] == f'{obj_1.meal_type.name}: {obj_1.get_label()}'
|
||||
assert event['description'] == obj_1.note
|
||||
assert event.decoded('dtstart') == datetime.now().date()
|
||||
assert event.decoded('dtend') == datetime.now().date()
|
||||
# from datetime import datetime, timedelta
|
||||
#
|
||||
# import pytest
|
||||
# from django.contrib import auth
|
||||
# from django.urls import reverse
|
||||
# from icalendar import Calendar
|
||||
#
|
||||
# from cookbook.models import MealPlan, MealType
|
||||
#
|
||||
# BOUND_URL = 'api_get_plan_ical'
|
||||
# FROM_URL = 'api_get_plan_ical'
|
||||
# FUTURE_URL = 'api_get_plan_ical'
|
||||
#
|
||||
#
|
||||
# @pytest.fixture()
|
||||
# def meal_type(space_1, u1_s1):
|
||||
# return MealType.objects.get_or_create(name='test', space=space_1, created_by=auth.get_user(u1_s1))[0]
|
||||
#
|
||||
#
|
||||
# @pytest.fixture()
|
||||
# def obj_1(space_1, recipe_1_s1, meal_type, u1_s1):
|
||||
# return MealPlan.objects.create(recipe=recipe_1_s1, space=space_1, meal_type=meal_type, from_date=datetime.now(), to_date=datetime.now(),
|
||||
# created_by=auth.get_user(u1_s1))
|
||||
#
|
||||
#
|
||||
# @pytest.fixture
|
||||
# def obj_2(space_1, recipe_1_s1, meal_type, u1_s1):
|
||||
# return MealPlan.objects.create(recipe=recipe_1_s1, space=space_1, meal_type=meal_type, from_date=datetime.now()+timedelta(days=30), to_date=datetime.now()+timedelta(days=30),
|
||||
# created_by=auth.get_user(u1_s1))
|
||||
#
|
||||
# @pytest.fixture
|
||||
# def obj_3(space_1, recipe_1_s1, meal_type, u1_s1):
|
||||
# return MealPlan.objects.create(recipe=recipe_1_s1, space=space_1, meal_type=meal_type, from_date=datetime.now()+timedelta(days=-30), to_date=datetime.now()+timedelta(days=-1),
|
||||
# created_by=auth.get_user(u1_s1))
|
||||
#
|
||||
#
|
||||
# @pytest.mark.parametrize("arg", [
|
||||
# ['a_u', 403],
|
||||
# ['g1_s1', 403],
|
||||
# ['u1_s1', 200],
|
||||
# ['a1_s1', 200],
|
||||
# ])
|
||||
# def test_permissions(arg, request):
|
||||
# c = request.getfixturevalue(arg[0])
|
||||
# assert c.get(reverse(FUTURE_URL)).status_code == arg[1]
|
||||
#
|
||||
# def test_future(obj_1, obj_2, obj_3, u1_s1):
|
||||
# r = u1_s1.get(reverse(FUTURE_URL))
|
||||
# assert r.status_code == 200
|
||||
#
|
||||
# cal = Calendar.from_ical(r.getvalue().decode('UTF-8'))
|
||||
# events = cal.walk('VEVENT')
|
||||
# assert len(events) == 2
|
||||
#
|
||||
# def test_from(obj_1, obj_2, obj_3, u1_s1):
|
||||
# from_date_slug = (datetime.now()+timedelta(days=1)).strftime("%Y-%m-%d")
|
||||
# r = u1_s1.get(reverse(FROM_URL, kwargs={'from_date': from_date_slug}))
|
||||
# assert r.status_code == 200
|
||||
#
|
||||
# cal = Calendar.from_ical(r.getvalue().decode('UTF-8'))
|
||||
# events = cal.walk('VEVENT')
|
||||
# assert len(events) == 1
|
||||
#
|
||||
# def test_bound(obj_1, obj_2, obj_3, u1_s1):
|
||||
# from_date_slug = (datetime.now()+timedelta(days=-1)).strftime("%Y-%m-%d")
|
||||
# to_date_slug = (datetime.now()+timedelta(days=1)).strftime("%Y-%m-%d")
|
||||
# r = u1_s1.get(reverse(BOUND_URL, kwargs={'from_date': from_date_slug, 'to_date': to_date_slug}))
|
||||
# assert r.status_code == 200
|
||||
#
|
||||
# cal = Calendar.from_ical(r.getvalue().decode('UTF-8'))
|
||||
# events = cal.walk('VEVENT')
|
||||
# assert len(events) == 1
|
||||
#
|
||||
# def test_event(obj_1, u1_s1):
|
||||
# from_date_slug = (datetime.now()+timedelta(days=-1)).strftime("%Y-%m-%d")
|
||||
# to_date_slug = (datetime.now()+timedelta(days=1)).strftime("%Y-%m-%d")
|
||||
# r = u1_s1.get(reverse(BOUND_URL, kwargs={'from_date': from_date_slug, 'to_date': to_date_slug}))
|
||||
#
|
||||
# cal = Calendar.from_ical(r.getvalue().decode('UTF-8'))
|
||||
# events = cal.walk('VEVENT')
|
||||
# assert len(events) == 1
|
||||
#
|
||||
# event = events[0]
|
||||
# assert int(event['uid']) == obj_1.id
|
||||
# assert event['summary'] == f'{obj_1.meal_type.name}: {obj_1.get_label()}'
|
||||
# assert event['description'] == obj_1.note
|
||||
# assert event.decoded('dtstart') == datetime.now().date()
|
||||
# assert event.decoded('dtend') == datetime.now().date()
|
||||
|
||||
@@ -156,6 +156,7 @@ def test_url_import_regex_replace(u1_s1):
|
||||
|
||||
if 'cookbook' in os.getcwd():
|
||||
test_file = os.path.join(os.getcwd(), 'other', 'test_data', recipe)
|
||||
# TODO this catch doesn't really work depending on from where you start the test, must check for duplicate path sections
|
||||
else:
|
||||
test_file = os.path.join(os.getcwd(), 'cookbook', 'tests', 'other', 'test_data', recipe)
|
||||
with open(test_file, 'r', encoding='UTF-8') as d:
|
||||
|
||||
@@ -297,36 +297,36 @@ def test_fuzzy_lookup(found_recipe, recipes, param_type, user1, space_1):
|
||||
|
||||
# commenting this out for general use - it is really slow
|
||||
# it should be run on occasion to ensure everything still works
|
||||
# @pytest.mark.skipif(sqlite and True, reason="requires PostgreSQL")
|
||||
# @pytest.mark.parametrize("user1", itertools.product(
|
||||
# [
|
||||
# ('fuzzy_search', True), ('fuzzy_search', False),
|
||||
# ('fulltext', True), ('fulltext', False),
|
||||
# ('icontains', True), ('icontains', False),
|
||||
# ('istartswith', True), ('istartswith', False),
|
||||
# ],
|
||||
# [('unaccent', True), ('unaccent', False)]
|
||||
# ), indirect=['user1'])
|
||||
# @pytest.mark.parametrize("found_recipe", [
|
||||
# ({'name': True}),
|
||||
# ({'description': True}),
|
||||
# ({'instruction': True}),
|
||||
# ({'keyword': True}),
|
||||
# ({'food': True}),
|
||||
# ], indirect=['found_recipe'])
|
||||
# # user array contains: user client, expected count of search, expected count of mispelled search, search string, mispelled search string, user search preferences
|
||||
# def test_search_string(found_recipe, recipes, user1, space_1):
|
||||
# with scope(space=space_1):
|
||||
# param1 = f"query={user1[3]}"
|
||||
# param2 = f"query={user1[4]}"
|
||||
@pytest.mark.skipif(sqlite and True, reason="requires PostgreSQL")
|
||||
@pytest.mark.parametrize("user1", itertools.product(
|
||||
[
|
||||
('fuzzy_search', True), ('fuzzy_search', False),
|
||||
('fulltext', True), ('fulltext', False),
|
||||
('icontains', True), ('icontains', False),
|
||||
('istartswith', True), ('istartswith', False),
|
||||
],
|
||||
[('unaccent', True), ('unaccent', False)]
|
||||
), indirect=['user1'])
|
||||
@pytest.mark.parametrize("found_recipe", [
|
||||
({'name': True}),
|
||||
({'description': True}),
|
||||
({'instruction': True}),
|
||||
({'keyword': True}),
|
||||
({'food': True}),
|
||||
], indirect=['found_recipe'])
|
||||
# user array contains: user client, expected count of search, expected count of mispelled search, search string, mispelled search string, user search preferences
|
||||
def test_search_string(found_recipe, recipes, user1, space_1):
|
||||
with scope(space=space_1):
|
||||
param1 = f"query={user1[3]}"
|
||||
param2 = f"query={user1[4]}"
|
||||
|
||||
# r = json.loads(user1[0].get(reverse(LIST_URL) + f'?{param1}').content)
|
||||
# assert len([x['id'] for x in r['results'] if x['id'] in [
|
||||
# found_recipe[0].id, found_recipe[1].id]]) == user1[1]
|
||||
r = json.loads(user1[0].get(reverse(LIST_URL) + f'?{param1}').content)
|
||||
assert len([x['id'] for x in r['results'] if x['id'] in [
|
||||
found_recipe[0].id, found_recipe[1].id]]) == user1[1]
|
||||
|
||||
# r = json.loads(user1[0].get(reverse(LIST_URL) + f'?{param2}').content)
|
||||
# assert len([x['id'] for x in r['results'] if x['id'] in [
|
||||
# found_recipe[0].id, found_recipe[1].id]]) == user1[2]
|
||||
r = json.loads(user1[0].get(reverse(LIST_URL) + f'?{param2}').content)
|
||||
assert len([x['id'] for x in r['results'] if x['id'] in [
|
||||
found_recipe[0].id, found_recipe[1].id]]) == user1[2]
|
||||
|
||||
|
||||
@pytest.mark.parametrize("found_recipe, param_type, result", [
|
||||
|
||||
@@ -8,7 +8,6 @@ from rest_framework.schemas import get_schema_view
|
||||
from cookbook.version_info import TANDOOR_VERSION
|
||||
from recipes.settings import DEBUG, PLUGINS
|
||||
|
||||
|
||||
from .models import (Automation, Comment, CustomFilter, Food, InviteLink, Keyword, PropertyType,
|
||||
Recipe, RecipeBook, RecipeBookEntry, RecipeImport, Space, Step,
|
||||
Storage, Supermarket, SupermarketCategory, Sync, SyncLog, Unit, UnitConversion,
|
||||
@@ -16,7 +15,7 @@ from .models import (Automation, Comment, CustomFilter, Food, InviteLink, Keywor
|
||||
|
||||
from .views import api, data, delete, edit, import_export, lists, new, telegram, views
|
||||
from .views.api import CustomAuthToken, ImportOpenData
|
||||
|
||||
import datetime
|
||||
|
||||
# extend DRF default router class to allow including additional routers
|
||||
class DefaultRouter(routers.DefaultRouter):
|
||||
@@ -121,9 +120,9 @@ urlpatterns = [
|
||||
path('api/get_recipe_file/<int:recipe_id>/', api.get_recipe_file, name='api_get_recipe_file'),
|
||||
path('api/sync_all/', api.sync_all, name='api_sync'),
|
||||
path('api/log_cooking/<int:recipe_id>/', api.log_cooking, name='api_log_cooking'),
|
||||
path('api/plan-ical/', api.get_plan_ical, name='api_get_plan_ical_future'),
|
||||
path('api/plan-ical/<slug:from_date>/', api.get_plan_ical, name='api_get_plan_ical_from'),
|
||||
|
||||
path('api/plan-ical/<slug:from_date>/<slug:to_date>/', api.get_plan_ical, name='api_get_plan_ical'),
|
||||
|
||||
path('api/recipe-from-source/', api.RecipeUrlImportView.as_view(), name='api_recipe_from_source'),
|
||||
path('api/backup/', api.get_backup, name='api_backup'),
|
||||
path('api/ingredient-from-string/', api.ingredient_from_string, name='api_ingredient_from_string'),
|
||||
@@ -137,7 +136,7 @@ urlpatterns = [
|
||||
path('docs/markdown/', views.markdown_info, name='docs_markdown'),
|
||||
path('docs/search/', views.search_info, name='docs_search'),
|
||||
path('docs/api/', views.api_info, name='docs_api'),
|
||||
path('openapi/', get_schema_view(title="Django Recipes", version=TANDOOR_VERSION, public=True, permission_classes=(permissions.AllowAny, )), name='openapi-schema'),
|
||||
path('openapi/', get_schema_view(title="Django Recipes", version=TANDOOR_VERSION, public=True, permission_classes=(permissions.AllowAny,)), name='openapi-schema'),
|
||||
path('api/', include((router.urls, 'api'))),
|
||||
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
|
||||
path('api-token-auth/', CustomAuthToken.as_view()),
|
||||
@@ -148,13 +147,11 @@ urlpatterns = [
|
||||
path('manifest.json', views.web_manifest, name='web_manifest'),
|
||||
]
|
||||
|
||||
|
||||
generic_models = (
|
||||
Recipe, RecipeImport, Storage, ConnectorConfig, RecipeBook, SyncLog, Sync,
|
||||
Comment, RecipeBookEntry, InviteLink, UserSpace, Space
|
||||
)
|
||||
|
||||
|
||||
for m in generic_models:
|
||||
py_name = get_model_name(m)
|
||||
url_name = py_name.replace('_', '-')
|
||||
|
||||
@@ -1168,12 +1168,24 @@ class ShoppingListEntryViewSet(viewsets.ModelViewSet):
|
||||
@decorators.action(detail=False, methods=['POST'], serializer_class=ShoppingListEntryBulkSerializer, permission_classes=[CustomIsUser])
|
||||
def bulk(self, request):
|
||||
serializer = self.serializer_class(data=request.data)
|
||||
|
||||
if serializer.is_valid():
|
||||
ShoppingListEntry.objects.filter(Q(created_by=self.request.user)
|
||||
| Q(created_by__in=list(self.request.user.get_shopping_share()))).filter(space=request.space, id__in=serializer.validated_data['ids']
|
||||
).update(checked=serializer.validated_data['checked'],
|
||||
updated_at=timezone.now(),
|
||||
)
|
||||
print(serializer.validated_data)
|
||||
bulk_entries = ShoppingListEntry.objects.filter(
|
||||
Q(created_by=self.request.user) | Q(created_by__in=list(self.request.user.get_shopping_share()))
|
||||
).filter(space=request.space, id__in=serializer.validated_data['ids'])
|
||||
bulk_entries.update(checked=(checked := serializer.validated_data['checked']), updated_at=timezone.now(), )
|
||||
|
||||
# update the onhand for food if shopping_add_onhand is True
|
||||
if request.user.userpreference.shopping_add_onhand:
|
||||
foods = Food.objects.filter(id__in=bulk_entries.values('food'))
|
||||
if checked:
|
||||
for f in foods:
|
||||
f.onhand_users.add(*request.user.userpreference.shopping_share.all(), request.user)
|
||||
elif checked == False:
|
||||
for f in foods:
|
||||
f.onhand_users.remove(*request.user.userpreference.shopping_share.all(), request.user)
|
||||
|
||||
return Response(serializer.data)
|
||||
else:
|
||||
return Response(serializer.errors, 400)
|
||||
|
||||
@@ -38,7 +38,7 @@ def index(request):
|
||||
return HttpResponseRedirect(reverse_lazy('view_search'))
|
||||
|
||||
try:
|
||||
page_map = {UserPreference.SEARCH: reverse_lazy('view_search'), UserPreference.PLAN: reverse_lazy('view_plan'), UserPreference.BOOKS: reverse_lazy('view_books'), }
|
||||
page_map = {UserPreference.SEARCH: reverse_lazy('view_search'), UserPreference.PLAN: reverse_lazy('view_plan'), UserPreference.BOOKS: reverse_lazy('view_books'), UserPreference.SHOPPING: reverse_lazy('view_shopping'),}
|
||||
|
||||
return HttpResponseRedirect(page_map.get(request.user.userpreference.default_page))
|
||||
except UserPreference.DoesNotExist:
|
||||
@@ -293,20 +293,24 @@ def system(request):
|
||||
|
||||
if postgres:
|
||||
postgres_current = 16 # will need to be updated as PostgreSQL releases new major versions
|
||||
from decimal import Decimal
|
||||
|
||||
from django.db import connection
|
||||
|
||||
postgres_ver = Decimal(str(connection.pg_version).replace('00', '.'))
|
||||
if postgres_ver >= postgres_current:
|
||||
database_status = 'success'
|
||||
database_message = _('Everything is fine!')
|
||||
elif postgres_ver < postgres_current - 2:
|
||||
try:
|
||||
postgres_ver = divmod(connection.pg_version, 10000)[0]
|
||||
if postgres_ver >= postgres_current:
|
||||
database_status = 'success'
|
||||
database_message = _('Everything is fine!')
|
||||
elif postgres_ver < postgres_current - 2:
|
||||
database_status = 'danger'
|
||||
database_message = _('PostgreSQL %(v)s is deprecated. Upgrade to a fully supported version!') % {'v': postgres_ver}
|
||||
else:
|
||||
database_status = 'info'
|
||||
database_message = _('You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended') % {'v1': postgres_ver, 'v2': postgres_current}
|
||||
except Exception as e:
|
||||
print(f"Error determining PostgreSQL version: {e}")
|
||||
database_status = 'danger'
|
||||
database_message = _('PostgreSQL %(v)s is deprecated. Upgrade to a fully supported version!') % {'v': postgres_ver}
|
||||
else:
|
||||
database_status = 'info'
|
||||
database_message = _('You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended') % {'v1': postgres_ver, 'v2': postgres_current}
|
||||
database_message = _('Unable to determine PostgreSQL version.')
|
||||
else:
|
||||
database_status = 'info'
|
||||
database_message = _(
|
||||
@@ -446,7 +450,7 @@ def web_manifest(request):
|
||||
theme_values['app_name'], "description":
|
||||
_("Manage recipes, shopping list, meal plans and more."), "icons":
|
||||
icons, "start_url":
|
||||
"./search", "background_color":
|
||||
"./", "background_color":
|
||||
theme_values['nav_bg_color'], "display":
|
||||
"standalone", "scope":
|
||||
".", "theme_color":
|
||||
@@ -454,7 +458,7 @@ def web_manifest(request):
|
||||
[{"name": _("Plan"), "short_name": _("Plan"), "description": _("View your meal Plan"), "url":
|
||||
"./plan"}, {"name": _("Books"), "short_name": _("Books"), "description": _("View your cookbooks"), "url": "./books"},
|
||||
{"name": _("Shopping"), "short_name": _("Shopping"), "description": _("View your shopping lists"), "url":
|
||||
"./list/shopping-list/"}], "share_target": {"action": "/data/import/url", "method": "GET", "params": {"title": "title", "url": "url", "text": "text"}}
|
||||
"./shopping/"}], "share_target": {"action": "/data/import/url", "method": "GET", "params": {"title": "title", "url": "url", "text": "text"}}
|
||||
}
|
||||
|
||||
return JsonResponse(manifest_info, json_dumps_params={'indent': 4})
|
||||
|
||||
2
docs/coverage/.gitignore
vendored
2
docs/coverage/.gitignore
vendored
@@ -1,2 +0,0 @@
|
||||
# Created by coverage.py
|
||||
*
|
||||
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="114" height="20" role="img" aria-label="coverage: 58.61%"><title>coverage: 58.61%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="114" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="53" height="20" fill="#fe7d37"/><rect width="114" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="865" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="430">58.61%</text><text x="865" y="140" transform="scale(.1)" fill="#fff" textLength="430">58.61%</text></g></svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
File diff suppressed because it is too large
Load Diff
@@ -1,624 +0,0 @@
|
||||
// Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
|
||||
// For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
|
||||
|
||||
// Coverage.py HTML report browser code.
|
||||
/*jslint browser: true, sloppy: true, vars: true, plusplus: true, maxerr: 50, indent: 4 */
|
||||
/*global coverage: true, document, window, $ */
|
||||
|
||||
coverage = {};
|
||||
|
||||
// General helpers
|
||||
function debounce(callback, wait) {
|
||||
let timeoutId = null;
|
||||
return function(...args) {
|
||||
clearTimeout(timeoutId);
|
||||
timeoutId = setTimeout(() => {
|
||||
callback.apply(this, args);
|
||||
}, wait);
|
||||
};
|
||||
};
|
||||
|
||||
function checkVisible(element) {
|
||||
const rect = element.getBoundingClientRect();
|
||||
const viewBottom = Math.max(document.documentElement.clientHeight, window.innerHeight);
|
||||
const viewTop = 30;
|
||||
return !(rect.bottom < viewTop || rect.top >= viewBottom);
|
||||
}
|
||||
|
||||
function on_click(sel, fn) {
|
||||
const elt = document.querySelector(sel);
|
||||
if (elt) {
|
||||
elt.addEventListener("click", fn);
|
||||
}
|
||||
}
|
||||
|
||||
// Helpers for table sorting
|
||||
function getCellValue(row, column = 0) {
|
||||
const cell = row.cells[column] // nosemgrep: eslint.detect-object-injection
|
||||
if (cell.childElementCount == 1) {
|
||||
const child = cell.firstElementChild
|
||||
if (child instanceof HTMLTimeElement && child.dateTime) {
|
||||
return child.dateTime
|
||||
} else if (child instanceof HTMLDataElement && child.value) {
|
||||
return child.value
|
||||
}
|
||||
}
|
||||
return cell.innerText || cell.textContent;
|
||||
}
|
||||
|
||||
function rowComparator(rowA, rowB, column = 0) {
|
||||
let valueA = getCellValue(rowA, column);
|
||||
let valueB = getCellValue(rowB, column);
|
||||
if (!isNaN(valueA) && !isNaN(valueB)) {
|
||||
return valueA - valueB
|
||||
}
|
||||
return valueA.localeCompare(valueB, undefined, {numeric: true});
|
||||
}
|
||||
|
||||
function sortColumn(th) {
|
||||
// Get the current sorting direction of the selected header,
|
||||
// clear state on other headers and then set the new sorting direction
|
||||
const currentSortOrder = th.getAttribute("aria-sort");
|
||||
[...th.parentElement.cells].forEach(header => header.setAttribute("aria-sort", "none"));
|
||||
if (currentSortOrder === "none") {
|
||||
th.setAttribute("aria-sort", th.dataset.defaultSortOrder || "ascending");
|
||||
} else {
|
||||
th.setAttribute("aria-sort", currentSortOrder === "ascending" ? "descending" : "ascending");
|
||||
}
|
||||
|
||||
const column = [...th.parentElement.cells].indexOf(th)
|
||||
|
||||
// Sort all rows and afterwards append them in order to move them in the DOM
|
||||
Array.from(th.closest("table").querySelectorAll("tbody tr"))
|
||||
.sort((rowA, rowB) => rowComparator(rowA, rowB, column) * (th.getAttribute("aria-sort") === "ascending" ? 1 : -1))
|
||||
.forEach(tr => tr.parentElement.appendChild(tr) );
|
||||
}
|
||||
|
||||
// Find all the elements with data-shortcut attribute, and use them to assign a shortcut key.
|
||||
coverage.assign_shortkeys = function () {
|
||||
document.querySelectorAll("[data-shortcut]").forEach(element => {
|
||||
document.addEventListener("keypress", event => {
|
||||
if (event.target.tagName.toLowerCase() === "input") {
|
||||
return; // ignore keypress from search filter
|
||||
}
|
||||
if (event.key === element.dataset.shortcut) {
|
||||
element.click();
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Create the events for the filter box.
|
||||
coverage.wire_up_filter = function () {
|
||||
// Cache elements.
|
||||
const table = document.querySelector("table.index");
|
||||
const table_body_rows = table.querySelectorAll("tbody tr");
|
||||
const no_rows = document.getElementById("no_rows");
|
||||
|
||||
// Observe filter keyevents.
|
||||
document.getElementById("filter").addEventListener("input", debounce(event => {
|
||||
// Keep running total of each metric, first index contains number of shown rows
|
||||
const totals = new Array(table.rows[0].cells.length).fill(0);
|
||||
// Accumulate the percentage as fraction
|
||||
totals[totals.length - 1] = { "numer": 0, "denom": 0 }; // nosemgrep: eslint.detect-object-injection
|
||||
|
||||
// Hide / show elements.
|
||||
table_body_rows.forEach(row => {
|
||||
if (!row.cells[0].textContent.includes(event.target.value)) {
|
||||
// hide
|
||||
row.classList.add("hidden");
|
||||
return;
|
||||
}
|
||||
|
||||
// show
|
||||
row.classList.remove("hidden");
|
||||
totals[0]++;
|
||||
|
||||
for (let column = 1; column < totals.length; column++) {
|
||||
// Accumulate dynamic totals
|
||||
cell = row.cells[column] // nosemgrep: eslint.detect-object-injection
|
||||
if (column === totals.length - 1) {
|
||||
// Last column contains percentage
|
||||
const [numer, denom] = cell.dataset.ratio.split(" ");
|
||||
totals[column]["numer"] += parseInt(numer, 10); // nosemgrep: eslint.detect-object-injection
|
||||
totals[column]["denom"] += parseInt(denom, 10); // nosemgrep: eslint.detect-object-injection
|
||||
} else {
|
||||
totals[column] += parseInt(cell.textContent, 10); // nosemgrep: eslint.detect-object-injection
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Show placeholder if no rows will be displayed.
|
||||
if (!totals[0]) {
|
||||
// Show placeholder, hide table.
|
||||
no_rows.style.display = "block";
|
||||
table.style.display = "none";
|
||||
return;
|
||||
}
|
||||
|
||||
// Hide placeholder, show table.
|
||||
no_rows.style.display = null;
|
||||
table.style.display = null;
|
||||
|
||||
const footer = table.tFoot.rows[0];
|
||||
// Calculate new dynamic sum values based on visible rows.
|
||||
for (let column = 1; column < totals.length; column++) {
|
||||
// Get footer cell element.
|
||||
const cell = footer.cells[column]; // nosemgrep: eslint.detect-object-injection
|
||||
|
||||
// Set value into dynamic footer cell element.
|
||||
if (column === totals.length - 1) {
|
||||
// Percentage column uses the numerator and denominator,
|
||||
// and adapts to the number of decimal places.
|
||||
const match = /\.([0-9]+)/.exec(cell.textContent);
|
||||
const places = match ? match[1].length : 0;
|
||||
const { numer, denom } = totals[column]; // nosemgrep: eslint.detect-object-injection
|
||||
cell.dataset.ratio = `${numer} ${denom}`;
|
||||
// Check denom to prevent NaN if filtered files contain no statements
|
||||
cell.textContent = denom
|
||||
? `${(numer * 100 / denom).toFixed(places)}%`
|
||||
: `${(100).toFixed(places)}%`;
|
||||
} else {
|
||||
cell.textContent = totals[column]; // nosemgrep: eslint.detect-object-injection
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
// Trigger change event on setup, to force filter on page refresh
|
||||
// (filter value may still be present).
|
||||
document.getElementById("filter").dispatchEvent(new Event("input"));
|
||||
};
|
||||
|
||||
coverage.INDEX_SORT_STORAGE = "COVERAGE_INDEX_SORT_2";
|
||||
|
||||
// Loaded on index.html
|
||||
coverage.index_ready = function () {
|
||||
coverage.assign_shortkeys();
|
||||
coverage.wire_up_filter();
|
||||
document.querySelectorAll("[data-sortable] th[aria-sort]").forEach(
|
||||
th => th.addEventListener("click", e => sortColumn(e.target))
|
||||
);
|
||||
|
||||
// Look for a localStorage item containing previous sort settings:
|
||||
const stored_list = localStorage.getItem(coverage.INDEX_SORT_STORAGE);
|
||||
|
||||
if (stored_list) {
|
||||
const {column, direction} = JSON.parse(stored_list);
|
||||
const th = document.querySelector("[data-sortable]").tHead.rows[0].cells[column]; // nosemgrep: eslint.detect-object-injection
|
||||
th.setAttribute("aria-sort", direction === "ascending" ? "descending" : "ascending");
|
||||
th.click()
|
||||
}
|
||||
|
||||
// Watch for page unload events so we can save the final sort settings:
|
||||
window.addEventListener("unload", function () {
|
||||
const th = document.querySelector('[data-sortable] th[aria-sort="ascending"], [data-sortable] [aria-sort="descending"]');
|
||||
if (!th) {
|
||||
return;
|
||||
}
|
||||
localStorage.setItem(coverage.INDEX_SORT_STORAGE, JSON.stringify({
|
||||
column: [...th.parentElement.cells].indexOf(th),
|
||||
direction: th.getAttribute("aria-sort"),
|
||||
}));
|
||||
});
|
||||
|
||||
on_click(".button_prev_file", coverage.to_prev_file);
|
||||
on_click(".button_next_file", coverage.to_next_file);
|
||||
|
||||
on_click(".button_show_hide_help", coverage.show_hide_help);
|
||||
};
|
||||
|
||||
// -- pyfile stuff --
|
||||
|
||||
coverage.LINE_FILTERS_STORAGE = "COVERAGE_LINE_FILTERS";
|
||||
|
||||
coverage.pyfile_ready = function () {
|
||||
// If we're directed to a particular line number, highlight the line.
|
||||
var frag = location.hash;
|
||||
if (frag.length > 2 && frag[1] === "t") {
|
||||
document.querySelector(frag).closest(".n").classList.add("highlight");
|
||||
coverage.set_sel(parseInt(frag.substr(2), 10));
|
||||
} else {
|
||||
coverage.set_sel(0);
|
||||
}
|
||||
|
||||
on_click(".button_toggle_run", coverage.toggle_lines);
|
||||
on_click(".button_toggle_mis", coverage.toggle_lines);
|
||||
on_click(".button_toggle_exc", coverage.toggle_lines);
|
||||
on_click(".button_toggle_par", coverage.toggle_lines);
|
||||
|
||||
on_click(".button_next_chunk", coverage.to_next_chunk_nicely);
|
||||
on_click(".button_prev_chunk", coverage.to_prev_chunk_nicely);
|
||||
on_click(".button_top_of_page", coverage.to_top);
|
||||
on_click(".button_first_chunk", coverage.to_first_chunk);
|
||||
|
||||
on_click(".button_prev_file", coverage.to_prev_file);
|
||||
on_click(".button_next_file", coverage.to_next_file);
|
||||
on_click(".button_to_index", coverage.to_index);
|
||||
|
||||
on_click(".button_show_hide_help", coverage.show_hide_help);
|
||||
|
||||
coverage.filters = undefined;
|
||||
try {
|
||||
coverage.filters = localStorage.getItem(coverage.LINE_FILTERS_STORAGE);
|
||||
} catch(err) {}
|
||||
|
||||
if (coverage.filters) {
|
||||
coverage.filters = JSON.parse(coverage.filters);
|
||||
}
|
||||
else {
|
||||
coverage.filters = {run: false, exc: true, mis: true, par: true};
|
||||
}
|
||||
|
||||
for (cls in coverage.filters) {
|
||||
coverage.set_line_visibilty(cls, coverage.filters[cls]); // nosemgrep: eslint.detect-object-injection
|
||||
}
|
||||
|
||||
coverage.assign_shortkeys();
|
||||
coverage.init_scroll_markers();
|
||||
coverage.wire_up_sticky_header();
|
||||
|
||||
document.querySelectorAll("[id^=ctxs]").forEach(
|
||||
cbox => cbox.addEventListener("click", coverage.expand_contexts)
|
||||
);
|
||||
|
||||
// Rebuild scroll markers when the window height changes.
|
||||
window.addEventListener("resize", coverage.build_scroll_markers);
|
||||
};
|
||||
|
||||
coverage.toggle_lines = function (event) {
|
||||
const btn = event.target.closest("button");
|
||||
const category = btn.value
|
||||
const show = !btn.classList.contains("show_" + category);
|
||||
coverage.set_line_visibilty(category, show);
|
||||
coverage.build_scroll_markers();
|
||||
coverage.filters[category] = show;
|
||||
try {
|
||||
localStorage.setItem(coverage.LINE_FILTERS_STORAGE, JSON.stringify(coverage.filters));
|
||||
} catch(err) {}
|
||||
};
|
||||
|
||||
coverage.set_line_visibilty = function (category, should_show) {
|
||||
const cls = "show_" + category;
|
||||
const btn = document.querySelector(".button_toggle_" + category);
|
||||
if (btn) {
|
||||
if (should_show) {
|
||||
document.querySelectorAll("#source ." + category).forEach(e => e.classList.add(cls));
|
||||
btn.classList.add(cls);
|
||||
}
|
||||
else {
|
||||
document.querySelectorAll("#source ." + category).forEach(e => e.classList.remove(cls));
|
||||
btn.classList.remove(cls);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Return the nth line div.
|
||||
coverage.line_elt = function (n) {
|
||||
return document.getElementById("t" + n)?.closest("p");
|
||||
};
|
||||
|
||||
// Set the selection. b and e are line numbers.
|
||||
coverage.set_sel = function (b, e) {
|
||||
// The first line selected.
|
||||
coverage.sel_begin = b;
|
||||
// The next line not selected.
|
||||
coverage.sel_end = (e === undefined) ? b+1 : e;
|
||||
};
|
||||
|
||||
coverage.to_top = function () {
|
||||
coverage.set_sel(0, 1);
|
||||
coverage.scroll_window(0);
|
||||
};
|
||||
|
||||
coverage.to_first_chunk = function () {
|
||||
coverage.set_sel(0, 1);
|
||||
coverage.to_next_chunk();
|
||||
};
|
||||
|
||||
coverage.to_prev_file = function () {
|
||||
window.location = document.getElementById("prevFileLink").href;
|
||||
}
|
||||
|
||||
coverage.to_next_file = function () {
|
||||
window.location = document.getElementById("nextFileLink").href;
|
||||
}
|
||||
|
||||
coverage.to_index = function () {
|
||||
location.href = document.getElementById("indexLink").href;
|
||||
}
|
||||
|
||||
coverage.show_hide_help = function () {
|
||||
const helpCheck = document.getElementById("help_panel_state")
|
||||
helpCheck.checked = !helpCheck.checked;
|
||||
}
|
||||
|
||||
// Return a string indicating what kind of chunk this line belongs to,
|
||||
// or null if not a chunk.
|
||||
coverage.chunk_indicator = function (line_elt) {
|
||||
const classes = line_elt?.className;
|
||||
if (!classes) {
|
||||
return null;
|
||||
}
|
||||
const match = classes.match(/\bshow_\w+\b/);
|
||||
if (!match) {
|
||||
return null;
|
||||
}
|
||||
return match[0];
|
||||
};
|
||||
|
||||
coverage.to_next_chunk = function () {
|
||||
const c = coverage;
|
||||
|
||||
// Find the start of the next colored chunk.
|
||||
var probe = c.sel_end;
|
||||
var chunk_indicator, probe_line;
|
||||
while (true) {
|
||||
probe_line = c.line_elt(probe);
|
||||
if (!probe_line) {
|
||||
return;
|
||||
}
|
||||
chunk_indicator = c.chunk_indicator(probe_line);
|
||||
if (chunk_indicator) {
|
||||
break;
|
||||
}
|
||||
probe++;
|
||||
}
|
||||
|
||||
// There's a next chunk, `probe` points to it.
|
||||
var begin = probe;
|
||||
|
||||
// Find the end of this chunk.
|
||||
var next_indicator = chunk_indicator;
|
||||
while (next_indicator === chunk_indicator) {
|
||||
probe++;
|
||||
probe_line = c.line_elt(probe);
|
||||
next_indicator = c.chunk_indicator(probe_line);
|
||||
}
|
||||
c.set_sel(begin, probe);
|
||||
c.show_selection();
|
||||
};
|
||||
|
||||
coverage.to_prev_chunk = function () {
|
||||
const c = coverage;
|
||||
|
||||
// Find the end of the prev colored chunk.
|
||||
var probe = c.sel_begin-1;
|
||||
var probe_line = c.line_elt(probe);
|
||||
if (!probe_line) {
|
||||
return;
|
||||
}
|
||||
var chunk_indicator = c.chunk_indicator(probe_line);
|
||||
while (probe > 1 && !chunk_indicator) {
|
||||
probe--;
|
||||
probe_line = c.line_elt(probe);
|
||||
if (!probe_line) {
|
||||
return;
|
||||
}
|
||||
chunk_indicator = c.chunk_indicator(probe_line);
|
||||
}
|
||||
|
||||
// There's a prev chunk, `probe` points to its last line.
|
||||
var end = probe+1;
|
||||
|
||||
// Find the beginning of this chunk.
|
||||
var prev_indicator = chunk_indicator;
|
||||
while (prev_indicator === chunk_indicator) {
|
||||
probe--;
|
||||
if (probe <= 0) {
|
||||
return;
|
||||
}
|
||||
probe_line = c.line_elt(probe);
|
||||
prev_indicator = c.chunk_indicator(probe_line);
|
||||
}
|
||||
c.set_sel(probe+1, end);
|
||||
c.show_selection();
|
||||
};
|
||||
|
||||
// Returns 0, 1, or 2: how many of the two ends of the selection are on
|
||||
// the screen right now?
|
||||
coverage.selection_ends_on_screen = function () {
|
||||
if (coverage.sel_begin === 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const begin = coverage.line_elt(coverage.sel_begin);
|
||||
const end = coverage.line_elt(coverage.sel_end-1);
|
||||
|
||||
return (
|
||||
(checkVisible(begin) ? 1 : 0)
|
||||
+ (checkVisible(end) ? 1 : 0)
|
||||
);
|
||||
};
|
||||
|
||||
coverage.to_next_chunk_nicely = function () {
|
||||
if (coverage.selection_ends_on_screen() === 0) {
|
||||
// The selection is entirely off the screen:
|
||||
// Set the top line on the screen as selection.
|
||||
|
||||
// This will select the top-left of the viewport
|
||||
// As this is most likely the span with the line number we take the parent
|
||||
const line = document.elementFromPoint(0, 0).parentElement;
|
||||
if (line.parentElement !== document.getElementById("source")) {
|
||||
// The element is not a source line but the header or similar
|
||||
coverage.select_line_or_chunk(1);
|
||||
} else {
|
||||
// We extract the line number from the id
|
||||
coverage.select_line_or_chunk(parseInt(line.id.substring(1), 10));
|
||||
}
|
||||
}
|
||||
coverage.to_next_chunk();
|
||||
};
|
||||
|
||||
coverage.to_prev_chunk_nicely = function () {
|
||||
if (coverage.selection_ends_on_screen() === 0) {
|
||||
// The selection is entirely off the screen:
|
||||
// Set the lowest line on the screen as selection.
|
||||
|
||||
// This will select the bottom-left of the viewport
|
||||
// As this is most likely the span with the line number we take the parent
|
||||
const line = document.elementFromPoint(document.documentElement.clientHeight-1, 0).parentElement;
|
||||
if (line.parentElement !== document.getElementById("source")) {
|
||||
// The element is not a source line but the header or similar
|
||||
coverage.select_line_or_chunk(coverage.lines_len);
|
||||
} else {
|
||||
// We extract the line number from the id
|
||||
coverage.select_line_or_chunk(parseInt(line.id.substring(1), 10));
|
||||
}
|
||||
}
|
||||
coverage.to_prev_chunk();
|
||||
};
|
||||
|
||||
// Select line number lineno, or if it is in a colored chunk, select the
|
||||
// entire chunk
|
||||
coverage.select_line_or_chunk = function (lineno) {
|
||||
var c = coverage;
|
||||
var probe_line = c.line_elt(lineno);
|
||||
if (!probe_line) {
|
||||
return;
|
||||
}
|
||||
var the_indicator = c.chunk_indicator(probe_line);
|
||||
if (the_indicator) {
|
||||
// The line is in a highlighted chunk.
|
||||
// Search backward for the first line.
|
||||
var probe = lineno;
|
||||
var indicator = the_indicator;
|
||||
while (probe > 0 && indicator === the_indicator) {
|
||||
probe--;
|
||||
probe_line = c.line_elt(probe);
|
||||
if (!probe_line) {
|
||||
break;
|
||||
}
|
||||
indicator = c.chunk_indicator(probe_line);
|
||||
}
|
||||
var begin = probe + 1;
|
||||
|
||||
// Search forward for the last line.
|
||||
probe = lineno;
|
||||
indicator = the_indicator;
|
||||
while (indicator === the_indicator) {
|
||||
probe++;
|
||||
probe_line = c.line_elt(probe);
|
||||
indicator = c.chunk_indicator(probe_line);
|
||||
}
|
||||
|
||||
coverage.set_sel(begin, probe);
|
||||
}
|
||||
else {
|
||||
coverage.set_sel(lineno);
|
||||
}
|
||||
};
|
||||
|
||||
coverage.show_selection = function () {
|
||||
// Highlight the lines in the chunk
|
||||
document.querySelectorAll("#source .highlight").forEach(e => e.classList.remove("highlight"));
|
||||
for (let probe = coverage.sel_begin; probe < coverage.sel_end; probe++) {
|
||||
coverage.line_elt(probe).querySelector(".n").classList.add("highlight");
|
||||
}
|
||||
|
||||
coverage.scroll_to_selection();
|
||||
};
|
||||
|
||||
coverage.scroll_to_selection = function () {
|
||||
// Scroll the page if the chunk isn't fully visible.
|
||||
if (coverage.selection_ends_on_screen() < 2) {
|
||||
const element = coverage.line_elt(coverage.sel_begin);
|
||||
coverage.scroll_window(element.offsetTop - 60);
|
||||
}
|
||||
};
|
||||
|
||||
coverage.scroll_window = function (to_pos) {
|
||||
window.scroll({top: to_pos, behavior: "smooth"});
|
||||
};
|
||||
|
||||
coverage.init_scroll_markers = function () {
|
||||
// Init some variables
|
||||
coverage.lines_len = document.querySelectorAll("#source > p").length;
|
||||
|
||||
// Build html
|
||||
coverage.build_scroll_markers();
|
||||
};
|
||||
|
||||
coverage.build_scroll_markers = function () {
|
||||
const temp_scroll_marker = document.getElementById("scroll_marker")
|
||||
if (temp_scroll_marker) temp_scroll_marker.remove();
|
||||
// Don't build markers if the window has no scroll bar.
|
||||
if (document.body.scrollHeight <= window.innerHeight) {
|
||||
return;
|
||||
}
|
||||
|
||||
const marker_scale = window.innerHeight / document.body.scrollHeight;
|
||||
const line_height = Math.min(Math.max(3, window.innerHeight / coverage.lines_len), 10);
|
||||
|
||||
let previous_line = -99, last_mark, last_top;
|
||||
|
||||
const scroll_marker = document.createElement("div");
|
||||
scroll_marker.id = "scroll_marker";
|
||||
document.getElementById("source").querySelectorAll(
|
||||
"p.show_run, p.show_mis, p.show_exc, p.show_exc, p.show_par"
|
||||
).forEach(element => {
|
||||
const line_top = Math.floor(element.offsetTop * marker_scale);
|
||||
const line_number = parseInt(element.querySelector(".n a").id.substr(1));
|
||||
|
||||
if (line_number === previous_line + 1) {
|
||||
// If this solid missed block just make previous mark higher.
|
||||
last_mark.style.height = `${line_top + line_height - last_top}px`;
|
||||
} else {
|
||||
// Add colored line in scroll_marker block.
|
||||
last_mark = document.createElement("div");
|
||||
last_mark.id = `m${line_number}`;
|
||||
last_mark.classList.add("marker");
|
||||
last_mark.style.height = `${line_height}px`;
|
||||
last_mark.style.top = `${line_top}px`;
|
||||
scroll_marker.append(last_mark);
|
||||
last_top = line_top;
|
||||
}
|
||||
|
||||
previous_line = line_number;
|
||||
});
|
||||
|
||||
// Append last to prevent layout calculation
|
||||
document.body.append(scroll_marker);
|
||||
};
|
||||
|
||||
coverage.wire_up_sticky_header = function () {
|
||||
const header = document.querySelector("header");
|
||||
const header_bottom = (
|
||||
header.querySelector(".content h2").getBoundingClientRect().top -
|
||||
header.getBoundingClientRect().top
|
||||
);
|
||||
|
||||
function updateHeader() {
|
||||
if (window.scrollY > header_bottom) {
|
||||
header.classList.add("sticky");
|
||||
} else {
|
||||
header.classList.remove("sticky");
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener("scroll", updateHeader);
|
||||
updateHeader();
|
||||
};
|
||||
|
||||
coverage.expand_contexts = function (e) {
|
||||
var ctxs = e.target.parentNode.querySelector(".ctxs");
|
||||
|
||||
if (!ctxs.classList.contains("expanded")) {
|
||||
var ctxs_text = ctxs.textContent;
|
||||
var width = Number(ctxs_text[0]);
|
||||
ctxs.textContent = "";
|
||||
for (var i = 1; i < ctxs_text.length; i += width) {
|
||||
key = ctxs_text.substring(i, i + width).trim();
|
||||
ctxs.appendChild(document.createTextNode(contexts[key]));
|
||||
ctxs.appendChild(document.createElement("br"));
|
||||
}
|
||||
ctxs.classList.add("expanded");
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
if (document.body.classList.contains("indexfile")) {
|
||||
coverage.index_ready();
|
||||
} else {
|
||||
coverage.pyfile_ready();
|
||||
}
|
||||
});
|
||||
@@ -1,249 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/provider/dropbox.py: 28%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/provider/dropbox.py</b>:
|
||||
<span class="pc_cov">28%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">75 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">21<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">54<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_a167ab5b5108d61e_models_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_0b5495cf37ee6c4f_local_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">io</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">import</span> <span class="nam">json</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">import</span> <span class="nam">os</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">datetime</span> <span class="key">import</span> <span class="nam">datetime</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">import</span> <span class="nam">requests</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">import</span> <span class="nam">validators</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">RecipeImport</span><span class="op">,</span> <span class="nam">SyncLog</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">provider</span><span class="op">.</span><span class="nam">provider</span> <span class="key">import</span> <span class="nam">Provider</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"><span class="key">class</span> <span class="nam">Dropbox</span><span class="op">(</span><span class="nam">Provider</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_all</span><span class="op">(</span><span class="nam">monitor</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="str">"https://api.dropboxapi.com/2/files/list_folder"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="nam">headers</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="str">"Authorization"</span><span class="op">:</span> <span class="str">"Bearer "</span> <span class="op">+</span> <span class="nam">monitor</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">token</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="str">"Content-Type"</span><span class="op">:</span> <span class="str">"application/json"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">data</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="str">"path"</span><span class="op">:</span> <span class="nam">monitor</span><span class="op">.</span><span class="nam">path</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">r</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">post</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">headers</span><span class="op">=</span><span class="nam">headers</span><span class="op">,</span> <span class="nam">data</span><span class="op">=</span><span class="nam">json</span><span class="op">.</span><span class="nam">dumps</span><span class="op">(</span><span class="nam">data</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="nam">recipes</span> <span class="op">=</span> <span class="nam">r</span><span class="op">.</span><span class="nam">json</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="key">except</span> <span class="nam">ValueError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="nam">log_entry</span> <span class="op">=</span> <span class="nam">SyncLog</span><span class="op">(</span><span class="nam">status</span><span class="op">=</span><span class="str">'ERROR'</span><span class="op">,</span> <span class="nam">msg</span><span class="op">=</span><span class="nam">str</span><span class="op">(</span><span class="nam">r</span><span class="op">)</span><span class="op">,</span> <span class="nam">sync</span><span class="op">=</span><span class="nam">monitor</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="nam">log_entry</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="key">return</span> <span class="nam">r</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> <span class="nam">import_count</span> <span class="op">=</span> <span class="num">0</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="com"># TODO check if has_more is set and import that as well</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="key">for</span> <span class="nam">recipe</span> <span class="key">in</span> <span class="nam">recipes</span><span class="op">[</span><span class="str">'entries'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="nam">path</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">[</span><span class="str">'path_lower'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">file_path__iexact</span><span class="op">=</span><span class="nam">path</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span><span class="op">.</span><span class="nam">exists</span><span class="op">(</span><span class="op">)</span> <span class="key">and</span> <span class="key">not</span> <span class="nam">RecipeImport</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">file_path</span><span class="op">=</span><span class="nam">path</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span><span class="op">.</span><span class="nam">exists</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="nam">name</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">splitext</span><span class="op">(</span><span class="nam">recipe</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="nam">new_recipe</span> <span class="op">=</span> <span class="nam">RecipeImport</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">name</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="nam">file_path</span><span class="op">=</span><span class="nam">path</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">storage</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">storage</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="nam">file_uid</span><span class="op">=</span><span class="nam">recipe</span><span class="op">[</span><span class="str">'id'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="nam">space</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">new_recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">import_count</span> <span class="op">+=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="nam">log_entry</span> <span class="op">=</span> <span class="nam">SyncLog</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="nam">status</span><span class="op">=</span><span class="str">'SUCCESS'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="nam">msg</span><span class="op">=</span><span class="str">'Imported '</span> <span class="op">+</span> <span class="nam">str</span><span class="op">(</span><span class="nam">import_count</span><span class="op">)</span> <span class="op">+</span> <span class="str">' recipes'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="nam">sync</span><span class="op">=</span><span class="nam">monitor</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="nam">log_entry</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="nam">monitor</span><span class="op">.</span><span class="nam">last_checked</span> <span class="op">=</span> <span class="nam">datetime</span><span class="op">.</span><span class="nam">now</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="nam">monitor</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="key">return</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="key">def</span> <span class="nam">create_share_link</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="str">"https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings"</span> <span class="com"># noqa: E501</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="nam">headers</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="str">"Authorization"</span><span class="op">:</span> <span class="str">"Bearer "</span> <span class="op">+</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">token</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="str">"Content-Type"</span><span class="op">:</span> <span class="str">"application/json"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="nam">data</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="str">"path"</span><span class="op">:</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">file_uid</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> <span class="nam">r</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">post</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">headers</span><span class="op">=</span><span class="nam">headers</span><span class="op">,</span> <span class="nam">data</span><span class="op">=</span><span class="nam">json</span><span class="op">.</span><span class="nam">dumps</span><span class="op">(</span><span class="nam">data</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="key">return</span> <span class="nam">r</span><span class="op">.</span><span class="nam">json</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_share_link</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="str">"https://api.dropboxapi.com/2/sharing/list_shared_links"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> <span class="nam">headers</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> <span class="str">"Authorization"</span><span class="op">:</span> <span class="str">"Bearer "</span> <span class="op">+</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">token</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="str">"Content-Type"</span><span class="op">:</span> <span class="str">"application/json"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> <span class="nam">data</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="str">"path"</span><span class="op">:</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> <span class="nam">r</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">post</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">headers</span><span class="op">=</span><span class="nam">headers</span><span class="op">,</span> <span class="nam">data</span><span class="op">=</span><span class="nam">json</span><span class="op">.</span><span class="nam">dumps</span><span class="op">(</span><span class="nam">data</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> <span class="nam">p</span> <span class="op">=</span> <span class="nam">r</span><span class="op">.</span><span class="nam">json</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> <span class="key">for</span> <span class="nam">link</span> <span class="key">in</span> <span class="nam">p</span><span class="op">[</span><span class="str">'links'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"> <span class="key">return</span> <span class="nam">link</span><span class="op">[</span><span class="str">'url'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t100" href="#t100">100</a></span><span class="t"> <span class="nam">response</span> <span class="op">=</span> <span class="nam">Dropbox</span><span class="op">.</span><span class="nam">create_share_link</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t101" href="#t101">101</a></span><span class="t"> <span class="key">return</span> <span class="nam">response</span><span class="op">[</span><span class="str">'url'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t102" href="#t102">102</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t103" href="#t103">103</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t104" href="#t104">104</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t105" href="#t105">105</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">link</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t106" href="#t106">106</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">link</span> <span class="op">=</span> <span class="nam">Dropbox</span><span class="op">.</span><span class="nam">get_share_link</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t107" href="#t107">107</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t108" href="#t108">108</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t109" href="#t109">109</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">link</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'www.dropbox.'</span><span class="op">,</span> <span class="str">'dl.dropboxusercontent.'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t110" href="#t110">110</a></span><span class="t"> <span class="key">if</span> <span class="nam">validators</span><span class="op">.</span><span class="nam">url</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">public</span><span class="op">=</span><span class="key">True</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t111" href="#t111">111</a></span><span class="t"> <span class="nam">response</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="nam">url</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t112" href="#t112">112</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t113" href="#t113">113</a></span><span class="t"> <span class="key">return</span> <span class="nam">io</span><span class="op">.</span><span class="nam">BytesIO</span><span class="op">(</span><span class="nam">response</span><span class="op">.</span><span class="nam">content</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t114" href="#t114">114</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t115" href="#t115">115</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t116" href="#t116">116</a></span><span class="t"> <span class="key">def</span> <span class="nam">rename_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">new_name</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t117" href="#t117">117</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="str">"https://api.dropboxapi.com/2/files/move_v2"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t118" href="#t118">118</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t119" href="#t119">119</a></span><span class="t"> <span class="nam">headers</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t120" href="#t120">120</a></span><span class="t"> <span class="str">"Authorization"</span><span class="op">:</span> <span class="str">"Bearer "</span> <span class="op">+</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">token</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t121" href="#t121">121</a></span><span class="t"> <span class="str">"Content-Type"</span><span class="op">:</span> <span class="str">"application/json"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t122" href="#t122">122</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t123" href="#t123">123</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t124" href="#t124">124</a></span><span class="t"> <span class="nam">data</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t125" href="#t125">125</a></span><span class="t"> <span class="str">"from_path"</span><span class="op">:</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t126" href="#t126">126</a></span><span class="t"> <span class="str">"to_path"</span><span class="op">:</span> <span class="str">"%s/%s%s"</span> <span class="op">%</span> <span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t127" href="#t127">127</a></span><span class="t"> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">dirname</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t128" href="#t128">128</a></span><span class="t"> <span class="nam">new_name</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t129" href="#t129">129</a></span><span class="t"> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">splitext</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">)</span><span class="op">[</span><span class="num">1</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t130" href="#t130">130</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t131" href="#t131">131</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t132" href="#t132">132</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t133" href="#t133">133</a></span><span class="t"> <span class="nam">r</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">post</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">headers</span><span class="op">=</span><span class="nam">headers</span><span class="op">,</span> <span class="nam">data</span><span class="op">=</span><span class="nam">json</span><span class="op">.</span><span class="nam">dumps</span><span class="op">(</span><span class="nam">data</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t134" href="#t134">134</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t135" href="#t135">135</a></span><span class="t"> <span class="key">return</span> <span class="nam">r</span><span class="op">.</span><span class="nam">json</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t136" href="#t136">136</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t137" href="#t137">137</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t138" href="#t138">138</a></span><span class="t"> <span class="key">def</span> <span class="nam">delete_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t139" href="#t139">139</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="str">"https://api.dropboxapi.com/2/files/delete_v2"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t140" href="#t140">140</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t141" href="#t141">141</a></span><span class="t"> <span class="nam">headers</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t142" href="#t142">142</a></span><span class="t"> <span class="str">"Authorization"</span><span class="op">:</span> <span class="str">"Bearer "</span> <span class="op">+</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">token</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t143" href="#t143">143</a></span><span class="t"> <span class="str">"Content-Type"</span><span class="op">:</span> <span class="str">"application/json"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t144" href="#t144">144</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t145" href="#t145">145</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t146" href="#t146">146</a></span><span class="t"> <span class="nam">data</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t147" href="#t147">147</a></span><span class="t"> <span class="str">"path"</span><span class="op">:</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t148" href="#t148">148</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t149" href="#t149">149</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t150" href="#t150">150</a></span><span class="t"> <span class="nam">r</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">post</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">headers</span><span class="op">=</span><span class="nam">headers</span><span class="op">,</span> <span class="nam">data</span><span class="op">=</span><span class="nam">json</span><span class="op">.</span><span class="nam">dumps</span><span class="op">(</span><span class="nam">data</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t151" href="#t151">151</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t152" href="#t152">152</a></span><span class="t"> <span class="key">return</span> <span class="nam">r</span><span class="op">.</span><span class="nam">json</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_a167ab5b5108d61e_models_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_0b5495cf37ee6c4f_local_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,155 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/provider/local.py: 44%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/provider/local.py</b>:
|
||||
<span class="pc_cov">44%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">36 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">16<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">20<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_0b5495cf37ee6c4f_dropbox_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_0b5495cf37ee6c4f_nextcloud_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">io</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">import</span> <span class="nam">os</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">from</span> <span class="nam">datetime</span> <span class="key">import</span> <span class="nam">datetime</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">os</span> <span class="key">import</span> <span class="nam">listdir</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span> <span class="key">import</span> <span class="nam">isfile</span><span class="op">,</span> <span class="nam">join</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">RecipeImport</span><span class="op">,</span> <span class="nam">SyncLog</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">provider</span><span class="op">.</span><span class="nam">provider</span> <span class="key">import</span> <span class="nam">Provider</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"><span class="key">class</span> <span class="nam">Local</span><span class="op">(</span><span class="nam">Provider</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_all</span><span class="op">(</span><span class="nam">monitor</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="nam">files</span> <span class="op">=</span> <span class="op">[</span><span class="nam">f</span> <span class="key">for</span> <span class="nam">f</span> <span class="key">in</span> <span class="nam">listdir</span><span class="op">(</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">path</span><span class="op">)</span> <span class="key">if</span> <span class="nam">isfile</span><span class="op">(</span><span class="nam">join</span><span class="op">(</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">path</span><span class="op">,</span> <span class="nam">f</span><span class="op">)</span><span class="op">)</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="nam">import_count</span> <span class="op">=</span> <span class="num">0</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="key">for</span> <span class="nam">file</span> <span class="key">in</span> <span class="nam">files</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="nam">path</span> <span class="op">=</span> <span class="nam">monitor</span><span class="op">.</span><span class="nam">path</span> <span class="op">+</span> <span class="str">'/'</span> <span class="op">+</span> <span class="nam">file</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">file_path__iexact</span><span class="op">=</span><span class="nam">path</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span><span class="op">.</span><span class="nam">exists</span><span class="op">(</span><span class="op">)</span> <span class="key">and</span> <span class="key">not</span> <span class="nam">RecipeImport</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">file_path</span><span class="op">=</span><span class="nam">path</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span><span class="op">.</span><span class="nam">exists</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="nam">name</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">splitext</span><span class="op">(</span><span class="nam">file</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="nam">new_recipe</span> <span class="op">=</span> <span class="nam">RecipeImport</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">name</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">file_path</span><span class="op">=</span><span class="nam">path</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="nam">storage</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">storage</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="nam">space</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">new_recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> <span class="nam">import_count</span> <span class="op">+=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="nam">log_entry</span> <span class="op">=</span> <span class="nam">SyncLog</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="nam">status</span><span class="op">=</span><span class="str">'SUCCESS'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="nam">msg</span><span class="op">=</span><span class="str">'Imported '</span> <span class="op">+</span> <span class="nam">str</span><span class="op">(</span><span class="nam">import_count</span><span class="op">)</span> <span class="op">+</span> <span class="str">' recipes'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="nam">sync</span><span class="op">=</span><span class="nam">monitor</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> <span class="nam">log_entry</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="nam">monitor</span><span class="op">.</span><span class="nam">last_checked</span> <span class="op">=</span> <span class="nam">datetime</span><span class="op">.</span><span class="nam">now</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="nam">monitor</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="key">return</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">file</span> <span class="op">=</span> <span class="nam">io</span><span class="op">.</span><span class="nam">BytesIO</span><span class="op">(</span><span class="nam">open</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">,</span> <span class="str">'rb'</span><span class="op">)</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="key">return</span> <span class="nam">file</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="key">def</span> <span class="nam">rename_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">new_name</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="nam">os</span><span class="op">.</span><span class="nam">rename</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">,</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">dirname</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">)</span><span class="op">,</span> <span class="op">(</span><span class="nam">new_name</span> <span class="op">+</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">splitext</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">)</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="key">return</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="key">def</span> <span class="nam">delete_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="nam">os</span><span class="op">.</span><span class="nam">remove</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="key">return</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_0b5495cf37ee6c4f_dropbox_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_0b5495cf37ee6c4f_nextcloud_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,246 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/provider/nextcloud.py: 33%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/provider/nextcloud.py</b>:
|
||||
<span class="pc_cov">33%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">78 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">26<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">52<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_0b5495cf37ee6c4f_local_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_0b5495cf37ee6c4f_provider_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">io</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">import</span> <span class="nam">os</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">import</span> <span class="nam">tempfile</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">datetime</span> <span class="key">import</span> <span class="nam">datetime</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">import</span> <span class="nam">requests</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">import</span> <span class="nam">validators</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">import</span> <span class="nam">webdav3</span><span class="op">.</span><span class="nam">client</span> <span class="key">as</span> <span class="nam">wc</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">RecipeImport</span><span class="op">,</span> <span class="nam">SyncLog</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">provider</span><span class="op">.</span><span class="nam">provider</span> <span class="key">import</span> <span class="nam">Provider</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"><span class="key">from</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">auth</span> <span class="key">import</span> <span class="nam">HTTPBasicAuth</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"><span class="key">from</span> <span class="nam">recipes</span><span class="op">.</span><span class="nam">settings</span> <span class="key">import</span> <span class="nam">DEBUG</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"><span class="key">class</span> <span class="nam">Nextcloud</span><span class="op">(</span><span class="nam">Provider</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_client</span><span class="op">(</span><span class="nam">storage</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="nam">options</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="str">'webdav_hostname'</span><span class="op">:</span> <span class="nam">storage</span><span class="op">.</span><span class="nam">url</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="str">'webdav_login'</span><span class="op">:</span> <span class="nam">storage</span><span class="op">.</span><span class="nam">username</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="str">'webdav_password'</span><span class="op">:</span> <span class="nam">storage</span><span class="op">.</span><span class="nam">password</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="str">'webdav_root'</span><span class="op">:</span> <span class="str">'/remote.php/dav/files/'</span> <span class="op">+</span> <span class="nam">storage</span><span class="op">.</span><span class="nam">username</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="key">if</span> <span class="nam">storage</span><span class="op">.</span><span class="nam">path</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="nam">options</span><span class="op">[</span><span class="str">'webdav_root'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">storage</span><span class="op">.</span><span class="nam">path</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="key">return</span> <span class="nam">wc</span><span class="op">.</span><span class="nam">Client</span><span class="op">(</span><span class="nam">options</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_all</span><span class="op">(</span><span class="nam">monitor</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="nam">client</span> <span class="op">=</span> <span class="nam">Nextcloud</span><span class="op">.</span><span class="nam">get_client</span><span class="op">(</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">storage</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="key">if</span> <span class="nam">DEBUG</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="nam">print</span><span class="op">(</span><span class="str">f'TANDOOR_PROVIDER_DEBUG checking path {monitor.path} with client {client}'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">files</span> <span class="op">=</span> <span class="nam">client</span><span class="op">.</span><span class="nam">list</span><span class="op">(</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">path</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="key">if</span> <span class="nam">DEBUG</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="nam">print</span><span class="op">(</span><span class="str">f'TANDOOR_PROVIDER_DEBUG file list {files}'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="nam">import_count</span> <span class="op">=</span> <span class="num">0</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="key">for</span> <span class="nam">file</span> <span class="key">in</span> <span class="nam">files</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="key">if</span> <span class="nam">DEBUG</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">print</span><span class="op">(</span><span class="str">f'TANDOOR_PROVIDER_DEBUG importing file {file}'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="nam">path</span> <span class="op">=</span> <span class="nam">monitor</span><span class="op">.</span><span class="nam">path</span> <span class="op">+</span> <span class="str">'/'</span> <span class="op">+</span> <span class="nam">file</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">file_path__iexact</span><span class="op">=</span><span class="nam">path</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span><span class="op">.</span><span class="nam">exists</span><span class="op">(</span><span class="op">)</span> <span class="key">and</span> <span class="key">not</span> <span class="nam">RecipeImport</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">file_path</span><span class="op">=</span><span class="nam">path</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span><span class="op">.</span><span class="nam">exists</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="nam">name</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">splitext</span><span class="op">(</span><span class="nam">file</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">new_recipe</span> <span class="op">=</span> <span class="nam">RecipeImport</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">name</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="nam">file_path</span><span class="op">=</span><span class="nam">path</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="nam">storage</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">storage</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="nam">space</span><span class="op">=</span><span class="nam">monitor</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="nam">new_recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="nam">import_count</span> <span class="op">+=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="nam">log_entry</span> <span class="op">=</span> <span class="nam">SyncLog</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="nam">status</span><span class="op">=</span><span class="str">'SUCCESS'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="nam">msg</span><span class="op">=</span><span class="str">'Imported '</span> <span class="op">+</span> <span class="nam">str</span><span class="op">(</span><span class="nam">import_count</span><span class="op">)</span> <span class="op">+</span> <span class="str">' recipes'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="nam">sync</span><span class="op">=</span><span class="nam">monitor</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="nam">log_entry</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="nam">monitor</span><span class="op">.</span><span class="nam">last_checked</span> <span class="op">=</span> <span class="nam">datetime</span><span class="op">.</span><span class="nam">now</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">monitor</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="key">return</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="key">def</span> <span class="nam">create_share_link</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">url</span> <span class="op">+</span> <span class="str">'/ocs/v2.php/apps/files_sharing/api/v1/shares?format=json'</span> <span class="com"># noqa: E501</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="nam">headers</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="str">"OCS-APIRequest"</span><span class="op">:</span> <span class="str">"true"</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> <span class="str">"Content-Type"</span><span class="op">:</span> <span class="str">"application/x-www-form-urlencoded"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="nam">data</span> <span class="op">=</span> <span class="op">{</span><span class="str">'path'</span><span class="op">:</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">,</span> <span class="str">'shareType'</span><span class="op">:</span> <span class="num">3</span><span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> <span class="nam">r</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">post</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">headers</span><span class="op">=</span><span class="nam">headers</span><span class="op">,</span> <span class="nam">auth</span><span class="op">=</span><span class="nam">HTTPBasicAuth</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">username</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">password</span><span class="op">)</span><span class="op">,</span> <span class="nam">data</span><span class="op">=</span><span class="nam">data</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="nam">response_json</span> <span class="op">=</span> <span class="nam">r</span><span class="op">.</span><span class="nam">json</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> <span class="key">return</span> <span class="nam">response_json</span><span class="op">[</span><span class="str">'ocs'</span><span class="op">]</span><span class="op">[</span><span class="str">'data'</span><span class="op">]</span><span class="op">[</span><span class="str">'url'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_share_link</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">url</span> <span class="op">+</span> <span class="str">'/ocs/v2.php/apps/files_sharing/api/v1/shares?format=json&path='</span> <span class="op">+</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span> <span class="com"># noqa: E501</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="nam">headers</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> <span class="str">"OCS-APIRequest"</span><span class="op">:</span> <span class="str">"true"</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="str">"Content-Type"</span><span class="op">:</span> <span class="str">"application/json"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> <span class="key">if</span> <span class="nam">validators</span><span class="op">.</span><span class="nam">url</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">public</span><span class="op">=</span><span class="key">True</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> <span class="nam">r</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"> <span class="nam">url</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"> <span class="nam">headers</span><span class="op">=</span><span class="nam">headers</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t100" href="#t100">100</a></span><span class="t"> <span class="nam">auth</span><span class="op">=</span><span class="nam">HTTPBasicAuth</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t101" href="#t101">101</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">username</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">.</span><span class="nam">password</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t102" href="#t102">102</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t103" href="#t103">103</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t104" href="#t104">104</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t105" href="#t105">105</a></span><span class="t"> <span class="nam">response_json</span> <span class="op">=</span> <span class="nam">r</span><span class="op">.</span><span class="nam">json</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t106" href="#t106">106</a></span><span class="t"> <span class="key">for</span> <span class="nam">element</span> <span class="key">in</span> <span class="nam">response_json</span><span class="op">[</span><span class="str">'ocs'</span><span class="op">]</span><span class="op">[</span><span class="str">'data'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t107" href="#t107">107</a></span><span class="t"> <span class="key">if</span> <span class="nam">element</span><span class="op">[</span><span class="str">'share_type'</span><span class="op">]</span> <span class="op">==</span> <span class="str">'3'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t108" href="#t108">108</a></span><span class="t"> <span class="key">return</span> <span class="nam">element</span><span class="op">[</span><span class="str">'url'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t109" href="#t109">109</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t110" href="#t110">110</a></span><span class="t"> <span class="key">return</span> <span class="nam">Nextcloud</span><span class="op">.</span><span class="nam">create_share_link</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t111" href="#t111">111</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t112" href="#t112">112</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t113" href="#t113">113</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t114" href="#t114">114</a></span><span class="t"> <span class="nam">client</span> <span class="op">=</span> <span class="nam">Nextcloud</span><span class="op">.</span><span class="nam">get_client</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t115" href="#t115">115</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t116" href="#t116">116</a></span><span class="t"> <span class="nam">tmp_file_path</span> <span class="op">=</span> <span class="nam">tempfile</span><span class="op">.</span><span class="nam">gettempdir</span><span class="op">(</span><span class="op">)</span> <span class="op">+</span> <span class="str">'/'</span> <span class="op">+</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">name</span> <span class="op">+</span> <span class="str">'.pdf'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t117" href="#t117">117</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t118" href="#t118">118</a></span><span class="t"> <span class="nam">client</span><span class="op">.</span><span class="nam">download_file</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t119" href="#t119">119</a></span><span class="t"> <span class="nam">remote_path</span><span class="op">=</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t120" href="#t120">120</a></span><span class="t"> <span class="nam">local_path</span><span class="op">=</span><span class="nam">tmp_file_path</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t121" href="#t121">121</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t122" href="#t122">122</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t123" href="#t123">123</a></span><span class="t"> <span class="nam">file</span> <span class="op">=</span> <span class="nam">io</span><span class="op">.</span><span class="nam">BytesIO</span><span class="op">(</span><span class="nam">open</span><span class="op">(</span><span class="nam">tmp_file_path</span><span class="op">,</span> <span class="str">'rb'</span><span class="op">)</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t124" href="#t124">124</a></span><span class="t"> <span class="nam">os</span><span class="op">.</span><span class="nam">remove</span><span class="op">(</span><span class="nam">tmp_file_path</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t125" href="#t125">125</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t126" href="#t126">126</a></span><span class="t"> <span class="key">return</span> <span class="nam">file</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t127" href="#t127">127</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t128" href="#t128">128</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t129" href="#t129">129</a></span><span class="t"> <span class="key">def</span> <span class="nam">rename_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">new_name</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t130" href="#t130">130</a></span><span class="t"> <span class="nam">client</span> <span class="op">=</span> <span class="nam">Nextcloud</span><span class="op">.</span><span class="nam">get_client</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t131" href="#t131">131</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t132" href="#t132">132</a></span><span class="t"> <span class="nam">client</span><span class="op">.</span><span class="nam">move</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t133" href="#t133">133</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t134" href="#t134">134</a></span><span class="t"> <span class="str">"%s/%s%s"</span> <span class="op">%</span> <span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t135" href="#t135">135</a></span><span class="t"> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">dirname</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t136" href="#t136">136</a></span><span class="t"> <span class="nam">new_name</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t137" href="#t137">137</a></span><span class="t"> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">splitext</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">)</span><span class="op">[</span><span class="num">1</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t138" href="#t138">138</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t139" href="#t139">139</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t140" href="#t140">140</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t141" href="#t141">141</a></span><span class="t"> <span class="key">return</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t142" href="#t142">142</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t143" href="#t143">143</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t144" href="#t144">144</a></span><span class="t"> <span class="key">def</span> <span class="nam">delete_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t145" href="#t145">145</a></span><span class="t"> <span class="nam">client</span> <span class="op">=</span> <span class="nam">Nextcloud</span><span class="op">.</span><span class="nam">get_client</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">storage</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t146" href="#t146">146</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t147" href="#t147">147</a></span><span class="t"> <span class="nam">client</span><span class="op">.</span><span class="nam">clean</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">file_path</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t148" href="#t148">148</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t149" href="#t149">149</a></span><span class="t"> <span class="key">return</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_0b5495cf37ee6c4f_local_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_0b5495cf37ee6c4f_provider_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,121 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/provider/provider.py: 68%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/provider/provider.py</b>:
|
||||
<span class="pc_cov">68%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">19 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">13<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">6<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_0b5495cf37ee6c4f_nextcloud_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_a167ab5b5108d61e_schemas_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">class</span> <span class="nam">Provider</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_all</span><span class="op">(</span><span class="nam">monitor</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"> <span class="key">raise</span> <span class="nam">Exception</span><span class="op">(</span><span class="str">'Method not implemented in storage provider'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"> <span class="key">def</span> <span class="nam">create_share_link</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"> <span class="key">raise</span> <span class="nam">Exception</span><span class="op">(</span><span class="str">'Method not implemented in storage provider'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_share_link</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> <span class="key">raise</span> <span class="nam">Exception</span><span class="op">(</span><span class="str">'Method not implemented in storage provider'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="key">raise</span> <span class="nam">Exception</span><span class="op">(</span><span class="str">'Method not implemented in storage provider'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="key">def</span> <span class="nam">rename_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">new_name</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">raise</span> <span class="nam">Exception</span><span class="op">(</span><span class="str">'Method not implemented in storage provider'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="key">def</span> <span class="nam">delete_file</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="key">raise</span> <span class="nam">Exception</span><span class="op">(</span><span class="str">'Method not implemented in storage provider'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_0b5495cf37ee6c4f_nextcloud_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_a167ab5b5108d61e_schemas_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,308 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/templatetags/custom_tags.py: 73%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/templatetags/custom_tags.py</b>:
|
||||
<span class="pc_cov">73%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">124 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">91<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">33<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_a167ab5b5108d61e_tables_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_1d409d097a8b76e7_theming_tags_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">re</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">from</span> <span class="nam">gettext</span> <span class="key">import</span> <span class="nam">gettext</span> <span class="key">as</span> <span class="nam">_</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">import</span> <span class="nam">bleach</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">import</span> <span class="nam">markdown</span> <span class="key">as</span> <span class="nam">md</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span> <span class="key">import</span> <span class="nam">template</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">db</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Avg</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">templatetags</span><span class="op">.</span><span class="nam">static</span> <span class="key">import</span> <span class="nam">static</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">urls</span> <span class="key">import</span> <span class="nam">NoReverseMatch</span><span class="op">,</span> <span class="nam">reverse</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="nam">django_scopes</span> <span class="key">import</span> <span class="nam">ScopeError</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"><span class="key">from</span> <span class="nam">markdown</span><span class="op">.</span><span class="nam">extensions</span><span class="op">.</span><span class="nam">tables</span> <span class="key">import</span> <span class="nam">TableExtension</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"><span class="key">from</span> <span class="nam">rest_framework</span><span class="op">.</span><span class="nam">authtoken</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Token</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">mdx_attributes</span> <span class="key">import</span> <span class="nam">MarkdownFormatExtension</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">mdx_urlize</span> <span class="key">import</span> <span class="nam">UrlizeExtension</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">get_model_name</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"><span class="key">from</span> <span class="nam">recipes</span> <span class="key">import</span> <span class="nam">settings</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"><span class="key">from</span> <span class="nam">recipes</span><span class="op">.</span><span class="nam">settings</span> <span class="key">import</span> <span class="nam">PLUGINS</span><span class="op">,</span> <span class="nam">STATIC_URL</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"><span class="nam">register</span> <span class="op">=</span> <span class="nam">template</span><span class="op">.</span><span class="nam">Library</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"><span class="key">def</span> <span class="nam">get_class_name</span><span class="op">(</span><span class="nam">value</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="key">return</span> <span class="nam">value</span><span class="op">.</span><span class="nam">__class__</span><span class="op">.</span><span class="nam">__name__</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"><span class="key">def</span> <span class="nam">get_class</span><span class="op">(</span><span class="nam">value</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="key">return</span> <span class="nam">value</span><span class="op">.</span><span class="nam">__class__</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"><span class="key">def</span> <span class="nam">class_name</span><span class="op">(</span><span class="nam">value</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="key">return</span> <span class="nam">value</span><span class="op">.</span><span class="nam">__class__</span><span class="op">.</span><span class="nam">__name__</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"><span class="key">def</span> <span class="nam">delete_url</span><span class="op">(</span><span class="nam">model</span><span class="op">,</span> <span class="nam">pk</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="key">return</span> <span class="nam">reverse</span><span class="op">(</span><span class="str">f'delete_{get_model_name(model)}'</span><span class="op">,</span> <span class="nam">args</span><span class="op">=</span><span class="op">[</span><span class="nam">pk</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="key">except</span> <span class="nam">NoReverseMatch</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="key">return</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"><span class="key">def</span> <span class="nam">markdown</span><span class="op">(</span><span class="nam">value</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="nam">tags</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="str">"h1"</span><span class="op">,</span> <span class="str">"h2"</span><span class="op">,</span> <span class="str">"h3"</span><span class="op">,</span> <span class="str">"h4"</span><span class="op">,</span> <span class="str">"h5"</span><span class="op">,</span> <span class="str">"h6"</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="str">"b"</span><span class="op">,</span> <span class="str">"i"</span><span class="op">,</span> <span class="str">"strong"</span><span class="op">,</span> <span class="str">"em"</span><span class="op">,</span> <span class="str">"tt"</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="str">"p"</span><span class="op">,</span> <span class="str">"br"</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="str">"span"</span><span class="op">,</span> <span class="str">"div"</span><span class="op">,</span> <span class="str">"blockquote"</span><span class="op">,</span> <span class="str">"code"</span><span class="op">,</span> <span class="str">"pre"</span><span class="op">,</span> <span class="str">"hr"</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="str">"ul"</span><span class="op">,</span> <span class="str">"ol"</span><span class="op">,</span> <span class="str">"li"</span><span class="op">,</span> <span class="str">"dd"</span><span class="op">,</span> <span class="str">"dt"</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="str">"img"</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="str">"a"</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="str">"sub"</span><span class="op">,</span> <span class="str">"sup"</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="str">'pre'</span><span class="op">,</span> <span class="str">'table'</span><span class="op">,</span> <span class="str">'td'</span><span class="op">,</span> <span class="str">'tr'</span><span class="op">,</span> <span class="str">'th'</span><span class="op">,</span> <span class="str">'tbody'</span><span class="op">,</span> <span class="str">'style'</span><span class="op">,</span> <span class="str">'thead'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="nam">parsed_md</span> <span class="op">=</span> <span class="nam">md</span><span class="op">.</span><span class="nam">markdown</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="nam">value</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="nam">extensions</span><span class="op">=</span><span class="op">[</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="str">'markdown.extensions.fenced_code'</span><span class="op">,</span> <span class="nam">TableExtension</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="nam">UrlizeExtension</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">MarkdownFormatExtension</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">markdown_attrs</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="str">"*"</span><span class="op">:</span> <span class="op">[</span><span class="str">"id"</span><span class="op">,</span> <span class="str">"class"</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="str">"img"</span><span class="op">:</span> <span class="op">[</span><span class="str">"src"</span><span class="op">,</span> <span class="str">"alt"</span><span class="op">,</span> <span class="str">"title"</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="str">"a"</span><span class="op">:</span> <span class="op">[</span><span class="str">"href"</span><span class="op">,</span> <span class="str">"alt"</span><span class="op">,</span> <span class="str">"title"</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">parsed_md</span> <span class="op">=</span> <span class="nam">parsed_md</span><span class="op">[</span><span class="num">3</span><span class="op">:</span><span class="op">]</span> <span class="com"># remove outer paragraph</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="nam">parsed_md</span> <span class="op">=</span> <span class="nam">parsed_md</span><span class="op">[</span><span class="op">:</span><span class="nam">len</span><span class="op">(</span><span class="nam">parsed_md</span><span class="op">)</span> <span class="op">-</span> <span class="num">4</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="key">return</span> <span class="nam">bleach</span><span class="op">.</span><span class="nam">clean</span><span class="op">(</span><span class="nam">parsed_md</span><span class="op">,</span> <span class="nam">tags</span><span class="op">,</span> <span class="nam">markdown_attrs</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"><span class="key">def</span> <span class="nam">recipe_rating</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">user</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">user</span><span class="op">.</span><span class="nam">is_authenticated</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> <span class="key">return</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> <span class="nam">rating</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">cooklog_set</span> <span class="xx">\</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">created_by</span><span class="op">=</span><span class="nam">user</span><span class="op">,</span> <span class="nam">rating__gt</span><span class="op">=</span><span class="num">0</span><span class="op">)</span> <span class="xx">\</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="op">.</span><span class="nam">aggregate</span><span class="op">(</span><span class="nam">Avg</span><span class="op">(</span><span class="str">'rating'</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> <span class="key">if</span> <span class="nam">rating</span><span class="op">[</span><span class="str">'rating__avg'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> <span class="nam">rating_stars</span> <span class="op">=</span> <span class="str">'<span style="display: inline-block;">'</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="key">for</span> <span class="nam">i</span> <span class="key">in</span> <span class="nam">range</span><span class="op">(</span><span class="nam">int</span><span class="op">(</span><span class="nam">rating</span><span class="op">[</span><span class="str">'rating__avg'</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="nam">rating_stars</span> <span class="op">=</span> <span class="nam">rating_stars</span> <span class="op">+</span> <span class="str">'<i class="fas fa-star fa-xs"></i>'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> <span class="key">if</span> <span class="nam">rating</span><span class="op">[</span><span class="str">'rating__avg'</span><span class="op">]</span> <span class="op">%</span> <span class="num">1</span> <span class="op">>=</span> <span class="num">0.5</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="nam">rating_stars</span> <span class="op">=</span> <span class="nam">rating_stars</span> <span class="op">+</span> <span class="str">'<i class="fas fa-star-half-alt fa-xs"></i>'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="nam">rating_stars</span> <span class="op">+=</span> <span class="str">'</span>'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> <span class="key">return</span> <span class="nam">rating_stars</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> <span class="key">return</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t100" href="#t100">100</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t101" href="#t101">101</a></span><span class="t"><span class="key">def</span> <span class="nam">recipe_last</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">user</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t102" href="#t102">102</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">user</span><span class="op">.</span><span class="nam">is_authenticated</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t103" href="#t103">103</a></span><span class="t"> <span class="key">return</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t104" href="#t104">104</a></span><span class="t"> <span class="nam">last</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">cooklog_set</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">created_by</span><span class="op">=</span><span class="nam">user</span><span class="op">)</span><span class="op">.</span><span class="nam">last</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t105" href="#t105">105</a></span><span class="t"> <span class="key">if</span> <span class="nam">last</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t106" href="#t106">106</a></span><span class="t"> <span class="key">return</span> <span class="nam">last</span><span class="op">.</span><span class="nam">created_at</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t107" href="#t107">107</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t108" href="#t108">108</a></span><span class="t"> <span class="key">return</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t109" href="#t109">109</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t110" href="#t110">110</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t111" href="#t111">111</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t112" href="#t112">112</a></span><span class="t"><span class="key">def</span> <span class="nam">page_help</span><span class="op">(</span><span class="nam">page_name</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t113" href="#t113">113</a></span><span class="t"> <span class="nam">help_pages</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t114" href="#t114">114</a></span><span class="t"> <span class="str">'edit_storage'</span><span class="op">:</span> <span class="str">'https://docs.tandoor.dev/features/external_recipes/'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t115" href="#t115">115</a></span><span class="t"> <span class="str">'view_shopping'</span><span class="op">:</span> <span class="str">'https://docs.tandoor.dev/features/shopping/'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t116" href="#t116">116</a></span><span class="t"> <span class="str">'view_import'</span><span class="op">:</span> <span class="str">'https://docs.tandoor.dev/features/import_export/'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t117" href="#t117">117</a></span><span class="t"> <span class="str">'view_export'</span><span class="op">:</span> <span class="str">'https://docs.tandoor.dev/features/import_export/'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t118" href="#t118">118</a></span><span class="t"> <span class="str">'list_automation'</span><span class="op">:</span> <span class="str">'https://docs.tandoor.dev/features/automation/'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t119" href="#t119">119</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t120" href="#t120">120</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t121" href="#t121">121</a></span><span class="t"> <span class="nam">link</span> <span class="op">=</span> <span class="nam">help_pages</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="nam">page_name</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t122" href="#t122">122</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t123" href="#t123">123</a></span><span class="t"> <span class="key">if</span> <span class="nam">link</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t124" href="#t124">124</a></span><span class="t"> <span class="key">return</span> <span class="str">f'<li class="nav-item"><a class="nav-link" target="_blank" rel="nofollow noreferrer" href="{link}"><i class="far fa-question-circle"></i>&zwnj;<span class="d-lg-none"> {_("Help")}</span></a></li>'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t125" href="#t125">125</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t126" href="#t126">126</a></span><span class="t"> <span class="key">return</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t127" href="#t127">127</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t128" href="#t128">128</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t129" href="#t129">129</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t130" href="#t130">130</a></span><span class="t"><span class="key">def</span> <span class="nam">message_of_the_day</span><span class="op">(</span><span class="nam">request</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t131" href="#t131">131</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t132" href="#t132">132</a></span><span class="t"> <span class="key">if</span> <span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">.</span><span class="nam">message</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t133" href="#t133">133</a></span><span class="t"> <span class="key">return</span> <span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">.</span><span class="nam">message</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t134" href="#t134">134</a></span><span class="t"> <span class="key">except</span> <span class="op">(</span><span class="nam">AttributeError</span><span class="op">,</span> <span class="nam">KeyError</span><span class="op">,</span> <span class="nam">ValueError</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t135" href="#t135">135</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t136" href="#t136">136</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t137" href="#t137">137</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t138" href="#t138">138</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t139" href="#t139">139</a></span><span class="t"><span class="key">def</span> <span class="nam">is_debug</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t140" href="#t140">140</a></span><span class="t"> <span class="key">return</span> <span class="nam">settings</span><span class="op">.</span><span class="nam">DEBUG</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t141" href="#t141">141</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t142" href="#t142">142</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t143" href="#t143">143</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t144" href="#t144">144</a></span><span class="t"><span class="key">def</span> <span class="nam">markdown_link</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t145" href="#t145">145</a></span><span class="t"> <span class="key">return</span> <span class="str">f"{_('You can use markdown to format this field. See the ')}<a target='_blank' href='{reverse('docs_markdown')}'>{_('docs here')}</a>"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t146" href="#t146">146</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t147" href="#t147">147</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t148" href="#t148">148</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t149" href="#t149">149</a></span><span class="t"><span class="key">def</span> <span class="nam">plugin_dropdown_nav_templates</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t150" href="#t150">150</a></span><span class="t"> <span class="nam">templates</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t151" href="#t151">151</a></span><span class="t"> <span class="key">for</span> <span class="nam">p</span> <span class="key">in</span> <span class="nam">PLUGINS</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t152" href="#t152">152</a></span><span class="t"> <span class="key">if</span> <span class="nam">p</span><span class="op">[</span><span class="str">'nav_dropdown'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t153" href="#t153">153</a></span><span class="t"> <span class="nam">templates</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">p</span><span class="op">[</span><span class="str">'nav_dropdown'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t154" href="#t154">154</a></span><span class="t"> <span class="key">return</span> <span class="nam">templates</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t155" href="#t155">155</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t156" href="#t156">156</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t157" href="#t157">157</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t158" href="#t158">158</a></span><span class="t"><span class="key">def</span> <span class="nam">plugin_main_nav_templates</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t159" href="#t159">159</a></span><span class="t"> <span class="nam">templates</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t160" href="#t160">160</a></span><span class="t"> <span class="key">for</span> <span class="nam">p</span> <span class="key">in</span> <span class="nam">PLUGINS</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t161" href="#t161">161</a></span><span class="t"> <span class="key">if</span> <span class="nam">p</span><span class="op">[</span><span class="str">'nav_main'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t162" href="#t162">162</a></span><span class="t"> <span class="nam">templates</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">p</span><span class="op">[</span><span class="str">'nav_main'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t163" href="#t163">163</a></span><span class="t"> <span class="key">return</span> <span class="nam">templates</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t164" href="#t164">164</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t165" href="#t165">165</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t166" href="#t166">166</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t167" href="#t167">167</a></span><span class="t"><span class="key">def</span> <span class="nam">bookmarklet</span><span class="op">(</span><span class="nam">request</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t168" href="#t168">168</a></span><span class="t"> <span class="key">if</span> <span class="nam">request</span><span class="op">.</span><span class="nam">is_secure</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t169" href="#t169">169</a></span><span class="t"> <span class="nam">protocol</span> <span class="op">=</span> <span class="str">"https://"</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t170" href="#t170">170</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t171" href="#t171">171</a></span><span class="t"> <span class="nam">protocol</span> <span class="op">=</span> <span class="str">"http://"</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t172" href="#t172">172</a></span><span class="t"> <span class="nam">server</span> <span class="op">=</span> <span class="nam">protocol</span> <span class="op">+</span> <span class="nam">request</span><span class="op">.</span><span class="nam">get_host</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t173" href="#t173">173</a></span><span class="t"> <span class="nam">prefix</span> <span class="op">=</span> <span class="nam">settings</span><span class="op">.</span><span class="nam">JS_REVERSE_SCRIPT_PREFIX</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t174" href="#t174">174</a></span><span class="t"> <span class="com"># TODO is it safe to store the token in clear text in a bookmark?</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t175" href="#t175">175</a></span><span class="t"> <span class="key">if</span> <span class="op">(</span><span class="nam">api_token</span> <span class="op">:=</span> <span class="nam">Token</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">user</span><span class="op">=</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">)</span><span class="op">.</span><span class="nam">first</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="key">is</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t176" href="#t176">176</a></span><span class="t"> <span class="nam">api_token</span> <span class="op">=</span> <span class="nam">Token</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">user</span><span class="op">=</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t177" href="#t177">177</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t178" href="#t178">178</a></span><span class="t"> <span class="nam">bookmark</span> <span class="op">=</span> <span class="str">"<a href='javascript: \</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t179" href="#t179">179</a></span><span class="t"><span class="str"> (function(){ \</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t180" href="#t180">180</a></span><span class="t"><span class="str"> if(window.bookmarkletTandoor!==undefined){ \</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t181" href="#t181">181</a></span><span class="t"><span class="str"> bookmarkletTandoor(); \</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t182" href="#t182">182</a></span><span class="t"><span class="str"> } else { \</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t183" href="#t183">183</a></span><span class="t"><span class="str"> localStorage.setItem('importURL', '"</span> <span class="op">+</span> <span class="nam">server</span> <span class="op">+</span> <span class="nam">reverse</span><span class="op">(</span><span class="str">'api:bookmarkletimport-list'</span><span class="op">)</span> <span class="op">+</span> <span class="str">"'); \</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t184" href="#t184">184</a></span><span class="t"><span class="str"> localStorage.setItem('redirectURL', '"</span> <span class="op">+</span> <span class="nam">server</span> <span class="op">+</span> <span class="nam">reverse</span><span class="op">(</span><span class="str">'data_import_url'</span><span class="op">)</span> <span class="op">+</span> <span class="str">"'); \</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t185" href="#t185">185</a></span><span class="t"><span class="str"> localStorage.setItem('token', '"</span> <span class="op">+</span> <span class="nam">api_token</span><span class="op">.</span><span class="nam">__str__</span><span class="op">(</span><span class="op">)</span> <span class="op">+</span> <span class="str">"'); \</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t186" href="#t186">186</a></span><span class="t"><span class="str"> document.body.appendChild(document.createElement(\'script\')).src=\'"</span> <span class="xx">\</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t187" href="#t187">187</a></span><span class="t"> <span class="op">+</span> <span class="nam">server</span> <span class="op">+</span> <span class="nam">prefix</span> <span class="op">+</span> <span class="nam">static</span><span class="op">(</span><span class="str">'js/bookmarklet_v3.js'</span><span class="op">)</span> <span class="op">+</span> <span class="str">"? \</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t188" href="#t188">188</a></span><span class="t"><span class="str"> r=\'+Math.floor(Math.random()*999999999);}})();'>Test</a>"</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t189" href="#t189">189</a></span><span class="t"> <span class="key">return</span> <span class="nam">re</span><span class="op">.</span><span class="nam">sub</span><span class="op">(</span><span class="str">r"[\n\t]*"</span><span class="op">,</span> <span class="str">""</span><span class="op">,</span> <span class="nam">bookmark</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t190" href="#t190">190</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t191" href="#t191">191</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t192" href="#t192">192</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t193" href="#t193">193</a></span><span class="t"><span class="key">def</span> <span class="nam">base_path</span><span class="op">(</span><span class="nam">request</span><span class="op">,</span> <span class="nam">path_type</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t194" href="#t194">194</a></span><span class="t"> <span class="key">if</span> <span class="nam">path_type</span> <span class="op">==</span> <span class="str">'base'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t195" href="#t195">195</a></span><span class="t"> <span class="key">return</span> <span class="nam">request</span><span class="op">.</span><span class="nam">_current_scheme_host</span> <span class="op">+</span> <span class="nam">request</span><span class="op">.</span><span class="nam">META</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'HTTP_X_SCRIPT_NAME'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t196" href="#t196">196</a></span><span class="t"> <span class="key">elif</span> <span class="nam">path_type</span> <span class="op">==</span> <span class="str">'script'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t197" href="#t197">197</a></span><span class="t"> <span class="key">return</span> <span class="nam">request</span><span class="op">.</span><span class="nam">META</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'HTTP_X_SCRIPT_NAME'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t198" href="#t198">198</a></span><span class="t"> <span class="key">elif</span> <span class="nam">path_type</span> <span class="op">==</span> <span class="str">'static_base'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t199" href="#t199">199</a></span><span class="t"> <span class="key">return</span> <span class="nam">STATIC_URL</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t200" href="#t200">200</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t201" href="#t201">201</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t202" href="#t202">202</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t203" href="#t203">203</a></span><span class="t"><span class="key">def</span> <span class="nam">user_prefs</span><span class="op">(</span><span class="nam">request</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t204" href="#t204">204</a></span><span class="t"> <span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">serializer</span> <span class="key">import</span> <span class="xx">\</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t205" href="#t205">205</a></span><span class="t"> <span class="nam">UserPreferenceSerializer</span> <span class="com"># putting it with imports caused circular execution</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t206" href="#t206">206</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t207" href="#t207">207</a></span><span class="t"> <span class="key">return</span> <span class="nam">UserPreferenceSerializer</span><span class="op">(</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">,</span> <span class="nam">context</span><span class="op">=</span><span class="op">{</span><span class="str">'request'</span><span class="op">:</span> <span class="nam">request</span><span class="op">}</span><span class="op">)</span><span class="op">.</span><span class="nam">data</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t208" href="#t208">208</a></span><span class="t"> <span class="key">except</span> <span class="nam">AttributeError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t209" href="#t209">209</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t210" href="#t210">210</a></span><span class="t"> <span class="key">except</span> <span class="nam">ScopeError</span><span class="op">:</span> <span class="com"># there are pages without an active space that still need to load but don't require prefs</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t211" href="#t211">211</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_a167ab5b5108d61e_tables_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_1d409d097a8b76e7_theming_tags_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,150 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/templatetags/theming_tags.py: 87%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/templatetags/theming_tags.py</b>:
|
||||
<span class="pc_cov">87%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">30 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">26<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">4<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_1d409d097a8b76e7_custom_tags_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_a167ab5b5108d61e_version_info_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span> <span class="key">import</span> <span class="nam">template</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">templatetags</span><span class="op">.</span><span class="nam">static</span> <span class="key">import</span> <span class="nam">static</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">UserPreference</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">recipes</span><span class="op">.</span><span class="nam">settings</span> <span class="key">import</span> <span class="nam">STICKY_NAV_PREF_DEFAULT</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="nam">register</span> <span class="op">=</span> <span class="nam">template</span><span class="op">.</span><span class="nam">Library</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"><span class="key">def</span> <span class="nam">theme_url</span><span class="op">(</span><span class="nam">request</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">is_authenticated</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> <span class="key">return</span> <span class="nam">static</span><span class="op">(</span><span class="str">'themes/tandoor.min.css'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="nam">themes</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="nam">UserPreference</span><span class="op">.</span><span class="nam">BOOTSTRAP</span><span class="op">:</span> <span class="str">'themes/bootstrap.min.css'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="nam">UserPreference</span><span class="op">.</span><span class="nam">FLATLY</span><span class="op">:</span> <span class="str">'themes/flatly.min.css'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="nam">UserPreference</span><span class="op">.</span><span class="nam">DARKLY</span><span class="op">:</span> <span class="str">'themes/darkly.min.css'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="nam">UserPreference</span><span class="op">.</span><span class="nam">SUPERHERO</span><span class="op">:</span> <span class="str">'themes/superhero.min.css'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="nam">UserPreference</span><span class="op">.</span><span class="nam">TANDOOR</span><span class="op">:</span> <span class="str">'themes/tandoor.min.css'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="nam">UserPreference</span><span class="op">.</span><span class="nam">TANDOOR_DARK</span><span class="op">:</span> <span class="str">'themes/tandoor_dark.min.css'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="key">if</span> <span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">theme</span> <span class="key">in</span> <span class="nam">themes</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="key">return</span> <span class="nam">static</span><span class="op">(</span><span class="nam">themes</span><span class="op">[</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">theme</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="key">raise</span> <span class="nam">AttributeError</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"><span class="key">def</span> <span class="nam">logo_url</span><span class="op">(</span><span class="nam">request</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="key">if</span> <span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">is_authenticated</span> <span class="key">and</span> <span class="nam">getattr</span><span class="op">(</span><span class="nam">getattr</span><span class="op">(</span><span class="nam">request</span><span class="op">,</span> <span class="str">"space"</span><span class="op">,</span> <span class="op">{</span><span class="op">}</span><span class="op">)</span><span class="op">,</span> <span class="str">'image'</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="key">return</span> <span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">.</span><span class="nam">image</span><span class="op">.</span><span class="nam">file</span><span class="op">.</span><span class="nam">url</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="key">return</span> <span class="nam">static</span><span class="op">(</span><span class="str">'assets/brand_logo.png'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"><span class="key">def</span> <span class="nam">nav_color</span><span class="op">(</span><span class="nam">request</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">is_authenticated</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="key">return</span> <span class="str">'navbar-light bg-primary'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="key">if</span> <span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">nav_color</span><span class="op">.</span><span class="nam">lower</span><span class="op">(</span><span class="op">)</span> <span class="key">in</span> <span class="op">[</span><span class="str">'light'</span><span class="op">,</span> <span class="str">'warning'</span><span class="op">,</span> <span class="str">'info'</span><span class="op">,</span> <span class="str">'success'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="key">return</span> <span class="str">f'navbar-light bg-{request.user.userpreference.nav_color.lower()}'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="key">return</span> <span class="str">f'navbar-dark bg-{request.user.userpreference.nav_color.lower()}'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"><span class="op">@</span><span class="nam">register</span><span class="op">.</span><span class="nam">simple_tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"><span class="key">def</span> <span class="nam">sticky_nav</span><span class="op">(</span><span class="nam">request</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="key">if</span> <span class="op">(</span><span class="key">not</span> <span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">is_authenticated</span> <span class="key">and</span> <span class="nam">STICKY_NAV_PREF_DEFAULT</span><span class="op">)</span> <span class="key">or</span> <span class="xx">\</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="op">(</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">is_authenticated</span> <span class="key">and</span> <span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">sticky_navbar</span><span class="op">)</span><span class="op">:</span> <span class="com"># noqa: E501</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="key">return</span> <span class="str">'position: sticky; top: 0; left: 0; z-index: 1000;'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="key">return</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_1d409d097a8b76e7_custom_tags_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_a167ab5b5108d61e_version_info_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,156 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/cheftap.py: 20%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/cheftap.py</b>:
|
||||
<span class="pc_cov">20%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">41 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">8<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">33<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_f8cd9a78c43a323f_unit_conversion_helper_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_chowdown_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">re</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">class</span> <span class="nam">ChefTap</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> <span class="nam">print</span><span class="op">(</span><span class="str">"testing"</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> <span class="key">return</span> <span class="nam">re</span><span class="op">.</span><span class="nam">match</span><span class="op">(</span><span class="str">r'^cheftap_export/([A-Za-z\d\s\-_()\[\]\u00C0-\u017F])+.txt$'</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span> <span class="key">or</span> <span class="nam">re</span><span class="op">.</span><span class="nam">match</span><span class="op">(</span><span class="str">r'^([A-Za-z\d\s\-_()\[\]\u00C0-\u017F])+.txt$'</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="nam">source_url</span> <span class="op">=</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="nam">ingredient_mode</span> <span class="op">=</span> <span class="num">0</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="nam">ingredients</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="nam">directions</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="key">for</span> <span class="nam">i</span><span class="op">,</span> <span class="nam">fl</span> <span class="key">in</span> <span class="nam">enumerate</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">readlines</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">start</span><span class="op">=</span><span class="num">0</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="nam">line</span> <span class="op">=</span> <span class="nam">fl</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"utf-8"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="key">if</span> <span class="nam">i</span> <span class="op">==</span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">title</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="key">if</span> <span class="nam">line</span><span class="op">.</span><span class="nam">startswith</span><span class="op">(</span><span class="str">'https:'</span><span class="op">)</span> <span class="key">or</span> <span class="nam">line</span><span class="op">.</span><span class="nam">startswith</span><span class="op">(</span><span class="str">'http:'</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="nam">source_url</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> <span class="key">if</span> <span class="nam">ingredient_mode</span> <span class="op">==</span> <span class="num">1</span> <span class="key">and</span> <span class="nam">len</span><span class="op">(</span><span class="nam">line</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">==</span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="nam">ingredient_mode</span> <span class="op">=</span> <span class="num">2</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="key">if</span> <span class="nam">re</span><span class="op">.</span><span class="nam">match</span><span class="op">(</span><span class="str">r'^([0-9])[^.](.)*$'</span><span class="op">,</span> <span class="nam">line</span><span class="op">)</span> <span class="key">and</span> <span class="nam">ingredient_mode</span> <span class="op"><</span> <span class="num">2</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="nam">ingredient_mode</span> <span class="op">=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="nam">ingredients</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">line</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="nam">directions</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">line</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">title</span><span class="op">,</span> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">instruction</span><span class="op">=</span><span class="str">'\n'</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">directions</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="key">if</span> <span class="nam">source_url</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">+=</span> <span class="str">'\n'</span> <span class="op">+</span> <span class="nam">source_url</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">ingredients</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">food</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_f8cd9a78c43a323f_unit_conversion_helper_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_chowdown_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,219 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/chowdown.py: 12%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/chowdown.py</b>:
|
||||
<span class="pc_cov">12%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">96 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">12<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">84<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_cheftap_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_cookbookapp_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">re</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">from</span> <span class="nam">zipfile</span> <span class="key">import</span> <span class="nam">ZipFile</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">image_processing</span> <span class="key">import</span> <span class="nam">get_filetype</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">recipe_url_import</span> <span class="key">import</span> <span class="nam">parse_servings</span><span class="op">,</span> <span class="nam">parse_servings_text</span><span class="op">,</span> <span class="nam">parse_time</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Keyword</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"><span class="key">class</span> <span class="nam">Chowdown</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="nam">print</span><span class="op">(</span><span class="str">"testing"</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="key">return</span> <span class="nam">re</span><span class="op">.</span><span class="nam">match</span><span class="op">(</span><span class="str">r'^(_)*recipes/([A-Za-z\d\s\-_()\[\]\u00C0-\u017F])+.md$'</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="nam">ingredient_mode</span> <span class="op">=</span> <span class="key">False</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="nam">direction_mode</span> <span class="op">=</span> <span class="key">False</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="nam">description_mode</span> <span class="op">=</span> <span class="key">False</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">description</span> <span class="op">=</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">prep_time</span> <span class="op">=</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="nam">serving</span> <span class="op">=</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="nam">ingredients</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">directions</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> <span class="nam">descriptions</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="key">for</span> <span class="nam">fl</span> <span class="key">in</span> <span class="nam">file</span><span class="op">.</span><span class="nam">readlines</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="nam">line</span> <span class="op">=</span> <span class="nam">fl</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"utf-8"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="key">if</span> <span class="str">'title:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="nam">title</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'title:'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'"'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="key">if</span> <span class="str">'description:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="nam">description</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'description:'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'"'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> <span class="key">if</span> <span class="str">'prep_time:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">prep_time</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'prep_time:'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'"'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="key">if</span> <span class="str">'yield:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="nam">serving</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'yield:'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'"'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">if</span> <span class="str">'image:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="nam">image</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'image:'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="key">if</span> <span class="str">'tags:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="nam">tags</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'tags:'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="key">if</span> <span class="nam">ingredient_mode</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">line</span><span class="op">)</span> <span class="op">></span> <span class="num">2</span> <span class="key">and</span> <span class="str">'directions:'</span> <span class="key">not</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="nam">ingredients</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">line</span><span class="op">[</span><span class="num">2</span><span class="op">:</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="key">if</span> <span class="str">'---'</span> <span class="key">in</span> <span class="nam">line</span> <span class="key">and</span> <span class="nam">direction_mode</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="nam">direction_mode</span> <span class="op">=</span> <span class="key">False</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">description_mode</span> <span class="op">=</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="key">if</span> <span class="nam">direction_mode</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">line</span><span class="op">)</span> <span class="op">></span> <span class="num">2</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="nam">directions</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">line</span><span class="op">[</span><span class="num">2</span><span class="op">:</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="key">if</span> <span class="str">'ingredients:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="nam">ingredient_mode</span> <span class="op">=</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="key">if</span> <span class="str">'directions:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="nam">ingredient_mode</span> <span class="op">=</span> <span class="key">False</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="nam">direction_mode</span> <span class="op">=</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="key">if</span> <span class="nam">description_mode</span> <span class="key">and</span> <span class="nam">len</span><span class="op">(</span><span class="nam">line</span><span class="op">)</span> <span class="op">></span> <span class="num">3</span> <span class="key">and</span> <span class="str">'---'</span> <span class="key">not</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="nam">descriptions</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">line</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">title</span><span class="op">,</span> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="key">if</span> <span class="nam">description</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">description</span> <span class="op">=</span> <span class="nam">description</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="key">for</span> <span class="nam">k</span> <span class="key">in</span> <span class="nam">tags</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">','</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">keyword</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">k</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="nam">ingredients_added</span> <span class="op">=</span> <span class="key">False</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="key">for</span> <span class="nam">direction</span> <span class="key">in</span> <span class="nam">directions</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">direction</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="nam">instruction</span><span class="op">=</span><span class="nam">direction</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="str">''</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> <span class="nam">instruction</span><span class="op">=</span><span class="nam">direction</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">ingredients_added</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> <span class="nam">ingredients_added</span> <span class="op">=</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">ingredients</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">food</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="key">if</span> <span class="nam">serving</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings</span> <span class="op">=</span> <span class="nam">parse_servings</span><span class="op">(</span><span class="nam">serving</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings_text</span> <span class="op">=</span> <span class="str">'servings'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> <span class="key">if</span> <span class="nam">prep_time</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span> <span class="op">=</span> <span class="nam">parse_time</span><span class="op">(</span><span class="nam">prep_time</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t100" href="#t100">100</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t101" href="#t101">101</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">ingredients</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t102" href="#t102">102</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t103" href="#t103">103</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t104" href="#t104">104</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">food</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t105" href="#t105">105</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t106" href="#t106">106</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t107" href="#t107">107</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t108" href="#t108">108</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t109" href="#t109">109</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t110" href="#t110">110</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t111" href="#t111">111</a></span><span class="t"> <span class="key">for</span> <span class="nam">f</span> <span class="key">in</span> <span class="nam">self</span><span class="op">.</span><span class="nam">files</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t112" href="#t112">112</a></span><span class="t"> <span class="key">if</span> <span class="str">'.zip'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t113" href="#t113">113</a></span><span class="t"> <span class="nam">import_zip</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">f</span><span class="op">[</span><span class="str">'file'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t114" href="#t114">114</a></span><span class="t"> <span class="key">for</span> <span class="nam">z</span> <span class="key">in</span> <span class="nam">import_zip</span><span class="op">.</span><span class="nam">filelist</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t115" href="#t115">115</a></span><span class="t"> <span class="key">if</span> <span class="nam">re</span><span class="op">.</span><span class="nam">match</span><span class="op">(</span><span class="str">f'^images/{image}$'</span><span class="op">,</span> <span class="nam">z</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t116" href="#t116">116</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">import_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="nam">z</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span><span class="op">)</span><span class="op">,</span> <span class="nam">filetype</span><span class="op">=</span><span class="nam">get_filetype</span><span class="op">(</span><span class="nam">z</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t117" href="#t117">117</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t118" href="#t118">118</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t119" href="#t119">119</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t120" href="#t120">120</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t121" href="#t121">121</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t122" href="#t122">122</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_cheftap_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_cookbookapp_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,170 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/cookbookapp.py: 24%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/cookbookapp.py</b>:
|
||||
<span class="pc_cov">24%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">49 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">12<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">37<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_chowdown_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_cookmate_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">re</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">import</span> <span class="nam">requests</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">import</span> <span class="nam">validators</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">recipe_url_import</span> <span class="key">import</span> <span class="op">(</span><span class="nam">get_from_scraper</span><span class="op">,</span> <span class="nam">get_images_from_soup</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"> <span class="nam">iso_duration_to_minutes</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">scrapers</span><span class="op">.</span><span class="nam">scrapers</span> <span class="key">import</span> <span class="nam">text_scraper</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"><span class="key">class</span> <span class="nam">CookBookApp</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="key">return</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span><span class="op">.</span><span class="nam">endswith</span><span class="op">(</span><span class="str">'.html'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="nam">recipe_html</span> <span class="op">=</span> <span class="nam">file</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"utf-8"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">scrape</span> <span class="op">=</span> <span class="nam">text_scraper</span><span class="op">(</span><span class="nam">text</span><span class="op">=</span><span class="nam">recipe_html</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">recipe_json</span> <span class="op">=</span> <span class="nam">get_from_scraper</span><span class="op">(</span><span class="nam">scrape</span><span class="op">,</span> <span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="nam">images</span> <span class="op">=</span> <span class="nam">list</span><span class="op">(</span><span class="nam">dict</span><span class="op">.</span><span class="nam">fromkeys</span><span class="op">(</span><span class="nam">get_images_from_soup</span><span class="op">(</span><span class="nam">scrape</span><span class="op">.</span><span class="nam">soup</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings</span> <span class="op">=</span> <span class="nam">re</span><span class="op">.</span><span class="nam">findall</span><span class="op">(</span><span class="str">'([0-9])+'</span><span class="op">,</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'recipeYield'</span><span class="op">]</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span> <span class="op">=</span> <span class="nam">iso_duration_to_minutes</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'prepTime'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">waiting_time</span> <span class="op">=</span> <span class="nam">iso_duration_to_minutes</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'cookTime'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="com"># assuming import files only contain single step</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">instruction</span><span class="op">=</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'steps'</span><span class="op">]</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">[</span><span class="str">'instruction'</span><span class="op">]</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="key">if</span> <span class="str">'nutrition'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">=</span> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">+</span> <span class="str">'\n\n'</span> <span class="op">+</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutrition'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'steps'</span><span class="op">]</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">[</span><span class="str">'ingredients'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">[</span><span class="str">'food'</span><span class="op">]</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="key">if</span> <span class="nam">unit</span> <span class="op">:=</span> <span class="nam">ingredient</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'unit'</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'name'</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'amount'</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'note'</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'original_text'</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">images</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="nam">images</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="key">if</span> <span class="nam">validators</span><span class="op">.</span><span class="nam">url</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">public</span><span class="op">=</span><span class="key">True</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="nam">response</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="nam">url</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">response</span><span class="op">.</span><span class="nam">content</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span> <span class="key">as</span> <span class="nam">e</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="nam">print</span><span class="op">(</span><span class="str">'failed to import image '</span><span class="op">,</span> <span class="nam">str</span><span class="op">(</span><span class="nam">e</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_chowdown_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_cookmate_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,180 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/cookmate.py: 21%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/cookmate.py</b>:
|
||||
<span class="pc_cov">21%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">56 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">12<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">44<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_cookbookapp_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_copymethat_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">import</span> <span class="nam">requests</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">import</span> <span class="nam">validators</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">recipe_url_import</span> <span class="key">import</span> <span class="nam">parse_servings</span><span class="op">,</span> <span class="nam">parse_servings_text</span><span class="op">,</span> <span class="nam">parse_time</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"><span class="key">class</span> <span class="nam">Cookmate</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="key">return</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span><span class="op">.</span><span class="nam">endswith</span><span class="op">(</span><span class="str">'.xml'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_files_from_recipes</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipes</span><span class="op">,</span> <span class="nam">el</span><span class="op">,</span> <span class="nam">cookie</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="nam">recipe_xml</span> <span class="op">=</span> <span class="nam">file</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'title'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'preptime'</span><span class="op">)</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span> <span class="key">and</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'preptime'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span> <span class="op">=</span> <span class="nam">parse_time</span><span class="op">(</span><span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'preptime'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'cooktime'</span><span class="op">)</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span> <span class="key">and</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'cooktime'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">waiting_time</span> <span class="op">=</span> <span class="nam">parse_time</span><span class="op">(</span><span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'cooktime'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'quantity'</span><span class="op">)</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span> <span class="key">and</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'quantity'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings</span> <span class="op">=</span> <span class="nam">parse_servings</span><span class="op">(</span><span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'quantity'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings_text</span> <span class="op">=</span> <span class="nam">parse_servings_text</span><span class="op">(</span><span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'quantity'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'url'</span><span class="op">)</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span> <span class="key">and</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'url'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">source_url</span> <span class="op">=</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'url'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'description'</span><span class="op">)</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span><span class="op">:</span> <span class="com"># description is a list of <li>'s with text</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'description'</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">description</span> <span class="op">=</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'description'</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">.</span><span class="nam">text</span><span class="op">[</span><span class="op">:</span><span class="num">512</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_text</span> <span class="op">:=</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'recipetext'</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="key">for</span> <span class="nam">step</span> <span class="key">in</span> <span class="nam">recipe_text</span><span class="op">.</span><span class="nam">getchildren</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="key">if</span> <span class="nam">step</span><span class="op">.</span><span class="nam">text</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="nam">instruction</span><span class="op">=</span><span class="nam">step</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_ingredients</span> <span class="op">:=</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'ingredient'</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="nam">ingredient_step</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">first</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="key">if</span> <span class="nam">ingredient_step</span> <span class="key">is</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="nam">ingredient_step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">instruction</span><span class="op">=</span><span class="str">''</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">recipe_ingredients</span><span class="op">.</span><span class="nam">getchildren</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="key">if</span> <span class="nam">ingredient</span><span class="op">.</span><span class="nam">text</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="key">if</span> <span class="nam">ingredient</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">food</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="nam">ingredient_step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'imageurl'</span><span class="op">)</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="nam">recipe_xml</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'imageurl'</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="key">if</span> <span class="nam">validators</span><span class="op">.</span><span class="nam">url</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">public</span><span class="op">=</span><span class="key">True</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="nam">response</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="nam">url</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">response</span><span class="op">.</span><span class="nam">content</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span> <span class="key">as</span> <span class="nam">e</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> <span class="nam">print</span><span class="op">(</span><span class="str">'failed to import image '</span><span class="op">,</span> <span class="nam">str</span><span class="op">(</span><span class="nam">e</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_cookbookapp_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_copymethat_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,227 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/copymethat.py: 14%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/copymethat.py</b>:
|
||||
<span class="pc_cov">14%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">94 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">13<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">81<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_cookmate_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_default_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">from</span> <span class="nam">zipfile</span> <span class="key">import</span> <span class="nam">ZipFile</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">bs4</span> <span class="key">import</span> <span class="nam">BeautifulSoup</span><span class="op">,</span> <span class="nam">Tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">utils</span><span class="op">.</span><span class="nam">translation</span> <span class="key">import</span> <span class="nam">gettext</span> <span class="key">as</span> <span class="nam">_</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">recipe_url_import</span> <span class="key">import</span> <span class="nam">iso_duration_to_minutes</span><span class="op">,</span> <span class="nam">parse_servings</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Keyword</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"><span class="key">from</span> <span class="nam">recipes</span><span class="op">.</span><span class="nam">settings</span> <span class="key">import</span> <span class="nam">DEBUG</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"><span class="key">class</span> <span class="nam">CopyMeThat</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="key">if</span> <span class="nam">DEBUG</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="nam">print</span><span class="op">(</span><span class="str">"testing"</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span> <span class="op">==</span> <span class="str">'recipes.html'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="key">return</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span> <span class="op">==</span> <span class="str">'recipes.html'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="com"># 'file' comes is as a beautifulsoup object</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">source</span> <span class="op">=</span> <span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"a"</span><span class="op">,</span> <span class="op">{</span><span class="str">"id"</span><span class="op">:</span> <span class="str">"original_link"</span><span class="op">}</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="key">except</span> <span class="nam">AttributeError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="nam">source</span> <span class="op">=</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"div"</span><span class="op">,</span> <span class="op">{</span><span class="str">"id"</span><span class="op">:</span> <span class="str">"name"</span><span class="op">}</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> <span class="op">)</span><span class="op">[</span><span class="op">:</span><span class="num">128</span><span class="op">]</span><span class="op">,</span> <span class="nam">source_url</span><span class="op">=</span><span class="nam">source</span><span class="op">,</span> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="key">for</span> <span class="nam">category</span> <span class="key">in</span> <span class="nam">file</span><span class="op">.</span><span class="nam">find_all</span><span class="op">(</span><span class="str">"span"</span><span class="op">,</span> <span class="op">{</span><span class="str">"class"</span><span class="op">:</span> <span class="str">"recipeCategory"</span><span class="op">}</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="nam">keyword</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">category</span><span class="op">.</span><span class="nam">text</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings</span> <span class="op">=</span> <span class="nam">parse_servings</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"a"</span><span class="op">,</span> <span class="op">{</span><span class="str">"id"</span><span class="op">:</span> <span class="str">"recipeYield"</span><span class="op">}</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span> <span class="op">=</span> <span class="nam">iso_duration_to_minutes</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"span"</span><span class="op">,</span> <span class="op">{</span><span class="str">"meta"</span><span class="op">:</span> <span class="str">"prepTime"</span><span class="op">}</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">waiting_time</span> <span class="op">=</span> <span class="nam">iso_duration_to_minutes</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"span"</span><span class="op">,</span> <span class="op">{</span><span class="str">"meta"</span><span class="op">:</span> <span class="str">"cookTime"</span><span class="op">}</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="key">except</span> <span class="nam">AttributeError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"span"</span><span class="op">,</span> <span class="op">{</span><span class="str">"id"</span><span class="op">:</span> <span class="str">"starred"</span><span class="op">}</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="nam">_</span><span class="op">(</span><span class="str">'Favorite'</span><span class="op">)</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="key">except</span> <span class="nam">AttributeError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"span"</span><span class="op">,</span> <span class="op">{</span><span class="str">"id"</span><span class="op">:</span> <span class="str">"made_this"</span><span class="op">}</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="nam">_</span><span class="op">(</span><span class="str">'I made this'</span><span class="op">)</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="key">except</span> <span class="nam">AttributeError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">instruction</span><span class="op">=</span><span class="str">''</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="nam">ingredients</span> <span class="op">=</span> <span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"ul"</span><span class="op">,</span> <span class="op">{</span><span class="str">"id"</span><span class="op">:</span> <span class="str">"recipeIngredients"</span><span class="op">}</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">ingredients</span><span class="op">,</span> <span class="nam">Tag</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">ingredients</span><span class="op">.</span><span class="nam">children</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">,</span> <span class="nam">Tag</span><span class="op">)</span> <span class="key">or</span> <span class="key">not</span> <span class="nam">ingredient</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="key">or</span> <span class="str">"recipeIngredient_spacer"</span> <span class="key">in</span> <span class="nam">ingredient</span><span class="op">[</span><span class="str">'class'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="key">continue</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="key">if</span> <span class="nam">any</span><span class="op">(</span><span class="nam">x</span> <span class="key">in</span> <span class="nam">ingredient</span><span class="op">[</span><span class="str">'class'</span><span class="op">]</span> <span class="key">for</span> <span class="nam">x</span> <span class="key">in</span> <span class="op">[</span><span class="str">"recipeIngredient_subheader"</span><span class="op">,</span> <span class="str">"recipeIngredient_note"</span><span class="op">]</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">is_header</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="nam">note</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">[</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="op">:</span><span class="num">256</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">food</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> <span class="nam">instructions</span> <span class="op">=</span> <span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"ol"</span><span class="op">,</span> <span class="op">{</span><span class="str">"id"</span><span class="op">:</span> <span class="str">"recipeInstructions"</span><span class="op">}</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">instructions</span><span class="op">,</span> <span class="nam">Tag</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> <span class="key">for</span> <span class="nam">instruction</span> <span class="key">in</span> <span class="nam">instructions</span><span class="op">.</span><span class="nam">children</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">instruction</span><span class="op">,</span> <span class="nam">Tag</span><span class="op">)</span> <span class="key">or</span> <span class="nam">instruction</span><span class="op">.</span><span class="nam">text</span> <span class="op">==</span> <span class="str">""</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="key">continue</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="key">if</span> <span class="str">"instruction_subheader"</span> <span class="key">in</span> <span class="nam">instruction</span><span class="op">[</span><span class="str">'class'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> <span class="key">if</span> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">instruction</span><span class="op">=</span><span class="str">''</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">name</span> <span class="op">=</span> <span class="nam">instruction</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">[</span><span class="op">:</span><span class="num">128</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">+=</span> <span class="nam">instruction</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">+</span> <span class="str">' \n\n'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="nam">notes</span> <span class="op">=</span> <span class="nam">file</span><span class="op">.</span><span class="nam">find_all</span><span class="op">(</span><span class="str">"li"</span><span class="op">,</span> <span class="op">{</span><span class="str">"class"</span><span class="op">:</span> <span class="str">"recipeNote"</span><span class="op">}</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> <span class="key">if</span> <span class="nam">notes</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">+=</span> <span class="str">'*Notes:* \n\n'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> <span class="key">for</span> <span class="nam">n</span> <span class="key">in</span> <span class="nam">notes</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"> <span class="key">if</span> <span class="nam">n</span><span class="op">.</span><span class="nam">text</span> <span class="op">==</span> <span class="str">""</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"> <span class="key">continue</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t100" href="#t100">100</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">+=</span> <span class="str">'*'</span> <span class="op">+</span> <span class="nam">n</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">+</span> <span class="str">'* \n\n'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t101" href="#t101">101</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t102" href="#t102">102</a></span><span class="t"> <span class="nam">description</span> <span class="op">=</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t103" href="#t103">103</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t104" href="#t104">104</a></span><span class="t"> <span class="nam">description</span> <span class="op">=</span> <span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"div"</span><span class="op">,</span> <span class="op">{</span><span class="str">"id"</span><span class="op">:</span> <span class="str">"description"</span><span class="op">}</span><span class="op">)</span><span class="op">.</span><span class="nam">text</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t105" href="#t105">105</a></span><span class="t"> <span class="key">except</span> <span class="nam">AttributeError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t106" href="#t106">106</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t107" href="#t107">107</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">description</span><span class="op">)</span> <span class="op"><=</span> <span class="num">512</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t108" href="#t108">108</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">description</span> <span class="op">=</span> <span class="nam">description</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t109" href="#t109">109</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t110" href="#t110">110</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">description</span> <span class="op">=</span> <span class="nam">description</span><span class="op">[</span><span class="op">:</span><span class="num">480</span><span class="op">]</span> <span class="op">+</span> <span class="str">' ... (full description below)'</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t111" href="#t111">111</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">+=</span> <span class="str">'*Description:* \n\n*'</span> <span class="op">+</span> <span class="nam">description</span> <span class="op">+</span> <span class="str">'* \n\n'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t112" href="#t112">112</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t113" href="#t113">113</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t114" href="#t114">114</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t115" href="#t115">115</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t116" href="#t116">116</a></span><span class="t"> <span class="com"># import the Primary recipe image that is stored in the Zip</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t117" href="#t117">117</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t118" href="#t118">118</a></span><span class="t"> <span class="key">for</span> <span class="nam">f</span> <span class="key">in</span> <span class="nam">self</span><span class="op">.</span><span class="nam">files</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t119" href="#t119">119</a></span><span class="t"> <span class="key">if</span> <span class="str">'.zip'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t120" href="#t120">120</a></span><span class="t"> <span class="nam">import_zip</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">f</span><span class="op">[</span><span class="str">'file'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t121" href="#t121">121</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">import_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">"img"</span><span class="op">,</span> <span class="nam">class_</span><span class="op">=</span><span class="str">"recipeImage"</span><span class="op">)</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">"src"</span><span class="op">)</span><span class="op">)</span><span class="op">)</span><span class="op">,</span> <span class="nam">filetype</span><span class="op">=</span><span class="str">'.jpeg'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t122" href="#t122">122</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span> <span class="key">as</span> <span class="nam">e</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t123" href="#t123">123</a></span><span class="t"> <span class="nam">print</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">name</span><span class="op">,</span> <span class="str">': failed to import image '</span><span class="op">,</span> <span class="nam">str</span><span class="op">(</span><span class="nam">e</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t124" href="#t124">124</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t125" href="#t125">125</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t126" href="#t126">126</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t127" href="#t127">127</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t128" href="#t128">128</a></span><span class="t"> <span class="key">def</span> <span class="nam">split_recipe_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t129" href="#t129">129</a></span><span class="t"> <span class="nam">soup</span> <span class="op">=</span> <span class="nam">BeautifulSoup</span><span class="op">(</span><span class="nam">file</span><span class="op">,</span> <span class="str">"html.parser"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t130" href="#t130">130</a></span><span class="t"> <span class="key">return</span> <span class="nam">soup</span><span class="op">.</span><span class="nam">find_all</span><span class="op">(</span><span class="str">"div"</span><span class="op">,</span> <span class="op">{</span><span class="str">"class"</span><span class="op">:</span> <span class="str">"recipe"</span><span class="op">}</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_cookmate_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_default_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,171 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/default.py: 26%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/default.py</b>:
|
||||
<span class="pc_cov">26%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">54 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">14<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">40<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_copymethat_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_domestica_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">json</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">import</span> <span class="nam">traceback</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span><span class="op">,</span> <span class="nam">StringIO</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">re</span> <span class="key">import</span> <span class="nam">match</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">zipfile</span> <span class="key">import</span> <span class="nam">ZipFile</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">rest_framework</span><span class="op">.</span><span class="nam">renderers</span> <span class="key">import</span> <span class="nam">JSONRenderer</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">image_processing</span> <span class="key">import</span> <span class="nam">get_filetype</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">serializer</span> <span class="key">import</span> <span class="nam">RecipeExportSerializer</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"><span class="key">class</span> <span class="nam">Default</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="nam">recipe_zip</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">file</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="nam">recipe_string</span> <span class="op">=</span> <span class="nam">recipe_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="str">'recipe.json'</span><span class="op">)</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"utf-8"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">decode_recipe</span><span class="op">(</span><span class="nam">recipe_string</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="nam">images</span> <span class="op">=</span> <span class="nam">list</span><span class="op">(</span><span class="nam">filter</span><span class="op">(</span><span class="key">lambda</span> <span class="nam">v</span><span class="op">:</span> <span class="nam">match</span><span class="op">(</span><span class="str">'image.*'</span><span class="op">,</span> <span class="nam">v</span><span class="op">)</span><span class="op">,</span> <span class="nam">recipe_zip</span><span class="op">.</span><span class="nam">namelist</span><span class="op">(</span><span class="op">)</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="key">if</span> <span class="nam">images</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">recipe_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="nam">images</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="op">,</span> <span class="nam">filetype</span><span class="op">=</span><span class="nam">get_filetype</span><span class="op">(</span><span class="nam">images</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="key">except</span> <span class="nam">AttributeError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="nam">traceback</span><span class="op">.</span><span class="nam">print_exc</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> <span class="key">def</span> <span class="nam">decode_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">string</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="nam">data</span> <span class="op">=</span> <span class="nam">json</span><span class="op">.</span><span class="nam">loads</span><span class="op">(</span><span class="nam">string</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="nam">serialized_recipe</span> <span class="op">=</span> <span class="nam">RecipeExportSerializer</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">data</span><span class="op">,</span> <span class="nam">context</span><span class="op">=</span><span class="op">{</span><span class="str">'request'</span><span class="op">:</span> <span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">}</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="key">if</span> <span class="nam">serialized_recipe</span><span class="op">.</span><span class="nam">is_valid</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">serialized_recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> <span class="key">return</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="nam">export</span> <span class="op">=</span> <span class="nam">RecipeExportSerializer</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">.</span><span class="nam">data</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="key">return</span> <span class="str">'recipe.json'</span><span class="op">,</span> <span class="nam">JSONRenderer</span><span class="op">(</span><span class="op">)</span><span class="op">.</span><span class="nam">render</span><span class="op">(</span><span class="nam">export</span><span class="op">)</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"utf-8"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_files_from_recipes</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipes</span><span class="op">,</span> <span class="nam">el</span><span class="op">,</span> <span class="nam">cookie</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">export_zip_stream</span> <span class="op">=</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="nam">export_zip_obj</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">export_zip_stream</span><span class="op">,</span> <span class="str">'w'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="key">for</span> <span class="nam">r</span> <span class="key">in</span> <span class="nam">recipes</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="key">if</span> <span class="nam">r</span><span class="op">.</span><span class="nam">internal</span> <span class="key">and</span> <span class="nam">r</span><span class="op">.</span><span class="nam">space</span> <span class="op">==</span> <span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">recipe_zip_stream</span> <span class="op">=</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="nam">recipe_zip_obj</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">recipe_zip_stream</span><span class="op">,</span> <span class="str">'w'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="nam">recipe_stream</span> <span class="op">=</span> <span class="nam">StringIO</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="nam">filename</span><span class="op">,</span> <span class="nam">data</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">r</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="nam">recipe_stream</span><span class="op">.</span><span class="nam">write</span><span class="op">(</span><span class="nam">data</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="nam">recipe_zip_obj</span><span class="op">.</span><span class="nam">writestr</span><span class="op">(</span><span class="nam">filename</span><span class="op">,</span> <span class="nam">recipe_stream</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="nam">recipe_stream</span><span class="op">.</span><span class="nam">close</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="nam">recipe_zip_obj</span><span class="op">.</span><span class="nam">writestr</span><span class="op">(</span><span class="str">f'image{get_filetype(r.image.file.name)}'</span><span class="op">,</span> <span class="nam">r</span><span class="op">.</span><span class="nam">image</span><span class="op">.</span><span class="nam">file</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="key">except</span> <span class="op">(</span><span class="nam">ValueError</span><span class="op">,</span> <span class="nam">FileNotFoundError</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="nam">recipe_zip_obj</span><span class="op">.</span><span class="nam">close</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">export_zip_obj</span><span class="op">.</span><span class="nam">writestr</span><span class="op">(</span><span class="nam">str</span><span class="op">(</span><span class="nam">r</span><span class="op">.</span><span class="nam">pk</span><span class="op">)</span> <span class="op">+</span> <span class="str">'.zip'</span><span class="op">,</span> <span class="nam">recipe_zip_stream</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">exported_recipes</span> <span class="op">+=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_processed_msg</span><span class="op">(</span><span class="nam">r</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">export_zip_obj</span><span class="op">.</span><span class="nam">close</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="key">return</span> <span class="op">[</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_export_file_name</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">export_zip_stream</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span><span class="op">]</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_copymethat_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_domestica_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,154 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/domestica.py: 29%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/domestica.py</b>:
|
||||
<span class="pc_cov">29%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">34 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">10<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">24<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_default_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_integration_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">base64</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">import</span> <span class="nam">json</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">class</span> <span class="nam">Domestica</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">file</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="key">if</span> <span class="nam">file</span><span class="op">[</span><span class="str">'servings'</span><span class="op">]</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings</span> <span class="op">=</span> <span class="nam">file</span><span class="op">[</span><span class="str">'servings'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="key">if</span> <span class="nam">file</span><span class="op">[</span><span class="str">'timeCook'</span><span class="op">]</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">waiting_time</span> <span class="op">=</span> <span class="nam">file</span><span class="op">[</span><span class="str">'timeCook'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="key">if</span> <span class="nam">file</span><span class="op">[</span><span class="str">'timePrep'</span><span class="op">]</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span> <span class="op">=</span> <span class="nam">file</span><span class="op">[</span><span class="str">'timePrep'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="nam">instruction</span><span class="op">=</span><span class="nam">file</span><span class="op">[</span><span class="str">'directions'</span><span class="op">]</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="key">if</span> <span class="nam">file</span><span class="op">[</span><span class="str">'source'</span><span class="op">]</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">+=</span> <span class="str">'\n'</span> <span class="op">+</span> <span class="nam">file</span><span class="op">[</span><span class="str">'source'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">file</span><span class="op">[</span><span class="str">'ingredients'</span><span class="op">]</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">'\n'</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">food</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="key">if</span> <span class="nam">file</span><span class="op">[</span><span class="str">'image'</span><span class="op">]</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">base64</span><span class="op">.</span><span class="nam">b64decode</span><span class="op">(</span><span class="nam">file</span><span class="op">[</span><span class="str">'image'</span><span class="op">]</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'data:image/jpeg;base64,'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">)</span><span class="op">)</span><span class="op">,</span> <span class="nam">filetype</span><span class="op">=</span><span class="str">'.jpeg'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="key">def</span> <span class="nam">split_recipe_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="key">return</span> <span class="nam">json</span><span class="op">.</span><span class="nam">loads</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="op">)</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"utf-8"</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_default_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_integration_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,393 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/integration.py: 20%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/integration.py</b>:
|
||||
<span class="pc_cov">20%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">189 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">38<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">151<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_domestica_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_mealie_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">datetime</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">import</span> <span class="nam">traceback</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">import</span> <span class="nam">uuid</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">zipfile</span> <span class="key">import</span> <span class="nam">BadZipFile</span><span class="op">,</span> <span class="nam">ZipFile</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">bs4</span> <span class="key">import</span> <span class="nam">Tag</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">core</span><span class="op">.</span><span class="nam">cache</span> <span class="key">import</span> <span class="nam">cache</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">core</span><span class="op">.</span><span class="nam">exceptions</span> <span class="key">import</span> <span class="nam">ObjectDoesNotExist</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">core</span><span class="op">.</span><span class="nam">files</span> <span class="key">import</span> <span class="nam">File</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">db</span> <span class="key">import</span> <span class="nam">IntegrityError</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">http</span> <span class="key">import</span> <span class="nam">HttpResponse</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">utils</span><span class="op">.</span><span class="nam">formats</span> <span class="key">import</span> <span class="nam">date_format</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">utils</span><span class="op">.</span><span class="nam">translation</span> <span class="key">import</span> <span class="nam">gettext</span> <span class="key">as</span> <span class="nam">_</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"><span class="key">from</span> <span class="nam">django_scopes</span> <span class="key">import</span> <span class="nam">scope</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"><span class="key">from</span> <span class="nam">lxml</span> <span class="key">import</span> <span class="nam">etree</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">image_processing</span> <span class="key">import</span> <span class="nam">handle_image</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Keyword</span><span class="op">,</span> <span class="nam">Recipe</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"><span class="key">from</span> <span class="nam">recipes</span><span class="op">.</span><span class="nam">settings</span> <span class="key">import</span> <span class="nam">DEBUG</span><span class="op">,</span> <span class="nam">EXPORT_FILE_CACHE_DURATION</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"><span class="key">class</span> <span class="nam">Integration</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">request</span> <span class="op">=</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="nam">keyword</span> <span class="op">=</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="nam">files</span> <span class="op">=</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="nam">export_type</span> <span class="op">=</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">ignored_recipes</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="key">def</span> <span class="nam">__init__</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">request</span><span class="op">,</span> <span class="nam">export_type</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="str">"""</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"><span class="str"> Integration for importing and exporting recipes</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"><span class="str"> :param request: request context of import session (used to link user to created objects)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">request</span> <span class="op">=</span> <span class="nam">request</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">export_type</span> <span class="op">=</span> <span class="nam">export_type</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">ignored_recipes</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="nam">description</span> <span class="op">=</span> <span class="str">f'Imported by {request.user.get_user_display_name()} at {date_format(datetime.datetime.now(), "DATETIME_FORMAT")}. Type: {export_type}'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="nam">last_kw</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">name__regex</span><span class="op">=</span><span class="str">r'^(Import [0-9]+)'</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span><span class="op">.</span><span class="nam">latest</span><span class="op">(</span><span class="str">'created_at'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="nam">name</span> <span class="op">=</span> <span class="str">f'Import {int(last_kw.name.replace("Import ", "")) + 1}'</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="key">except</span> <span class="op">(</span><span class="nam">ObjectDoesNotExist</span><span class="op">,</span> <span class="nam">ValueError</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">name</span> <span class="op">=</span> <span class="str">'Import 1'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="nam">parent</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="str">'Import'</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">keyword</span> <span class="op">=</span> <span class="nam">parent</span><span class="op">.</span><span class="nam">add_child</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">name</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="nam">description</span><span class="op">=</span><span class="nam">description</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="nam">space</span><span class="op">=</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="key">except</span> <span class="op">(</span><span class="nam">IntegrityError</span><span class="op">,</span> <span class="nam">ValueError</span><span class="op">)</span><span class="op">:</span> <span class="com"># in case, for whatever reason, the name does exist append UUID to it. Not nice but works for now.</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">keyword</span> <span class="op">=</span> <span class="nam">parent</span><span class="op">.</span><span class="nam">add_child</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="str">f'{name} {str(uuid.uuid4())[0:8]}'</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="nam">description</span><span class="op">=</span><span class="nam">description</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="nam">space</span><span class="op">=</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="key">def</span> <span class="nam">do_export</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipes</span><span class="op">,</span> <span class="nam">el</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="key">with</span> <span class="nam">scope</span><span class="op">(</span><span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">total_recipes</span> <span class="op">=</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipes</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">cache_duration</span> <span class="op">=</span> <span class="nam">EXPORT_FILE_CACHE_DURATION</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="nam">files</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_files_from_recipes</span><span class="op">(</span><span class="nam">recipes</span><span class="op">,</span> <span class="nam">el</span><span class="op">,</span> <span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">COOKIES</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">files</span><span class="op">)</span> <span class="op">==</span> <span class="num">1</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="nam">filename</span><span class="op">,</span> <span class="nam">file</span> <span class="op">=</span> <span class="nam">files</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">export_filename</span> <span class="op">=</span> <span class="nam">filename</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="nam">export_file</span> <span class="op">=</span> <span class="nam">file</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> <span class="com"># zip the files if there is more then one file</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> <span class="nam">export_filename</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_export_file_name</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> <span class="nam">export_stream</span> <span class="op">=</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="nam">export_obj</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">export_stream</span><span class="op">,</span> <span class="str">'w'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> <span class="key">for</span> <span class="nam">filename</span><span class="op">,</span> <span class="nam">file</span> <span class="key">in</span> <span class="nam">files</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="nam">export_obj</span><span class="op">.</span><span class="nam">writestr</span><span class="op">(</span><span class="nam">filename</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> <span class="nam">export_obj</span><span class="op">.</span><span class="nam">close</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> <span class="nam">export_file</span> <span class="op">=</span> <span class="nam">export_stream</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="nam">cache</span><span class="op">.</span><span class="nam">set</span><span class="op">(</span><span class="str">'export_file_'</span> <span class="op">+</span> <span class="nam">str</span><span class="op">(</span><span class="nam">el</span><span class="op">.</span><span class="nam">pk</span><span class="op">)</span><span class="op">,</span> <span class="op">{</span><span class="str">'filename'</span><span class="op">:</span> <span class="nam">export_filename</span><span class="op">,</span> <span class="str">'file'</span><span class="op">:</span> <span class="nam">export_file</span><span class="op">}</span><span class="op">,</span> <span class="nam">EXPORT_FILE_CACHE_DURATION</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">running</span> <span class="op">=</span> <span class="key">False</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="nam">response</span> <span class="op">=</span> <span class="nam">HttpResponse</span><span class="op">(</span><span class="nam">export_file</span><span class="op">,</span> <span class="nam">content_type</span><span class="op">=</span><span class="str">'application/force-download'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> <span class="nam">response</span><span class="op">[</span><span class="str">'Content-Disposition'</span><span class="op">]</span> <span class="op">=</span> <span class="str">'attachment; filename="'</span> <span class="op">+</span> <span class="nam">export_filename</span> <span class="op">+</span> <span class="str">'"'</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="key">return</span> <span class="nam">response</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> <span class="str">"""</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"><span class="str"> Since zipfile.namelist() returns all files in all subdirectories this function allows filtering of files</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"><span class="str"> If false is returned the file will be ignored</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"><span class="str"> By default all files are included</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t100" href="#t100">100</a></span><span class="t"><span class="str"> :param zip_info_object: ZipInfo object</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t101" href="#t101">101</a></span><span class="t"><span class="str"> :return: Boolean if object should be included</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t102" href="#t102">102</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t103" href="#t103">103</a></span><span class="t"> <span class="key">return</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t104" href="#t104">104</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t105" href="#t105">105</a></span><span class="t"> <span class="key">def</span> <span class="nam">do_import</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">files</span><span class="op">,</span> <span class="nam">il</span><span class="op">,</span> <span class="nam">import_duplicates</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t106" href="#t106">106</a></span><span class="t"> <span class="str">"""</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t107" href="#t107">107</a></span><span class="t"><span class="str"> Imports given files</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t108" href="#t108">108</a></span><span class="t"><span class="str"> :param import_duplicates: if true duplicates are imported as well</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t109" href="#t109">109</a></span><span class="t"><span class="str"> :param files: List of in memory files</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t110" href="#t110">110</a></span><span class="t"><span class="str"> :param il: Import Log object to refresh while running</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t111" href="#t111">111</a></span><span class="t"><span class="str"> :return: HttpResponseRedirect to the recipe search showing all imported recipes</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t112" href="#t112">112</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t113" href="#t113">113</a></span><span class="t"> <span class="key">with</span> <span class="nam">scope</span><span class="op">(</span><span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t114" href="#t114">114</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t115" href="#t115">115</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t116" href="#t116">116</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">files</span> <span class="op">=</span> <span class="nam">files</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t117" href="#t117">117</a></span><span class="t"> <span class="key">for</span> <span class="nam">f</span> <span class="key">in</span> <span class="nam">files</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t118" href="#t118">118</a></span><span class="t"> <span class="key">if</span> <span class="str">'RecipeKeeper'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t119" href="#t119">119</a></span><span class="t"> <span class="nam">import_zip</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">f</span><span class="op">[</span><span class="str">'file'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t120" href="#t120">120</a></span><span class="t"> <span class="nam">file_list</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t121" href="#t121">121</a></span><span class="t"> <span class="key">for</span> <span class="nam">z</span> <span class="key">in</span> <span class="nam">import_zip</span><span class="op">.</span><span class="nam">filelist</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t122" href="#t122">122</a></span><span class="t"> <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">z</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t123" href="#t123">123</a></span><span class="t"> <span class="nam">file_list</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">z</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t124" href="#t124">124</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">total_recipes</span> <span class="op">+=</span> <span class="nam">len</span><span class="op">(</span><span class="nam">file_list</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t125" href="#t125">125</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t126" href="#t126">126</a></span><span class="t"> <span class="key">for</span> <span class="nam">z</span> <span class="key">in</span> <span class="nam">file_list</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t127" href="#t127">127</a></span><span class="t"> <span class="nam">data_list</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">split_recipe_file</span><span class="op">(</span><span class="nam">import_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="nam">z</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">'utf-8'</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t128" href="#t128">128</a></span><span class="t"> <span class="key">for</span> <span class="nam">d</span> <span class="key">in</span> <span class="nam">data_list</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t129" href="#t129">129</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">d</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t130" href="#t130">130</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t131" href="#t131">131</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_processed_msg</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t132" href="#t132">132</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">handle_duplicates</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">import_duplicates</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t133" href="#t133">133</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">imported_recipes</span> <span class="op">+=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t134" href="#t134">134</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t135" href="#t135">135</a></span><span class="t"> <span class="nam">import_zip</span><span class="op">.</span><span class="nam">close</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t136" href="#t136">136</a></span><span class="t"> <span class="key">elif</span> <span class="str">'.zip'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span> <span class="key">or</span> <span class="str">'.paprikarecipes'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span> <span class="key">or</span> <span class="str">'.mcb'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t137" href="#t137">137</a></span><span class="t"> <span class="nam">import_zip</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">f</span><span class="op">[</span><span class="str">'file'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t138" href="#t138">138</a></span><span class="t"> <span class="nam">file_list</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t139" href="#t139">139</a></span><span class="t"> <span class="key">for</span> <span class="nam">z</span> <span class="key">in</span> <span class="nam">import_zip</span><span class="op">.</span><span class="nam">filelist</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t140" href="#t140">140</a></span><span class="t"> <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">z</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t141" href="#t141">141</a></span><span class="t"> <span class="nam">file_list</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">z</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t142" href="#t142">142</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">total_recipes</span> <span class="op">+=</span> <span class="nam">len</span><span class="op">(</span><span class="nam">file_list</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t143" href="#t143">143</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t144" href="#t144">144</a></span><span class="t"> <span class="key">import</span> <span class="nam">cookbook</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t145" href="#t145">145</a></span><span class="t"> <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">copymethat</span><span class="op">.</span><span class="nam">CopyMeThat</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t146" href="#t146">146</a></span><span class="t"> <span class="nam">file_list</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">split_recipe_file</span><span class="op">(</span><span class="nam">BytesIO</span><span class="op">(</span><span class="nam">import_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="str">'recipes.html'</span><span class="op">)</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t147" href="#t147">147</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">total_recipes</span> <span class="op">+=</span> <span class="nam">len</span><span class="op">(</span><span class="nam">file_list</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t148" href="#t148">148</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t149" href="#t149">149</a></span><span class="t"> <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">cookmate</span><span class="op">.</span><span class="nam">Cookmate</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t150" href="#t150">150</a></span><span class="t"> <span class="nam">new_file_list</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t151" href="#t151">151</a></span><span class="t"> <span class="key">for</span> <span class="nam">file</span> <span class="key">in</span> <span class="nam">file_list</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t152" href="#t152">152</a></span><span class="t"> <span class="nam">new_file_list</span> <span class="op">+=</span> <span class="nam">etree</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">BytesIO</span><span class="op">(</span><span class="nam">import_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span><span class="op">)</span><span class="op">)</span><span class="op">.</span><span class="nam">getroot</span><span class="op">(</span><span class="op">)</span><span class="op">.</span><span class="nam">getchildren</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t153" href="#t153">153</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">total_recipes</span> <span class="op">=</span> <span class="nam">len</span><span class="op">(</span><span class="nam">new_file_list</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t154" href="#t154">154</a></span><span class="t"> <span class="nam">file_list</span> <span class="op">=</span> <span class="nam">new_file_list</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t155" href="#t155">155</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t156" href="#t156">156</a></span><span class="t"> <span class="key">for</span> <span class="nam">z</span> <span class="key">in</span> <span class="nam">file_list</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t157" href="#t157">157</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t158" href="#t158">158</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">hasattr</span><span class="op">(</span><span class="nam">z</span><span class="op">,</span> <span class="str">'filename'</span><span class="op">)</span> <span class="key">or</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">z</span><span class="op">,</span> <span class="nam">Tag</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t159" href="#t159">159</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">z</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t160" href="#t160">160</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t161" href="#t161">161</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">BytesIO</span><span class="op">(</span><span class="nam">import_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="nam">z</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t162" href="#t162">162</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t163" href="#t163">163</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_processed_msg</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t164" href="#t164">164</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">handle_duplicates</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">import_duplicates</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t165" href="#t165">165</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">imported_recipes</span> <span class="op">+=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t166" href="#t166">166</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t167" href="#t167">167</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span> <span class="key">as</span> <span class="nam">e</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t168" href="#t168">168</a></span><span class="t"> <span class="nam">traceback</span><span class="op">.</span><span class="nam">print_exc</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t169" href="#t169">169</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">handle_exception</span><span class="op">(</span><span class="nam">e</span><span class="op">,</span> <span class="nam">log</span><span class="op">=</span><span class="nam">il</span><span class="op">,</span> <span class="nam">message</span><span class="op">=</span><span class="str">f'-------------------- \nERROR \n{e}\n--------------------\n'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t170" href="#t170">170</a></span><span class="t"> <span class="nam">import_zip</span><span class="op">.</span><span class="nam">close</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t171" href="#t171">171</a></span><span class="t"> <span class="key">elif</span> <span class="str">'.json'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span> <span class="key">or</span> <span class="str">'.xml'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span> <span class="key">or</span> <span class="str">'.txt'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span> <span class="key">or</span> <span class="str">'.mmf'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span> <span class="key">or</span> <span class="str">'.rk'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span> <span class="key">or</span> <span class="str">'.melarecipe'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t172" href="#t172">172</a></span><span class="t"> <span class="nam">data_list</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">split_recipe_file</span><span class="op">(</span><span class="nam">f</span><span class="op">[</span><span class="str">'file'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t173" href="#t173">173</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">total_recipes</span> <span class="op">+=</span> <span class="nam">len</span><span class="op">(</span><span class="nam">data_list</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t174" href="#t174">174</a></span><span class="t"> <span class="key">for</span> <span class="nam">d</span> <span class="key">in</span> <span class="nam">data_list</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t175" href="#t175">175</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t176" href="#t176">176</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">d</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t177" href="#t177">177</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t178" href="#t178">178</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_processed_msg</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t179" href="#t179">179</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">handle_duplicates</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">import_duplicates</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t180" href="#t180">180</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">imported_recipes</span> <span class="op">+=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t181" href="#t181">181</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t182" href="#t182">182</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span> <span class="key">as</span> <span class="nam">e</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t183" href="#t183">183</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">handle_exception</span><span class="op">(</span><span class="nam">e</span><span class="op">,</span> <span class="nam">log</span><span class="op">=</span><span class="nam">il</span><span class="op">,</span> <span class="nam">message</span><span class="op">=</span><span class="str">f'-------------------- \nERROR \n{e}\n--------------------\n'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t184" href="#t184">184</a></span><span class="t"> <span class="key">elif</span> <span class="str">'.rtk'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t185" href="#t185">185</a></span><span class="t"> <span class="nam">import_zip</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">f</span><span class="op">[</span><span class="str">'file'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t186" href="#t186">186</a></span><span class="t"> <span class="key">for</span> <span class="nam">z</span> <span class="key">in</span> <span class="nam">import_zip</span><span class="op">.</span><span class="nam">filelist</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t187" href="#t187">187</a></span><span class="t"> <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">z</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t188" href="#t188">188</a></span><span class="t"> <span class="nam">data_list</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">split_recipe_file</span><span class="op">(</span><span class="nam">import_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="nam">z</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">'utf-8'</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t189" href="#t189">189</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">total_recipes</span> <span class="op">+=</span> <span class="nam">len</span><span class="op">(</span><span class="nam">data_list</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t190" href="#t190">190</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t191" href="#t191">191</a></span><span class="t"> <span class="key">for</span> <span class="nam">d</span> <span class="key">in</span> <span class="nam">data_list</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t192" href="#t192">192</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t193" href="#t193">193</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">d</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t194" href="#t194">194</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t195" href="#t195">195</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_processed_msg</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t196" href="#t196">196</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">handle_duplicates</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">import_duplicates</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t197" href="#t197">197</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">imported_recipes</span> <span class="op">+=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t198" href="#t198">198</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t199" href="#t199">199</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span> <span class="key">as</span> <span class="nam">e</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t200" href="#t200">200</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">handle_exception</span><span class="op">(</span><span class="nam">e</span><span class="op">,</span> <span class="nam">log</span><span class="op">=</span><span class="nam">il</span><span class="op">,</span> <span class="nam">message</span><span class="op">=</span><span class="str">f'-------------------- \nERROR \n{e}\n--------------------\n'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t201" href="#t201">201</a></span><span class="t"> <span class="nam">import_zip</span><span class="op">.</span><span class="nam">close</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t202" href="#t202">202</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t203" href="#t203">203</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">f</span><span class="op">[</span><span class="str">'file'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t204" href="#t204">204</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t205" href="#t205">205</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_processed_msg</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t206" href="#t206">206</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">handle_duplicates</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">import_duplicates</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t207" href="#t207">207</a></span><span class="t"> <span class="key">except</span> <span class="nam">BadZipFile</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t208" href="#t208">208</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="str">'ERROR '</span> <span class="op">+</span> <span class="nam">_</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t209" href="#t209">209</a></span><span class="t"> <span class="str">'Importer expected a .zip file. Did you choose the correct importer type for your data ?'</span><span class="op">)</span> <span class="op">+</span> <span class="str">'\n'</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t210" href="#t210">210</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span> <span class="key">as</span> <span class="nam">e</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t211" href="#t211">211</a></span><span class="t"> <span class="nam">msg</span> <span class="op">=</span> <span class="str">'ERROR '</span> <span class="op">+</span> <span class="nam">_</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t212" href="#t212">212</a></span><span class="t"> <span class="str">'An unexpected error occurred during the import. Please make sure you have uploaded a valid file.'</span><span class="op">)</span> <span class="op">+</span> <span class="str">'\n'</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t213" href="#t213">213</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">handle_exception</span><span class="op">(</span><span class="nam">e</span><span class="op">,</span> <span class="nam">log</span><span class="op">=</span><span class="nam">il</span><span class="op">,</span> <span class="nam">message</span><span class="op">=</span><span class="nam">msg</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t214" href="#t214">214</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t215" href="#t215">215</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">ignored_recipes</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t216" href="#t216">216</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="str">'\n'</span> <span class="op">+</span> <span class="nam">_</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t217" href="#t217">217</a></span><span class="t"> <span class="str">'The following recipes were ignored because they already existed:'</span><span class="op">)</span> <span class="op">+</span> <span class="str">' '</span> <span class="op">+</span> <span class="str">', '</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t218" href="#t218">218</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">ignored_recipes</span><span class="op">)</span> <span class="op">+</span> <span class="str">'\n\n'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t219" href="#t219">219</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t220" href="#t220">220</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">keyword</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">keyword</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t221" href="#t221">221</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="op">(</span><span class="nam">_</span><span class="op">(</span><span class="str">'Imported %s recipes.'</span><span class="op">)</span> <span class="op">%</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">keywords</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">keyword</span><span class="op">)</span><span class="op">.</span><span class="nam">count</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">+</span> <span class="str">'\n'</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t222" href="#t222">222</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">running</span> <span class="op">=</span> <span class="key">False</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t223" href="#t223">223</a></span><span class="t"> <span class="nam">il</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t224" href="#t224">224</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t225" href="#t225">225</a></span><span class="t"> <span class="key">def</span> <span class="nam">handle_duplicates</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">,</span> <span class="nam">import_duplicates</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t226" href="#t226">226</a></span><span class="t"> <span class="str">"""</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t227" href="#t227">227</a></span><span class="t"><span class="str"> Checks if a recipe is already present, if so deletes it</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t228" href="#t228">228</a></span><span class="t"><span class="str"> :param recipe: Recipe object</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t229" href="#t229">229</a></span><span class="t"><span class="str"> :param import_duplicates: if duplicates should be imported</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t230" href="#t230">230</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t231" href="#t231">231</a></span><span class="t"> <span class="key">if</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">filter</span><span class="op">(</span><span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">name</span><span class="op">)</span><span class="op">.</span><span class="nam">count</span><span class="op">(</span><span class="op">)</span> <span class="op">></span> <span class="num">1</span> <span class="key">and</span> <span class="key">not</span> <span class="nam">import_duplicates</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t232" href="#t232">232</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">ignored_recipes</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">name</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t233" href="#t233">233</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">delete</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t234" href="#t234">234</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t235" href="#t235">235</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">,</span> <span class="nam">image_file</span><span class="op">,</span> <span class="nam">filetype</span><span class="op">=</span><span class="str">'.jpeg'</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t236" href="#t236">236</a></span><span class="t"> <span class="str">"""</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t237" href="#t237">237</a></span><span class="t"><span class="str"> Adds an image to a recipe naming it correctly</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t238" href="#t238">238</a></span><span class="t"><span class="str"> :param recipe: Recipe object</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t239" href="#t239">239</a></span><span class="t"><span class="str"> :param image_file: ByteIO stream containing the image</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t240" href="#t240">240</a></span><span class="t"><span class="str"> :param filetype: type of file to write bytes to, default to .jpeg if unknown</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t241" href="#t241">241</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t242" href="#t242">242</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">image</span> <span class="op">=</span> <span class="nam">File</span><span class="op">(</span><span class="nam">handle_image</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="nam">File</span><span class="op">(</span><span class="nam">image_file</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="str">'image'</span><span class="op">)</span><span class="op">,</span> <span class="nam">filetype</span><span class="op">=</span><span class="nam">filetype</span><span class="op">)</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="str">f'{uuid.uuid4()}_{recipe.pk}{filetype}'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t243" href="#t243">243</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t244" href="#t244">244</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t245" href="#t245">245</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t246" href="#t246">246</a></span><span class="t"> <span class="str">"""</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t247" href="#t247">247</a></span><span class="t"><span class="str"> Takes any file like object and converts it into a recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t248" href="#t248">248</a></span><span class="t"><span class="str"> :param file: ByteIO or any file like object, depends on provider</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t249" href="#t249">249</a></span><span class="t"><span class="str"> :return: Recipe object</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t250" href="#t250">250</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t251" href="#t251">251</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t252" href="#t252">252</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t253" href="#t253">253</a></span><span class="t"> <span class="key">def</span> <span class="nam">split_recipe_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t254" href="#t254">254</a></span><span class="t"> <span class="str">"""</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t255" href="#t255">255</a></span><span class="t"><span class="str"> Takes a file that contains multiple recipes and splits it into a list of strings of various formats (e.g. json, text, ..)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t256" href="#t256">256</a></span><span class="t"><span class="str"> :param file: ByteIO or any file like object, depends on provider</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t257" href="#t257">257</a></span><span class="t"><span class="str"> :return: list of strings</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t258" href="#t258">258</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t259" href="#t259">259</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t260" href="#t260">260</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t261" href="#t261">261</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t262" href="#t262">262</a></span><span class="t"> <span class="str">"""</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t263" href="#t263">263</a></span><span class="t"><span class="str"> Takes a recipe object and converts it to a string (depending on the format)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t264" href="#t264">264</a></span><span class="t"><span class="str"> returns both the filename of the exported file and the file contents</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t265" href="#t265">265</a></span><span class="t"><span class="str"> :param recipe: Recipe object that should be converted</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t266" href="#t266">266</a></span><span class="t"><span class="str"> :returns:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t267" href="#t267">267</a></span><span class="t"><span class="str"> - name - file name in export</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t268" href="#t268">268</a></span><span class="t"><span class="str"> - data - string content for file to get created in export zip</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t269" href="#t269">269</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t270" href="#t270">270</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t271" href="#t271">271</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t272" href="#t272">272</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_files_from_recipes</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipes</span><span class="op">,</span> <span class="nam">el</span><span class="op">,</span> <span class="nam">cookie</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t273" href="#t273">273</a></span><span class="t"> <span class="str">"""</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t274" href="#t274">274</a></span><span class="t"><span class="str"> Takes a list of recipe object and converts it to a array containing each file.</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t275" href="#t275">275</a></span><span class="t"><span class="str"> Each file is represented as an array [filename, data] where data is a string of the content of the file.</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t276" href="#t276">276</a></span><span class="t"><span class="str"> :param recipe: Recipe object that should be converted</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t277" href="#t277">277</a></span><span class="t"><span class="str"> :returns:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t278" href="#t278">278</a></span><span class="t"><span class="str"> [[filename, data], ...]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t279" href="#t279">279</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t280" href="#t280">280</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t281" href="#t281">281</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t282" href="#t282">282</a></span><span class="t"> <span class="op">@</span><span class="nam">staticmethod</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t283" href="#t283">283</a></span><span class="t"> <span class="key">def</span> <span class="nam">handle_exception</span><span class="op">(</span><span class="nam">exception</span><span class="op">,</span> <span class="nam">log</span><span class="op">=</span><span class="key">None</span><span class="op">,</span> <span class="nam">message</span><span class="op">=</span><span class="str">''</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t284" href="#t284">284</a></span><span class="t"> <span class="key">if</span> <span class="nam">log</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t285" href="#t285">285</a></span><span class="t"> <span class="key">if</span> <span class="nam">message</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t286" href="#t286">286</a></span><span class="t"> <span class="nam">log</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="nam">message</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t287" href="#t287">287</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t288" href="#t288">288</a></span><span class="t"> <span class="nam">log</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="nam">exception</span><span class="op">.</span><span class="nam">msg</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t289" href="#t289">289</a></span><span class="t"> <span class="key">if</span> <span class="nam">DEBUG</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t290" href="#t290">290</a></span><span class="t"> <span class="nam">traceback</span><span class="op">.</span><span class="nam">print_exc</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t291" href="#t291">291</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t292" href="#t292">292</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_export_file_name</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">format</span><span class="op">=</span><span class="str">'zip'</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t293" href="#t293">293</a></span><span class="t"> <span class="key">return</span> <span class="str">"export_{}.{}"</span><span class="op">.</span><span class="nam">format</span><span class="op">(</span><span class="nam">datetime</span><span class="op">.</span><span class="nam">datetime</span><span class="op">.</span><span class="nam">now</span><span class="op">(</span><span class="op">)</span><span class="op">.</span><span class="nam">strftime</span><span class="op">(</span><span class="str">"%Y-%m-%d"</span><span class="op">)</span><span class="op">,</span> <span class="nam">format</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t294" href="#t294">294</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t295" href="#t295">295</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_processed_msg</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t296" href="#t296">296</a></span><span class="t"> <span class="key">return</span> <span class="str">f'{recipe.pk} - {recipe.name} \n'</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_domestica_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_mealie_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,196 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/mealie.py: 19%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/mealie.py</b>:
|
||||
<span class="pc_cov">19%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">70 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">13<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">57<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_integration_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_mealmaster_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">json</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">import</span> <span class="nam">re</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">zipfile</span> <span class="key">import</span> <span class="nam">ZipFile</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">image_processing</span> <span class="key">import</span> <span class="nam">get_filetype</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">recipe_url_import</span> <span class="key">import</span> <span class="nam">parse_servings</span><span class="op">,</span> <span class="nam">parse_servings_text</span><span class="op">,</span> <span class="nam">parse_time</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Keyword</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"><span class="key">class</span> <span class="nam">Mealie</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="key">return</span> <span class="nam">re</span><span class="op">.</span><span class="nam">match</span><span class="op">(</span><span class="str">r'^recipes/([A-Za-z\d\s\-_()\[\]\u00C0-\u017F])+/([A-Za-z\d\s\-_()\[\]\u00C0-\u017F])+.json$'</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="nam">recipe_json</span> <span class="op">=</span> <span class="nam">json</span><span class="op">.</span><span class="nam">loads</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"utf-8"</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="nam">description</span> <span class="op">=</span> <span class="str">''</span> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">500</span> <span class="key">else</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">description</span><span class="op">=</span><span class="nam">description</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="key">for</span> <span class="nam">s</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'recipe_instructions'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">instruction</span><span class="op">=</span><span class="nam">s</span><span class="op">[</span><span class="str">'text'</span><span class="op">]</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">first</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">step</span><span class="op">:</span> <span class="com"># if there is no step in the exported data</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">instruction</span><span class="op">=</span><span class="str">''</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">500</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">=</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">+</span> <span class="str">'\n\n'</span> <span class="op">+</span> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'recipe_ingredient'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="key">if</span> <span class="nam">ingredient</span><span class="op">[</span><span class="str">'food'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">[</span><span class="str">'food'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">[</span><span class="str">'unit'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">amount</span> <span class="op">=</span> <span class="nam">ingredient</span><span class="op">[</span><span class="str">'quantity'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient</span><span class="op">[</span><span class="str">'note'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="nam">original_text</span> <span class="op">=</span> <span class="key">None</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">[</span><span class="str">'note'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">food</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="nam">original_text</span> <span class="op">=</span> <span class="nam">ingredient</span><span class="op">[</span><span class="str">'note'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">original_text</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="key">if</span> <span class="str">'tags'</span> <span class="key">in</span> <span class="nam">recipe_json</span> <span class="key">and</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'tags'</span><span class="op">]</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="key">for</span> <span class="nam">k</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'tags'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="key">if</span> <span class="str">'name'</span> <span class="key">in</span> <span class="nam">k</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="nam">keyword</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">k</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="key">if</span> <span class="str">'notes'</span> <span class="key">in</span> <span class="nam">recipe_json</span> <span class="key">and</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'notes'</span><span class="op">]</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">notes_text</span> <span class="op">=</span> <span class="str">"#### Notes \n\n"</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="key">for</span> <span class="nam">n</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'notes'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="nam">notes_text</span> <span class="op">+=</span> <span class="str">f'{n["text"]} \n'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="nam">instruction</span><span class="op">=</span><span class="nam">notes_text</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="key">if</span> <span class="str">'recipe_yield'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings</span> <span class="op">=</span> <span class="nam">parse_servings</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'recipe_yield'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings_text</span> <span class="op">=</span> <span class="nam">parse_servings_text</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'recipe_yield'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="key">if</span> <span class="str">'total_time'</span> <span class="key">in</span> <span class="nam">recipe_json</span> <span class="key">and</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'total_time'</span><span class="op">]</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span> <span class="op">=</span> <span class="nam">parse_time</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'total_time'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="key">if</span> <span class="str">'org_url'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">source_url</span> <span class="op">=</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'org_url'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="key">for</span> <span class="nam">f</span> <span class="key">in</span> <span class="nam">self</span><span class="op">.</span><span class="nam">files</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="key">if</span> <span class="str">'.zip'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> <span class="nam">import_zip</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">f</span><span class="op">[</span><span class="str">'file'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">import_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="str">f'recipes/{recipe_json["slug"]}/images/min-original.webp'</span><span class="op">)</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> <span class="nam">filetype</span><span class="op">=</span><span class="nam">get_filetype</span><span class="op">(</span><span class="str">f'recipes/{recipe_json["slug"]}/images/original'</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_integration_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_mealmaster_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,176 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/mealmaster.py: 15%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/mealmaster.py</b>:
|
||||
<span class="pc_cov">15%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">54 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">8<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">46<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_mealie_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_melarecipes_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">re</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Keyword</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">class</span> <span class="nam">MealMaster</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> <span class="nam">servings</span> <span class="op">=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> <span class="nam">ingredients</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> <span class="nam">directions</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="key">for</span> <span class="nam">line</span> <span class="key">in</span> <span class="nam">file</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'\r'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">'\n'</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">line</span><span class="op">.</span><span class="nam">startswith</span><span class="op">(</span><span class="str">'MMMMM'</span><span class="op">)</span> <span class="key">and</span> <span class="nam">line</span><span class="op">.</span><span class="nam">strip</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="key">if</span> <span class="str">'Title:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="nam">title</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'Title:'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="key">if</span> <span class="str">'Categories:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="nam">tags</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'Categories:'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="key">if</span> <span class="str">'Yield:'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">servings_text</span> <span class="op">=</span> <span class="nam">line</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'Yield:'</span><span class="op">,</span> <span class="str">''</span><span class="op">)</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="key">if</span> <span class="nam">re</span><span class="op">.</span><span class="nam">match</span><span class="op">(</span><span class="str">'\s{2,}([0-9])+'</span><span class="op">,</span> <span class="nam">line</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="nam">ingredients</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">line</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">directions</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">line</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="nam">servings</span> <span class="op">=</span> <span class="nam">re</span><span class="op">.</span><span class="nam">findall</span><span class="op">(</span><span class="str">'([0-9])+'</span><span class="op">,</span> <span class="nam">servings_text</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span> <span class="key">as</span> <span class="nam">e</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="nam">print</span><span class="op">(</span><span class="str">'failed parsing servings '</span><span class="op">,</span> <span class="nam">e</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">title</span><span class="op">,</span> <span class="nam">servings</span><span class="op">=</span><span class="nam">servings</span><span class="op">,</span> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="key">for</span> <span class="nam">k</span> <span class="key">in</span> <span class="nam">tags</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">','</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="nam">keyword</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">k</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="nam">instruction</span><span class="op">=</span><span class="str">'\n'</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">directions</span><span class="op">)</span> <span class="op">+</span> <span class="str">'\n\n'</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">ingredients</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="key">def</span> <span class="nam">split_recipe_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="nam">recipe_list</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="nam">current_recipe</span> <span class="op">=</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="key">for</span> <span class="nam">fl</span> <span class="key">in</span> <span class="nam">file</span><span class="op">.</span><span class="nam">readlines</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">line</span> <span class="op">=</span> <span class="nam">fl</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"windows-1250"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="key">if</span> <span class="op">(</span><span class="nam">line</span><span class="op">.</span><span class="nam">startswith</span><span class="op">(</span><span class="str">'MMMMM'</span><span class="op">)</span> <span class="key">or</span> <span class="nam">line</span><span class="op">.</span><span class="nam">startswith</span><span class="op">(</span><span class="str">'-----'</span><span class="op">)</span><span class="op">)</span> <span class="key">and</span> <span class="str">'meal-master'</span> <span class="key">in</span> <span class="nam">line</span><span class="op">.</span><span class="nam">lower</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="key">if</span> <span class="nam">current_recipe</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="nam">recipe_list</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">current_recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="nam">current_recipe</span> <span class="op">=</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">current_recipe</span> <span class="op">=</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="nam">current_recipe</span> <span class="op">+=</span> <span class="nam">line</span> <span class="op">+</span> <span class="str">'\n'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> <span class="key">if</span> <span class="nam">current_recipe</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> <span class="nam">recipe_list</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">current_recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe_list</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_mealie_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_melarecipes_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,180 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/melarecipes.py: 23%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/melarecipes.py</b>:
|
||||
<span class="pc_cov">23%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">56 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">13<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">43<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_mealmaster_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_nextcloud_cookbook_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">base64</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">import</span> <span class="nam">json</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">gettext</span> <span class="key">import</span> <span class="nam">gettext</span> <span class="key">as</span> <span class="nam">_</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">recipe_url_import</span> <span class="key">import</span> <span class="nam">parse_servings</span><span class="op">,</span> <span class="nam">parse_time</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Keyword</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"><span class="key">class</span> <span class="nam">MelaRecipes</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="key">def</span> <span class="nam">split_recipe_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="key">return</span> <span class="op">[</span><span class="nam">json</span><span class="op">.</span><span class="nam">loads</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"utf-8"</span><span class="op">)</span><span class="op">)</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_files_from_recipes</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipes</span><span class="op">,</span> <span class="nam">el</span><span class="op">,</span> <span class="nam">cookie</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="nam">recipe_json</span> <span class="op">=</span> <span class="nam">file</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'title'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="key">if</span> <span class="str">'yield'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings</span> <span class="op">=</span> <span class="nam">parse_servings</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'yield'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="key">if</span> <span class="str">'cookTime'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">waiting_time</span> <span class="op">=</span> <span class="nam">parse_time</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'cookTime'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="key">if</span> <span class="str">'prepTime'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span> <span class="op">=</span> <span class="nam">parse_time</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'prepTime'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> <span class="key">if</span> <span class="str">'favorite'</span> <span class="key">in</span> <span class="nam">recipe_json</span> <span class="key">and</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'favorite'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="nam">_</span><span class="op">(</span><span class="str">'Favorite'</span><span class="op">)</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="key">if</span> <span class="str">'categories'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="key">for</span> <span class="nam">x</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'categories'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="nam">x</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="nam">instruction</span> <span class="op">=</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="key">if</span> <span class="str">'text'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="nam">instruction</span> <span class="op">+=</span> <span class="str">f'*{recipe_json["text"].strip()}* \n'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="key">if</span> <span class="str">'instructions'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="nam">instruction</span> <span class="op">+=</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">"instructions"</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">+</span> <span class="str">' \n'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="key">if</span> <span class="str">'notes'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="nam">instruction</span> <span class="op">+=</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">"notes"</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">+</span> <span class="str">' \n'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="key">if</span> <span class="str">'link'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">source_url</span> <span class="op">=</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'link'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="nam">instruction</span><span class="op">=</span><span class="nam">instruction</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'ingredients'</span><span class="op">]</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">'\n'</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="key">if</span> <span class="nam">ingredient</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">food</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_json</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">"images"</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">base64</span><span class="op">.</span><span class="nam">b64decode</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'images'</span><span class="op">]</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="op">,</span> <span class="nam">filetype</span><span class="op">=</span><span class="str">'.jpeg'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_mealmaster_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_nextcloud_cookbook_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,289 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/nextcloud_cookbook.py: 13%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/nextcloud_cookbook.py</b>:
|
||||
<span class="pc_cov">13%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">141 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">18<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">123<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_melarecipes_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_openeats_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">json</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">import</span> <span class="nam">re</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span><span class="op">,</span> <span class="nam">StringIO</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">from</span> <span class="nam">zipfile</span> <span class="key">import</span> <span class="nam">ZipFile</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">from</span> <span class="nam">PIL</span> <span class="key">import</span> <span class="nam">Image</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">image_processing</span> <span class="key">import</span> <span class="nam">get_filetype</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">recipe_url_import</span> <span class="key">import</span> <span class="nam">iso_duration_to_minutes</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Keyword</span><span class="op">,</span> <span class="nam">NutritionInformation</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"><span class="key">class</span> <span class="nam">NextcloudCookbook</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="key">def</span> <span class="nam">import_file_name_filter</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">zip_info_object</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> <span class="key">return</span> <span class="nam">zip_info_object</span><span class="op">.</span><span class="nam">filename</span><span class="op">.</span><span class="nam">endswith</span><span class="op">(</span><span class="str">'.json'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="nam">recipe_json</span> <span class="op">=</span> <span class="nam">json</span><span class="op">.</span><span class="nam">loads</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"utf-8"</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">description</span> <span class="op">=</span> <span class="str">''</span> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">500</span> <span class="key">else</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">description</span><span class="op">=</span><span class="nam">description</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">servings</span><span class="op">=</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'recipeYield'</span><span class="op">]</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span> <span class="op">=</span> <span class="nam">iso_duration_to_minutes</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'prepTime'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">waiting_time</span> <span class="op">=</span> <span class="nam">iso_duration_to_minutes</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'cookTime'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> <span class="key">if</span> <span class="str">'url'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">source_url</span> <span class="op">=</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'url'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="key">if</span> <span class="str">'recipeCategory'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'recipeCategory'</span><span class="op">]</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="key">if</span> <span class="str">'keywords'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="key">for</span> <span class="nam">x</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'keywords'</span><span class="op">]</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">','</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="key">if</span> <span class="nam">x</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="nam">x</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="nam">ingredients_added</span> <span class="op">=</span> <span class="key">False</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="key">for</span> <span class="nam">s</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'recipeInstructions'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="key">if</span> <span class="str">'text'</span> <span class="key">in</span> <span class="nam">s</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="nam">instruction</span><span class="op">=</span><span class="nam">s</span><span class="op">[</span><span class="str">'text'</span><span class="op">]</span><span class="op">,</span> <span class="nam">name</span><span class="op">=</span><span class="nam">s</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="nam">instruction</span><span class="op">=</span><span class="nam">s</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">ingredients_added</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">500</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">=</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">+</span> <span class="str">'\n\n'</span> <span class="op">+</span> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="nam">ingredients_added</span> <span class="op">=</span> <span class="key">True</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'recipeIngredient'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">food</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="key">if</span> <span class="str">'nutrition'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> <span class="nam">nutrition</span> <span class="op">=</span> <span class="op">{</span><span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="key">if</span> <span class="str">'calories'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutrition'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="nam">nutrition</span><span class="op">[</span><span class="str">'calories'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">re</span><span class="op">.</span><span class="nam">search</span><span class="op">(</span><span class="str">r'\d+'</span><span class="op">,</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutrition'</span><span class="op">]</span><span class="op">[</span><span class="str">'calories'</span><span class="op">]</span><span class="op">)</span><span class="op">.</span><span class="nam">group</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> <span class="key">if</span> <span class="str">'proteinContent'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutrition'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> <span class="nam">nutrition</span><span class="op">[</span><span class="str">'proteins'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">re</span><span class="op">.</span><span class="nam">search</span><span class="op">(</span><span class="str">r'\d+'</span><span class="op">,</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutrition'</span><span class="op">]</span><span class="op">[</span><span class="str">'proteinContent'</span><span class="op">]</span><span class="op">)</span><span class="op">.</span><span class="nam">group</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> <span class="key">if</span> <span class="str">'fatContent'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutrition'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="nam">nutrition</span><span class="op">[</span><span class="str">'fats'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">re</span><span class="op">.</span><span class="nam">search</span><span class="op">(</span><span class="str">r'\d+'</span><span class="op">,</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutrition'</span><span class="op">]</span><span class="op">[</span><span class="str">'fatContent'</span><span class="op">]</span><span class="op">)</span><span class="op">.</span><span class="nam">group</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="key">if</span> <span class="str">'carbohydrateContent'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutrition'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> <span class="nam">nutrition</span><span class="op">[</span><span class="str">'carbohydrates'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">re</span><span class="op">.</span><span class="nam">search</span><span class="op">(</span><span class="str">r'\d+'</span><span class="op">,</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutrition'</span><span class="op">]</span><span class="op">[</span><span class="str">'carbohydrateContent'</span><span class="op">]</span><span class="op">)</span><span class="op">.</span><span class="nam">group</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="key">if</span> <span class="nam">nutrition</span> <span class="op">!=</span> <span class="op">{</span><span class="op">}</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">nutrition</span> <span class="op">=</span> <span class="nam">NutritionInformation</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="op">**</span><span class="nam">nutrition</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> <span class="key">for</span> <span class="nam">f</span> <span class="key">in</span> <span class="nam">self</span><span class="op">.</span><span class="nam">files</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"> <span class="key">if</span> <span class="str">'.zip'</span> <span class="key">in</span> <span class="nam">f</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"> <span class="nam">import_zip</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">f</span><span class="op">[</span><span class="str">'file'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t100" href="#t100">100</a></span><span class="t"> <span class="key">for</span> <span class="nam">z</span> <span class="key">in</span> <span class="nam">import_zip</span><span class="op">.</span><span class="nam">filelist</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t101" href="#t101">101</a></span><span class="t"> <span class="key">if</span> <span class="nam">re</span><span class="op">.</span><span class="nam">match</span><span class="op">(</span><span class="str">f'^(.)+{recipe.name}/full.jpg$'</span><span class="op">,</span> <span class="nam">z</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t102" href="#t102">102</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">import_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="nam">z</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span><span class="op">)</span><span class="op">,</span> <span class="nam">filetype</span><span class="op">=</span><span class="nam">get_filetype</span><span class="op">(</span><span class="nam">z</span><span class="op">.</span><span class="nam">filename</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t103" href="#t103">103</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t104" href="#t104">104</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t105" href="#t105">105</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t106" href="#t106">106</a></span><span class="t"> <span class="key">def</span> <span class="nam">formatTime</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">min</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t107" href="#t107">107</a></span><span class="t"> <span class="nam">h</span> <span class="op">=</span> <span class="nam">min</span> <span class="op">//</span> <span class="num">60</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t108" href="#t108">108</a></span><span class="t"> <span class="nam">m</span> <span class="op">=</span> <span class="nam">min</span> <span class="op">%</span> <span class="num">60</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t109" href="#t109">109</a></span><span class="t"> <span class="key">return</span> <span class="str">f'PT{h}H{m}M0S'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t110" href="#t110">110</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t111" href="#t111">111</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t112" href="#t112">112</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t113" href="#t113">113</a></span><span class="t"> <span class="nam">export</span> <span class="op">=</span> <span class="op">{</span><span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t114" href="#t114">114</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">name</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t115" href="#t115">115</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">description</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t116" href="#t116">116</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'url'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">source_url</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t117" href="#t117">117</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'prepTime'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">formatTime</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t118" href="#t118">118</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'cookTime'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">formatTime</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">waiting_time</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t119" href="#t119">119</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'totalTime'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">formatTime</span><span class="op">(</span><span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span> <span class="op">+</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">waiting_time</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t120" href="#t120">120</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'recipeYield'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t121" href="#t121">121</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'image'</span><span class="op">]</span> <span class="op">=</span> <span class="str">f'/Recipes/{recipe.name}/full.jpg'</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t122" href="#t122">122</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'imageUrl'</span><span class="op">]</span> <span class="op">=</span> <span class="str">f'/Recipes/{recipe.name}/full.jpg'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t123" href="#t123">123</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t124" href="#t124">124</a></span><span class="t"> <span class="nam">recipeKeyword</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t125" href="#t125">125</a></span><span class="t"> <span class="key">for</span> <span class="nam">k</span> <span class="key">in</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">all</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t126" href="#t126">126</a></span><span class="t"> <span class="nam">recipeKeyword</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">k</span><span class="op">.</span><span class="nam">name</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t127" href="#t127">127</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t128" href="#t128">128</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'keywords'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">recipeKeyword</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t129" href="#t129">129</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t130" href="#t130">130</a></span><span class="t"> <span class="nam">recipeInstructions</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t131" href="#t131">131</a></span><span class="t"> <span class="nam">recipeIngredient</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t132" href="#t132">132</a></span><span class="t"> <span class="key">for</span> <span class="nam">s</span> <span class="key">in</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">all</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t133" href="#t133">133</a></span><span class="t"> <span class="nam">recipeInstructions</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">s</span><span class="op">.</span><span class="nam">instruction</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t134" href="#t134">134</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t135" href="#t135">135</a></span><span class="t"> <span class="key">for</span> <span class="nam">i</span> <span class="key">in</span> <span class="nam">s</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">all</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t136" href="#t136">136</a></span><span class="t"> <span class="nam">recipeIngredient</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="str">f'{float(i.amount)} {i.unit} {i.food}'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t137" href="#t137">137</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t138" href="#t138">138</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'recipeIngredient'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">recipeIngredient</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t139" href="#t139">139</a></span><span class="t"> <span class="nam">export</span><span class="op">[</span><span class="str">'recipeInstructions'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">recipeInstructions</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t140" href="#t140">140</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t141" href="#t141">141</a></span><span class="t"> <span class="key">return</span> <span class="str">"recipe.json"</span><span class="op">,</span> <span class="nam">json</span><span class="op">.</span><span class="nam">dumps</span><span class="op">(</span><span class="nam">export</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t142" href="#t142">142</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t143" href="#t143">143</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_files_from_recipes</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipes</span><span class="op">,</span> <span class="nam">el</span><span class="op">,</span> <span class="nam">cookie</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t144" href="#t144">144</a></span><span class="t"> <span class="nam">export_zip_stream</span> <span class="op">=</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t145" href="#t145">145</a></span><span class="t"> <span class="nam">export_zip_obj</span> <span class="op">=</span> <span class="nam">ZipFile</span><span class="op">(</span><span class="nam">export_zip_stream</span><span class="op">,</span> <span class="str">'w'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t146" href="#t146">146</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t147" href="#t147">147</a></span><span class="t"> <span class="key">for</span> <span class="nam">recipe</span> <span class="key">in</span> <span class="nam">recipes</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t148" href="#t148">148</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">internal</span> <span class="key">and</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">space</span> <span class="op">==</span> <span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t149" href="#t149">149</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t150" href="#t150">150</a></span><span class="t"> <span class="nam">recipe_stream</span> <span class="op">=</span> <span class="nam">StringIO</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t151" href="#t151">151</a></span><span class="t"> <span class="nam">filename</span><span class="op">,</span> <span class="nam">data</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t152" href="#t152">152</a></span><span class="t"> <span class="nam">recipe_stream</span><span class="op">.</span><span class="nam">write</span><span class="op">(</span><span class="nam">data</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t153" href="#t153">153</a></span><span class="t"> <span class="nam">export_zip_obj</span><span class="op">.</span><span class="nam">writestr</span><span class="op">(</span><span class="str">f'{recipe.name}/{filename}'</span><span class="op">,</span> <span class="nam">recipe_stream</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t154" href="#t154">154</a></span><span class="t"> <span class="nam">recipe_stream</span><span class="op">.</span><span class="nam">close</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t155" href="#t155">155</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t156" href="#t156">156</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t157" href="#t157">157</a></span><span class="t"> <span class="nam">imageByte</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">image</span><span class="op">.</span><span class="nam">file</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t158" href="#t158">158</a></span><span class="t"> <span class="nam">export_zip_obj</span><span class="op">.</span><span class="nam">writestr</span><span class="op">(</span><span class="str">f'{recipe.name}/full.jpg'</span><span class="op">,</span> <span class="nam">self</span><span class="op">.</span><span class="nam">getJPEG</span><span class="op">(</span><span class="nam">imageByte</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t159" href="#t159">159</a></span><span class="t"> <span class="nam">export_zip_obj</span><span class="op">.</span><span class="nam">writestr</span><span class="op">(</span><span class="str">f'{recipe.name}/thumb.jpg'</span><span class="op">,</span> <span class="nam">self</span><span class="op">.</span><span class="nam">getThumb</span><span class="op">(</span><span class="num">171</span><span class="op">,</span> <span class="nam">imageByte</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t160" href="#t160">160</a></span><span class="t"> <span class="nam">export_zip_obj</span><span class="op">.</span><span class="nam">writestr</span><span class="op">(</span><span class="str">f'{recipe.name}/thumb16.jpg'</span><span class="op">,</span> <span class="nam">self</span><span class="op">.</span><span class="nam">getThumb</span><span class="op">(</span><span class="num">16</span><span class="op">,</span> <span class="nam">imageByte</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t161" href="#t161">161</a></span><span class="t"> <span class="key">except</span> <span class="nam">ValueError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t162" href="#t162">162</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t163" href="#t163">163</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t164" href="#t164">164</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">exported_recipes</span> <span class="op">+=</span> <span class="num">1</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t165" href="#t165">165</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">msg</span> <span class="op">+=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_recipe_processed_msg</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t166" href="#t166">166</a></span><span class="t"> <span class="nam">el</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t167" href="#t167">167</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t168" href="#t168">168</a></span><span class="t"> <span class="nam">export_zip_obj</span><span class="op">.</span><span class="nam">close</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t169" href="#t169">169</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t170" href="#t170">170</a></span><span class="t"> <span class="key">return</span> <span class="op">[</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_export_file_name</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">export_zip_stream</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span><span class="op">]</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t171" href="#t171">171</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t172" href="#t172">172</a></span><span class="t"> <span class="key">def</span> <span class="nam">getJPEG</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">imageByte</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t173" href="#t173">173</a></span><span class="t"> <span class="nam">image</span> <span class="op">=</span> <span class="nam">Image</span><span class="op">.</span><span class="nam">open</span><span class="op">(</span><span class="nam">BytesIO</span><span class="op">(</span><span class="nam">imageByte</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t174" href="#t174">174</a></span><span class="t"> <span class="nam">image</span> <span class="op">=</span> <span class="nam">image</span><span class="op">.</span><span class="nam">convert</span><span class="op">(</span><span class="str">'RGB'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t175" href="#t175">175</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t176" href="#t176">176</a></span><span class="t"> <span class="nam">bytes</span> <span class="op">=</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t177" href="#t177">177</a></span><span class="t"> <span class="nam">image</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="nam">bytes</span><span class="op">,</span> <span class="str">"JPEG"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t178" href="#t178">178</a></span><span class="t"> <span class="key">return</span> <span class="nam">bytes</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t179" href="#t179">179</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t180" href="#t180">180</a></span><span class="t"> <span class="key">def</span> <span class="nam">getThumb</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">size</span><span class="op">,</span> <span class="nam">imageByte</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t181" href="#t181">181</a></span><span class="t"> <span class="nam">image</span> <span class="op">=</span> <span class="nam">Image</span><span class="op">.</span><span class="nam">open</span><span class="op">(</span><span class="nam">BytesIO</span><span class="op">(</span><span class="nam">imageByte</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t182" href="#t182">182</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t183" href="#t183">183</a></span><span class="t"> <span class="nam">w</span><span class="op">,</span> <span class="nam">h</span> <span class="op">=</span> <span class="nam">image</span><span class="op">.</span><span class="nam">size</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t184" href="#t184">184</a></span><span class="t"> <span class="nam">m</span> <span class="op">=</span> <span class="nam">min</span><span class="op">(</span><span class="nam">w</span><span class="op">,</span> <span class="nam">h</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t185" href="#t185">185</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t186" href="#t186">186</a></span><span class="t"> <span class="nam">image</span> <span class="op">=</span> <span class="nam">image</span><span class="op">.</span><span class="nam">crop</span><span class="op">(</span><span class="op">(</span><span class="op">(</span><span class="nam">w</span> <span class="op">-</span> <span class="nam">m</span><span class="op">)</span> <span class="op">//</span> <span class="num">2</span><span class="op">,</span> <span class="op">(</span><span class="nam">h</span> <span class="op">-</span> <span class="nam">m</span><span class="op">)</span> <span class="op">//</span> <span class="num">2</span><span class="op">,</span> <span class="op">(</span><span class="nam">w</span> <span class="op">+</span> <span class="nam">m</span><span class="op">)</span> <span class="op">//</span> <span class="num">2</span><span class="op">,</span> <span class="op">(</span><span class="nam">h</span> <span class="op">+</span> <span class="nam">m</span><span class="op">)</span> <span class="op">//</span> <span class="num">2</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t187" href="#t187">187</a></span><span class="t"> <span class="nam">image</span> <span class="op">=</span> <span class="nam">image</span><span class="op">.</span><span class="nam">resize</span><span class="op">(</span><span class="op">[</span><span class="nam">size</span><span class="op">,</span> <span class="nam">size</span><span class="op">]</span><span class="op">,</span> <span class="nam">Image</span><span class="op">.</span><span class="nam">Resampling</span><span class="op">.</span><span class="nam">LANCZOS</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t188" href="#t188">188</a></span><span class="t"> <span class="nam">image</span> <span class="op">=</span> <span class="nam">image</span><span class="op">.</span><span class="nam">convert</span><span class="op">(</span><span class="str">'RGB'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t189" href="#t189">189</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t190" href="#t190">190</a></span><span class="t"> <span class="nam">bytes</span> <span class="op">=</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t191" href="#t191">191</a></span><span class="t"> <span class="nam">image</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="nam">bytes</span><span class="op">,</span> <span class="str">"JPEG"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t192" href="#t192">192</a></span><span class="t"> <span class="key">return</span> <span class="nam">bytes</span><span class="op">.</span><span class="nam">getvalue</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_melarecipes_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_openeats_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,226 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/openeats.py: 11%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/openeats.py</b>:
|
||||
<span class="pc_cov">11%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">81 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">9<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">72<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_nextcloud_cookbook_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_paprika_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">json</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">from</span> <span class="nam">django</span><span class="op">.</span><span class="nam">utils</span><span class="op">.</span><span class="nam">translation</span> <span class="key">import</span> <span class="nam">gettext</span> <span class="key">as</span> <span class="nam">_</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Comment</span><span class="op">,</span> <span class="nam">CookLog</span><span class="op">,</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Keyword</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">class</span> <span class="nam">OpenEats</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"> <span class="nam">description</span> <span class="op">=</span> <span class="nam">file</span><span class="op">[</span><span class="str">'info'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> <span class="nam">description_max_length</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">_meta</span><span class="op">.</span><span class="nam">get_field</span><span class="op">(</span><span class="str">'description'</span><span class="op">)</span><span class="op">.</span><span class="nam">max_length</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">description</span><span class="op">)</span> <span class="op">></span> <span class="nam">description_max_length</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> <span class="nam">description</span> <span class="op">=</span> <span class="nam">description</span><span class="op">[</span><span class="num">0</span><span class="op">:</span><span class="nam">description_max_length</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">file</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">description</span><span class="op">=</span><span class="nam">description</span><span class="op">,</span> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="nam">servings</span><span class="op">=</span><span class="nam">file</span><span class="op">[</span><span class="str">'servings'</span><span class="op">]</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">waiting_time</span><span class="op">=</span><span class="nam">file</span><span class="op">[</span><span class="str">'cook_time'</span><span class="op">]</span><span class="op">,</span> <span class="nam">working_time</span><span class="op">=</span><span class="nam">file</span><span class="op">[</span><span class="str">'prep_time'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="nam">instructions</span> <span class="op">=</span> <span class="str">''</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="key">if</span> <span class="nam">file</span><span class="op">[</span><span class="str">"directions"</span><span class="op">]</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="nam">instructions</span> <span class="op">+=</span> <span class="nam">file</span><span class="op">[</span><span class="str">"directions"</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="key">if</span> <span class="nam">file</span><span class="op">[</span><span class="str">"source"</span><span class="op">]</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> <span class="nam">instructions</span> <span class="op">+=</span> <span class="str">'\n'</span> <span class="op">+</span> <span class="nam">_</span><span class="op">(</span><span class="str">'Recipe source:'</span><span class="op">)</span> <span class="op">+</span> <span class="str">f'[{file["source"]}]({file["source"]})'</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="nam">cuisine_keyword</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="str">"Cuisine"</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> <span class="key">if</span> <span class="nam">file</span><span class="op">[</span><span class="str">"cuisine"</span><span class="op">]</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="nam">keyword</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">file</span><span class="op">[</span><span class="str">"cuisine"</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="key">if</span> <span class="nam">created</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="nam">keyword</span><span class="op">.</span><span class="nam">move</span><span class="op">(</span><span class="nam">cuisine_keyword</span><span class="op">,</span> <span class="nam">pos</span><span class="op">=</span><span class="str">"last-child"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">course_keyword</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="str">"Course"</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="key">if</span> <span class="nam">file</span><span class="op">[</span><span class="str">"course"</span><span class="op">]</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="nam">keyword</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">file</span><span class="op">[</span><span class="str">"course"</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">if</span> <span class="nam">created</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="nam">keyword</span><span class="op">.</span><span class="nam">move</span><span class="op">(</span><span class="nam">course_keyword</span><span class="op">,</span> <span class="nam">pos</span><span class="op">=</span><span class="str">"last-child"</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="key">for</span> <span class="nam">tag</span> <span class="key">in</span> <span class="nam">file</span><span class="op">[</span><span class="str">"tags"</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">keyword</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">tag</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="key">for</span> <span class="nam">comment</span> <span class="key">in</span> <span class="nam">file</span><span class="op">[</span><span class="str">'comments'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">Comment</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">recipe</span><span class="op">=</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">text</span><span class="op">=</span><span class="nam">comment</span><span class="op">[</span><span class="str">'text'</span><span class="op">]</span><span class="op">,</span> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="nam">CookLog</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">recipe</span><span class="op">=</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">rating</span><span class="op">=</span><span class="nam">comment</span><span class="op">[</span><span class="str">'rating'</span><span class="op">]</span><span class="op">,</span> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="key">if</span> <span class="nam">file</span><span class="op">[</span><span class="str">"photo"</span><span class="op">]</span> <span class="op">!=</span> <span class="str">''</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">image</span> <span class="op">=</span> <span class="str">f'recipes/openeats-import/{file["photo"]}'</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span><span class="nam">instruction</span><span class="op">=</span><span class="nam">instructions</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">file</span><span class="op">[</span><span class="str">'ingredients'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">[</span><span class="str">'food'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">[</span><span class="str">'unit'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">[</span><span class="str">'amount'</span><span class="op">]</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="key">def</span> <span class="nam">split_recipe_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="nam">recipe_json</span> <span class="op">=</span> <span class="nam">json</span><span class="op">.</span><span class="nam">loads</span><span class="op">(</span><span class="nam">file</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="nam">recipe_dict</span> <span class="op">=</span> <span class="op">{</span><span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">ingredient_group_dict</span> <span class="op">=</span> <span class="op">{</span><span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="nam">cuisine_group_dict</span> <span class="op">=</span> <span class="op">{</span><span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="nam">course_group_dict</span> <span class="op">=</span> <span class="op">{</span><span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="nam">tag_group_dict</span> <span class="op">=</span> <span class="op">{</span><span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> <span class="key">for</span> <span class="nam">o</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> <span class="key">if</span> <span class="nam">o</span><span class="op">[</span><span class="str">'model'</span><span class="op">]</span> <span class="op">==</span> <span class="str">'recipe.recipe'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="nam">recipe_dict</span><span class="op">[</span><span class="nam">o</span><span class="op">[</span><span class="str">'pk'</span><span class="op">]</span><span class="op">]</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> <span class="str">'name'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'title'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> <span class="str">'info'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'info'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="str">'directions'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'directions'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="str">'source'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'source'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> <span class="str">'prep_time'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'prep_time'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> <span class="str">'cook_time'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'cook_time'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> <span class="str">'servings'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'servings'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="str">'ingredients'</span><span class="op">:</span> <span class="op">[</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="str">'photo'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'photo'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> <span class="str">'cuisine'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'cuisine'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> <span class="str">'course'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'course'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="str">'tags'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'tags'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> <span class="str">'comments'</span><span class="op">:</span> <span class="op">[</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> <span class="key">if</span> <span class="nam">o</span><span class="op">[</span><span class="str">'model'</span><span class="op">]</span> <span class="op">==</span> <span class="str">'ingredient.ingredientgroup'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> <span class="nam">ingredient_group_dict</span><span class="op">[</span><span class="nam">o</span><span class="op">[</span><span class="str">'pk'</span><span class="op">]</span><span class="op">]</span> <span class="op">=</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'recipe'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> <span class="key">if</span> <span class="nam">o</span><span class="op">[</span><span class="str">'model'</span><span class="op">]</span> <span class="op">==</span> <span class="str">'recipe_groups.cuisine'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> <span class="nam">cuisine_group_dict</span><span class="op">[</span><span class="nam">o</span><span class="op">[</span><span class="str">'pk'</span><span class="op">]</span><span class="op">]</span> <span class="op">=</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'title'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"> <span class="key">if</span> <span class="nam">o</span><span class="op">[</span><span class="str">'model'</span><span class="op">]</span> <span class="op">==</span> <span class="str">'recipe_groups.course'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"> <span class="nam">course_group_dict</span><span class="op">[</span><span class="nam">o</span><span class="op">[</span><span class="str">'pk'</span><span class="op">]</span><span class="op">]</span> <span class="op">=</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'title'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t100" href="#t100">100</a></span><span class="t"> <span class="key">if</span> <span class="nam">o</span><span class="op">[</span><span class="str">'model'</span><span class="op">]</span> <span class="op">==</span> <span class="str">'recipe_groups.tag'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t101" href="#t101">101</a></span><span class="t"> <span class="nam">tag_group_dict</span><span class="op">[</span><span class="nam">o</span><span class="op">[</span><span class="str">'pk'</span><span class="op">]</span><span class="op">]</span> <span class="op">=</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'title'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t102" href="#t102">102</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t103" href="#t103">103</a></span><span class="t"> <span class="key">for</span> <span class="nam">o</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t104" href="#t104">104</a></span><span class="t"> <span class="key">if</span> <span class="nam">o</span><span class="op">[</span><span class="str">'model'</span><span class="op">]</span> <span class="op">==</span> <span class="str">'rating.rating'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t105" href="#t105">105</a></span><span class="t"> <span class="nam">recipe_dict</span><span class="op">[</span><span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'recipe'</span><span class="op">]</span><span class="op">]</span><span class="op">[</span><span class="str">"comments"</span><span class="op">]</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t106" href="#t106">106</a></span><span class="t"> <span class="str">"text"</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'comment'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t107" href="#t107">107</a></span><span class="t"> <span class="str">"rating"</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'rating'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t108" href="#t108">108</a></span><span class="t"> <span class="op">}</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t109" href="#t109">109</a></span><span class="t"> <span class="key">if</span> <span class="nam">o</span><span class="op">[</span><span class="str">'model'</span><span class="op">]</span> <span class="op">==</span> <span class="str">'ingredient.ingredient'</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t110" href="#t110">110</a></span><span class="t"> <span class="nam">ingredient</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t111" href="#t111">111</a></span><span class="t"> <span class="str">'food'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'title'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t112" href="#t112">112</a></span><span class="t"> <span class="str">'unit'</span><span class="op">:</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'measurement'</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t113" href="#t113">113</a></span><span class="t"> <span class="str">'amount'</span><span class="op">:</span> <span class="nam">round</span><span class="op">(</span><span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'numerator'</span><span class="op">]</span> <span class="op">/</span> <span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'denominator'</span><span class="op">]</span><span class="op">,</span> <span class="num">2</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t114" href="#t114">114</a></span><span class="t"> <span class="op">}</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t115" href="#t115">115</a></span><span class="t"> <span class="nam">recipe_dict</span><span class="op">[</span><span class="nam">ingredient_group_dict</span><span class="op">[</span><span class="nam">o</span><span class="op">[</span><span class="str">'fields'</span><span class="op">]</span><span class="op">[</span><span class="str">'ingredient_group'</span><span class="op">]</span><span class="op">]</span><span class="op">]</span><span class="op">[</span><span class="str">'ingredients'</span><span class="op">]</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t116" href="#t116">116</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t117" href="#t117">117</a></span><span class="t"> <span class="key">for</span> <span class="nam">k</span><span class="op">,</span> <span class="nam">r</span> <span class="key">in</span> <span class="nam">recipe_dict</span><span class="op">.</span><span class="nam">items</span><span class="op">(</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t118" href="#t118">118</a></span><span class="t"> <span class="key">if</span> <span class="nam">r</span><span class="op">[</span><span class="str">"cuisine"</span><span class="op">]</span> <span class="key">in</span> <span class="nam">cuisine_group_dict</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t119" href="#t119">119</a></span><span class="t"> <span class="nam">r</span><span class="op">[</span><span class="str">"cuisine"</span><span class="op">]</span> <span class="op">=</span> <span class="nam">cuisine_group_dict</span><span class="op">[</span><span class="nam">r</span><span class="op">[</span><span class="str">"cuisine"</span><span class="op">]</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t120" href="#t120">120</a></span><span class="t"> <span class="key">if</span> <span class="nam">r</span><span class="op">[</span><span class="str">"course"</span><span class="op">]</span> <span class="key">in</span> <span class="nam">course_group_dict</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t121" href="#t121">121</a></span><span class="t"> <span class="nam">r</span><span class="op">[</span><span class="str">"course"</span><span class="op">]</span> <span class="op">=</span> <span class="nam">course_group_dict</span><span class="op">[</span><span class="nam">r</span><span class="op">[</span><span class="str">"course"</span><span class="op">]</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t122" href="#t122">122</a></span><span class="t"> <span class="key">for</span> <span class="nam">index</span> <span class="key">in</span> <span class="nam">range</span><span class="op">(</span><span class="nam">len</span><span class="op">(</span><span class="nam">r</span><span class="op">[</span><span class="str">"tags"</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t123" href="#t123">123</a></span><span class="t"> <span class="key">if</span> <span class="nam">r</span><span class="op">[</span><span class="str">"tags"</span><span class="op">]</span><span class="op">[</span><span class="nam">index</span><span class="op">]</span> <span class="key">in</span> <span class="nam">tag_group_dict</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t124" href="#t124">124</a></span><span class="t"> <span class="nam">r</span><span class="op">[</span><span class="str">"tags"</span><span class="op">]</span><span class="op">[</span><span class="nam">index</span><span class="op">]</span> <span class="op">=</span> <span class="nam">tag_group_dict</span><span class="op">[</span><span class="nam">r</span><span class="op">[</span><span class="str">"tags"</span><span class="op">]</span><span class="op">[</span><span class="nam">index</span><span class="op">]</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t125" href="#t125">125</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t126" href="#t126">126</a></span><span class="t"> <span class="key">return</span> <span class="nam">list</span><span class="op">(</span><span class="nam">recipe_dict</span><span class="op">.</span><span class="nam">values</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t127" href="#t127">127</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t128" href="#t128">128</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t129" href="#t129">129</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_nextcloud_cookbook_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_paprika_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,194 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Coverage for cookbook/integration/paprika.py: 21%</title>
|
||||
<link rel="icon" sizes="32x32" href="favicon_32.png">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
<script type="text/javascript" src="coverage_html.js" defer></script>
|
||||
</head>
|
||||
<body class="pyfile">
|
||||
<header>
|
||||
<div class="content">
|
||||
<h1>
|
||||
<span class="text">Coverage for </span><b>cookbook/integration/paprika.py</b>:
|
||||
<span class="pc_cov">21%</span>
|
||||
</h1>
|
||||
<aside id="help_panel_wrapper">
|
||||
<input id="help_panel_state" type="checkbox">
|
||||
<label for="help_panel_state">
|
||||
<img id="keyboard_icon" src="keybd_closed.png" alt="Show/hide keyboard shortcuts" />
|
||||
</label>
|
||||
<div id="help_panel">
|
||||
<p class="legend">Shortcuts on this page</p>
|
||||
<div class="keyhelp">
|
||||
<p>
|
||||
<kbd>r</kbd>
|
||||
<kbd>m</kbd>
|
||||
<kbd>x</kbd>
|
||||
toggle line displays
|
||||
</p>
|
||||
<p>
|
||||
<kbd>j</kbd>
|
||||
<kbd>k</kbd>
|
||||
next/prev highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>0</kbd> (zero) top of page
|
||||
</p>
|
||||
<p>
|
||||
<kbd>1</kbd> (one) first highlighted chunk
|
||||
</p>
|
||||
<p>
|
||||
<kbd>[</kbd>
|
||||
<kbd>]</kbd>
|
||||
prev/next file
|
||||
</p>
|
||||
<p>
|
||||
<kbd>u</kbd> up to the index
|
||||
</p>
|
||||
<p>
|
||||
<kbd>?</kbd> show/hide this help
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<h2>
|
||||
<span class="text">70 statements </span>
|
||||
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">15<span class="text"> run</span></button>
|
||||
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">55<span class="text"> missing</span></button>
|
||||
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
|
||||
</h2>
|
||||
<p class="text">
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_openeats_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_pdfexport_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
<aside class="hidden">
|
||||
<button type="button" class="button_next_chunk" data-shortcut="j"/>
|
||||
<button type="button" class="button_prev_chunk" data-shortcut="k"/>
|
||||
<button type="button" class="button_top_of_page" data-shortcut="0"/>
|
||||
<button type="button" class="button_first_chunk" data-shortcut="1"/>
|
||||
<button type="button" class="button_prev_file" data-shortcut="["/>
|
||||
<button type="button" class="button_next_file" data-shortcut="]"/>
|
||||
<button type="button" class="button_to_index" data-shortcut="u"/>
|
||||
<button type="button" class="button_show_hide_help" data-shortcut="?"/>
|
||||
</aside>
|
||||
</div>
|
||||
</header>
|
||||
<main id="source">
|
||||
<p class="run"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="key">import</span> <span class="nam">base64</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"><span class="key">import</span> <span class="nam">gzip</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="key">import</span> <span class="nam">json</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="key">import</span> <span class="nam">re</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"><span class="key">from</span> <span class="nam">gettext</span> <span class="key">import</span> <span class="nam">gettext</span> <span class="key">as</span> <span class="nam">_</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="key">from</span> <span class="nam">io</span> <span class="key">import</span> <span class="nam">BytesIO</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="key">import</span> <span class="nam">requests</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"><span class="key">import</span> <span class="nam">validators</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">ingredient_parser</span> <span class="key">import</span> <span class="nam">IngredientParser</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">recipe_url_import</span> <span class="key">import</span> <span class="nam">parse_servings</span><span class="op">,</span> <span class="nam">parse_servings_text</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">integration</span><span class="op">.</span><span class="nam">integration</span> <span class="key">import</span> <span class="nam">Integration</span> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"><span class="key">from</span> <span class="nam">cookbook</span><span class="op">.</span><span class="nam">models</span> <span class="key">import</span> <span class="nam">Ingredient</span><span class="op">,</span> <span class="nam">Keyword</span><span class="op">,</span> <span class="nam">Recipe</span><span class="op">,</span> <span class="nam">Step</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"><span class="key">class</span> <span class="nam">Paprika</span><span class="op">(</span><span class="nam">Integration</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_file_from_recipe</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">recipe</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">raise</span> <span class="nam">NotImplementedError</span><span class="op">(</span><span class="str">'Method not implemented in storage integration'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="run"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="key">def</span> <span class="nam">get_recipe_from_file</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">file</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="key">with</span> <span class="nam">gzip</span><span class="op">.</span><span class="nam">open</span><span class="op">(</span><span class="nam">file</span><span class="op">,</span> <span class="str">'r'</span><span class="op">)</span> <span class="key">as</span> <span class="nam">recipe_zip</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">recipe_json</span> <span class="op">=</span> <span class="nam">json</span><span class="op">.</span><span class="nam">loads</span><span class="op">(</span><span class="nam">recipe_zip</span><span class="op">.</span><span class="nam">read</span><span class="op">(</span><span class="op">)</span><span class="op">.</span><span class="nam">decode</span><span class="op">(</span><span class="str">"utf-8"</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> <span class="nam">recipe</span> <span class="op">=</span> <span class="nam">Recipe</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> <span class="nam">name</span><span class="op">=</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'name'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">created_by</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">,</span> <span class="nam">internal</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> <span class="key">if</span> <span class="str">'description'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">description</span> <span class="op">=</span> <span class="str">''</span> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">500</span> <span class="key">else</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> <span class="key">if</span> <span class="str">'servings'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings</span> <span class="op">=</span> <span class="nam">parse_servings</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'servings'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">servings_text</span> <span class="op">=</span> <span class="nam">parse_servings_text</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'servings'</span><span class="op">]</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'cook_time'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">waiting_time</span> <span class="op">=</span> <span class="nam">re</span><span class="op">.</span><span class="nam">findall</span><span class="op">(</span><span class="str">r'\d+'</span><span class="op">,</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'cook_time'</span><span class="op">]</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'prep_time'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">working_time</span> <span class="op">=</span> <span class="nam">re</span><span class="op">.</span><span class="nam">findall</span><span class="op">(</span><span class="str">r'\d+'</span><span class="op">,</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'prep_time'</span><span class="op">]</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="nam">instructions</span> <span class="op">=</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'directions'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'notes'</span><span class="op">]</span> <span class="key">and</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'notes'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="nam">instructions</span> <span class="op">+=</span> <span class="str">'\n\n### '</span> <span class="op">+</span> <span class="nam">_</span><span class="op">(</span><span class="str">'Notes'</span><span class="op">)</span> <span class="op">+</span> <span class="str">' \n'</span> <span class="op">+</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'notes'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutritional_info'</span><span class="op">]</span> <span class="key">and</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutritional_info'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="nam">instructions</span> <span class="op">+=</span> <span class="str">'\n\n### '</span> <span class="op">+</span> <span class="nam">_</span><span class="op">(</span><span class="str">'Nutritional Information'</span><span class="op">)</span> <span class="op">+</span> <span class="str">' \n'</span> <span class="op">+</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'nutritional_info'</span><span class="op">]</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'source'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span> <span class="key">or</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'source_url'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> <span class="nam">instructions</span> <span class="op">+=</span> <span class="str">'\n\n### '</span> <span class="op">+</span> <span class="nam">_</span><span class="op">(</span><span class="str">'Source'</span><span class="op">)</span> <span class="op">+</span> <span class="str">' \n'</span> <span class="op">+</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'source'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">+</span> <span class="str">' \n'</span> <span class="op">+</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'source_url'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="key">except</span> <span class="nam">AttributeError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="nam">step</span> <span class="op">=</span> <span class="nam">Step</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="nam">instruction</span><span class="op">=</span><span class="nam">instructions</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> <span class="nam">show_ingredients_table</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">user</span><span class="op">.</span><span class="nam">userpreference</span><span class="op">.</span><span class="nam">show_step_ingredients</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="key">if</span> <span class="str">'description'</span> <span class="key">in</span> <span class="nam">recipe_json</span> <span class="key">and</span> <span class="nam">len</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">500</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> <span class="op">=</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'description'</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> <span class="op">+</span> <span class="str">'\n\n'</span> <span class="op">+</span> <span class="nam">step</span><span class="op">.</span><span class="nam">instruction</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="key">if</span> <span class="str">'categories'</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="key">for</span> <span class="nam">c</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'categories'</span><span class="op">]</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="nam">keyword</span><span class="op">,</span> <span class="nam">created</span> <span class="op">=</span> <span class="nam">Keyword</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">get_or_create</span><span class="op">(</span><span class="nam">name</span><span class="op">=</span><span class="nam">c</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">keywords</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">keyword</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="nam">ingredient_parser</span> <span class="op">=</span> <span class="nam">IngredientParser</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">,</span> <span class="key">True</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="key">for</span> <span class="nam">ingredient</span> <span class="key">in</span> <span class="nam">recipe_json</span><span class="op">[</span><span class="str">'ingredients'</span><span class="op">]</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">'\n'</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">></span> <span class="num">0</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> <span class="nam">amount</span><span class="op">,</span> <span class="nam">unit</span><span class="op">,</span> <span class="nam">food</span><span class="op">,</span> <span class="nam">note</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">parse</span><span class="op">(</span><span class="nam">ingredient</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> <span class="nam">f</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_food</span><span class="op">(</span><span class="nam">food</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"> <span class="nam">u</span> <span class="op">=</span> <span class="nam">ingredient_parser</span><span class="op">.</span><span class="nam">get_unit</span><span class="op">(</span><span class="nam">unit</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="nam">step</span><span class="op">.</span><span class="nam">ingredients</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">Ingredient</span><span class="op">.</span><span class="nam">objects</span><span class="op">.</span><span class="nam">create</span><span class="op">(</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> <span class="nam">food</span><span class="op">=</span><span class="nam">f</span><span class="op">,</span> <span class="nam">unit</span><span class="op">=</span><span class="nam">u</span><span class="op">,</span> <span class="nam">amount</span><span class="op">=</span><span class="nam">amount</span><span class="op">,</span> <span class="nam">note</span><span class="op">=</span><span class="nam">note</span><span class="op">,</span> <span class="nam">original_text</span><span class="op">=</span><span class="nam">ingredient</span><span class="op">,</span> <span class="nam">space</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">request</span><span class="op">.</span><span class="nam">space</span><span class="op">,</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"> <span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> <span class="key">except</span> <span class="nam">AttributeError</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> <span class="nam">recipe</span><span class="op">.</span><span class="nam">steps</span><span class="op">.</span><span class="nam">add</span><span class="op">(</span><span class="nam">step</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_json</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">"image_url"</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> <span class="nam">url</span> <span class="op">=</span> <span class="nam">recipe_json</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">"image_url"</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> <span class="key">if</span> <span class="nam">validators</span><span class="op">.</span><span class="nam">url</span><span class="op">(</span><span class="nam">url</span><span class="op">,</span> <span class="nam">public</span><span class="op">=</span><span class="key">True</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="nam">response</span> <span class="op">=</span> <span class="nam">requests</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="nam">url</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">response</span><span class="op">.</span><span class="nam">content</span><span class="op">)</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="key">except</span> <span class="nam">Exception</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> <span class="key">if</span> <span class="nam">recipe_json</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">"photo_data"</span><span class="op">,</span> <span class="key">None</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> <span class="nam">self</span><span class="op">.</span><span class="nam">import_recipe_image</span><span class="op">(</span><span class="nam">recipe</span><span class="op">,</span> <span class="nam">BytesIO</span><span class="op">(</span><span class="nam">base64</span><span class="op">.</span><span class="nam">b64decode</span><span class="op">(</span><span class="nam">recipe_json</span><span class="op">[</span><span class="str">'photo_data'</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="op">,</span> <span class="nam">filetype</span><span class="op">=</span><span class="str">'.jpeg'</span><span class="op">)</span> </span><span class="r"></span></p>
|
||||
<p class="pln"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> </span><span class="r"></span></p>
|
||||
<p class="mis show_mis"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> <span class="key">return</span> <span class="nam">recipe</span> </span><span class="r"></span></p>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="content">
|
||||
<p>
|
||||
<a id="prevFileLink" class="nav" href="d_37812bb4c19c71da_openeats_py.html">« prev</a>
|
||||
<a id="indexLink" class="nav" href="index.html">^ index</a>
|
||||
<a id="nextFileLink" class="nav" href="d_37812bb4c19c71da_pdfexport_py.html">» next</a>
|
||||
|
||||
<a class="nav" href="https://coverage.readthedocs.io/en/7.4.0">coverage.py v7.4.0</a>,
|
||||
created at 2023-12-28 15:03 +0100
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user