[cookboob] author field added

This commit is contained in:
Julien Veyssier 2013-03-25 02:39:41 +01:00 committed by Florent
commit d391d1a2d8
8 changed files with 32 additions and 2 deletions

View file

@ -50,6 +50,7 @@ class SevenFiftyGramsBackend(BaseBackend, ICapRecipe):
recipe.instructions = rec.instructions
recipe.ingredients = rec.ingredients
recipe.comments = rec.comments
recipe.author = rec.author
recipe.nb_person = rec.nb_person
recipe.cooking_time = rec.cooking_time
recipe.preparation_time = rec.preparation_time

View file

@ -61,6 +61,7 @@ class ResultsPage(BasePage):
recipe.nb_person = NotLoaded
recipe.cooking_time = NotLoaded
recipe.preparation_time = NotLoaded
recipe.author = NotLoaded
yield recipe
@ -75,6 +76,7 @@ class RecipePage(BasePage):
ingredients = NotAvailable
picture_url = NotAvailable
instructions = NotAvailable
author = NotAvailable
comments = []
title = unicode(self.parser.select(self.document.getroot(), 'head > title', 1).text.split(' - ')[1])
@ -120,6 +122,11 @@ class RecipePage(BasePage):
if u'| Répondre' in comtxt:
comtxt = comtxt.strip('0123456789').replace(u' | Répondre', '')
comments.append(comtxt)
links_author = self.parser.select(self.document.getroot(), 'p.auteur a.couleur_membre')
print links_author[0].text.strip()
if len(links_author) > 0:
author = unicode(links_author[0].text.strip())
recipe = Recipe(id, title)
recipe.preparation_time = preparation_time
@ -129,5 +136,6 @@ class RecipePage(BasePage):
recipe.instructions = instructions
recipe.picture_url = picture_url
recipe.comments = comments
recipe.author = author
recipe.thumbnail_url = NotLoaded
return recipe

View file

@ -57,6 +57,7 @@ class CuisineazBackend(BaseBackend, ICapRecipe):
recipe.instructions = rec.instructions
recipe.ingredients = rec.ingredients
recipe.comments = rec.comments
recipe.author = rec.author
recipe.nb_person = rec.nb_person
recipe.cooking_time = rec.cooking_time
recipe.preparation_time = rec.preparation_time

View file

@ -70,6 +70,7 @@ class ResultsPage(BasePage):
recipe.nb_person = NotLoaded
recipe.cooking_time = NotLoaded
recipe.preparation_time = NotLoaded
recipe.author = NotLoaded
yield recipe
@ -80,6 +81,7 @@ class RecipePage(BasePage):
title = NotAvailable
preparation_time = NotAvailable
cooking_time = NotAvailable
author = NotAvailable
nb_person = NotAvailable
ingredients = NotAvailable
picture_url = NotAvailable
@ -128,6 +130,10 @@ class RecipePage(BasePage):
comments.append('author: %s, date: %s, text: %s' % (
author, date, comtxt))
spans_author = self.parser.select(self.document.getroot(), 'span.author')
if len(spans_author) > 0:
author = unicode(spans_author[0].text_content().strip())
recipe = Recipe(id, title)
recipe.preparation_time = preparation_time
recipe.cooking_time = cooking_time
@ -136,5 +142,6 @@ class RecipePage(BasePage):
recipe.instructions = instructions
recipe.picture_url = picture_url
recipe.comments = comments
recipe.author = author
recipe.thumbnail_url = NotLoaded
return recipe

View file

@ -52,6 +52,7 @@ class MarmitonBackend(BaseBackend, ICapRecipe):
recipe.instructions = rec.instructions
recipe.ingredients = rec.ingredients
recipe.comments = rec.comments
recipe.author = rec.author
recipe.nb_person = rec.nb_person
recipe.cooking_time = rec.cooking_time
recipe.preparation_time = rec.preparation_time

View file

@ -49,6 +49,7 @@ class ResultsPage(BasePage):
recipe.thumbnail_url = thumbnail_url
recipe.short_description = short_description
recipe.instructions = NotLoaded
recipe.author = NotLoaded
recipe.ingredients = NotLoaded
recipe.nb_person = NotLoaded
recipe.cooking_time = NotLoaded
@ -101,4 +102,5 @@ class RecipePage(BasePage):
recipe.picture_url = picture_url
recipe.comments = comments
recipe.thumbnail_url = NotLoaded
recipe.author = NotAvailable
return recipe

View file

@ -37,6 +37,8 @@ class RecipeInfoFormatter(IFormatter):
def format_obj(self, obj, alias):
result = u'%s%s%s\n' % (self.BOLD, obj.title, self.NC)
result += 'ID: %s\n' % obj.fullid
if not empty(obj.author):
result += 'Author: %s\n' % obj.author
result += 'Preparation time: %smin\n' % obj.preparation_time
if not empty(obj.cooking_time):
result += 'Cooking time: %smin\n' % obj.cooking_time

View file

@ -31,6 +31,7 @@ class Recipe(CapBaseObject):
Recipe object.
"""
title = StringField('Title of the recipe')
author = StringField('Author name of the recipe')
thumbnail_url = StringField('Direct url to recipe thumbnail')
picture_url = StringField('Direct url to recipe picture')
short_description = StringField('Short description of a recipe')
@ -49,8 +50,15 @@ class Recipe(CapBaseObject):
"""
Export recipe to KRecipes XML string
"""
sauthor = u''
if not empty(self.author):
sauthor += '%s@' % self.author
if author == None:
author = 'Cookboob'
sauthor += 'Cookboob'
else:
sauthor += author
header = u'<?xml version="1.0" encoding="UTF-8" ?>\n'
initial_xml = '''\
<krecipes version='2.0-beta2' lang='fr' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='krecipes.xsd'>
@ -63,7 +71,7 @@ class Recipe(CapBaseObject):
title = ET.SubElement(desc, 'title')
title.text = self.title
authors = ET.SubElement(desc, 'author')
authors.text = author
authors.text = sauthor
eyield = ET.SubElement(desc, 'yield')
if not empty(self.nb_person):
amount = ET.SubElement(eyield, 'amount')