cuizin/cuizin/db.py

46 lines
1.2 KiB
Python

import base64
import requests
from peewee import (
Model, SqliteDatabase,
BlobField, CharField, IntegerField, TextField
)
from playhouse.shortcuts import model_to_dict
database = SqliteDatabase('recipes.db')
class Recipe(Model):
title = CharField()
author = CharField(null=True)
picture = BlobField(null=True)
short_description = TextField(null=True)
nb_person = None # TODO
preparation_time = IntegerField(null=True) # In minutes
cooking_time = IntegerField(null=True) # In minutes
ingredients = None # TODO
instructions = TextField()
comments = None # TODO
class Meta:
database = database
@staticmethod
def from_weboob(obj):
recipe = Recipe()
for field in ['title', 'author', 'picture_url', 'short_description',
'preparation_time', 'cooking_time', 'instructions']:
value = getattr(obj, field)
if value:
setattr(recipe, field, value)
recipe.picture = requests.get(obj.picture_url).content
return recipe
def to_dict(self):
serialized = model_to_dict(self)
serialized['picture'] = base64.b64encode(
serialized['picture']
).decode('utf-8')
return serialized