Documentation ¶
Index ¶
- func RegisterScraper(hostname string, fn model.Scraper)
- func Scrape(data *model.DataInput, r *model.Recipe) error
- func ScrapeArchanasKitchen(data *model.DataInput, r *model.Recipe) error
- func ScrapeCookstr(data *model.DataInput, r *model.Recipe) error
- func ScrapeFitMenCook(data *model.DataInput, r *model.Recipe) error
- func ScrapeGousto(data *model.DataInput, r *model.Recipe) error
- func ScrapeKitchenStories(data *model.DataInput, r *model.Recipe) error
- func ScrapeKptnCook(data *model.DataInput, r *model.Recipe) error
- func ScrapeMarleySpoon(data *model.DataInput, r *model.Recipe) error
- func ScrapeMob(data *model.DataInput, r *model.Recipe) error
- func ScrapeWhatsGabyCooking(data *model.DataInput, r *model.Recipe) error
- type GoustoData
- type KitchenStoriesRecipe
- type KitchenStoriesScript
- type KptnCookRecipe
- type MarleySpoonData
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterScraper ¶
func ScrapeArchanasKitchen ¶
Types ¶
type GoustoData ¶
type GoustoData struct { Status string `json:"status"` Data struct { Entry struct { URL string `json:"url"` Title string `json:"title"` Categories []struct { Title string `json:"title"` URL string `json:"url"` UID string `json:"uid"` } `json:"categories"` GoustoID string `json:"gousto_id"` GoustoUID string `json:"gousto_uid"` Media struct { Images []struct { Image string `json:"image"` Width int `json:"width"` } `json:"images"` } `json:"media"` Rating struct { Average float64 `json:"average"` Count int `json:"count"` } `json:"rating"` Description string `json:"description"` PrepTimes struct { For2 int `json:"for_2"` For4 int `json:"for_4"` } `json:"prep_times"` Cuisine struct { Slug string `json:"slug"` Title string `json:"title"` } `json:"cuisine"` Ingredients []struct { Label string `json:"label"` Title string `json:"title"` UID string `json:"uid"` Name string `json:"name"` Media struct { Images []struct { Image string `json:"image"` Width int `json:"width"` } `json:"images"` } `json:"media"` Allergens struct { Allergen []any `json:"allergen"` } `json:"allergens"` } `json:"ingredients"` Basics []struct { Title string `json:"title"` Slug string `json:"slug"` } `json:"basics"` CookingInstructions []struct { Instruction string `json:"instruction"` Order int `json:"order"` Media struct { Images []struct { Image string `json:"image"` Width int `json:"width"` } `json:"images"` } `json:"media"` } `json:"cooking_instructions"` Allergens []struct { Title string `json:"title"` Slug string `json:"slug"` } `json:"allergens"` Seo struct { Title string `json:"title"` Description string `json:"description"` Robots []any `json:"robots"` Canonical string `json:"canonical"` OpenGraphImage string `json:"open_graph_image"` } `json:"seo"` Tags []any `json:"tags"` UID string `json:"uid"` Version int `json:"_version"` NutritionalInformation struct { PerHundredGrams struct { EnergyKcal int `json:"energy_kcal"` EnergyKj int `json:"energy_kj"` FatMg int `json:"fat_mg"` FatSaturatesMg int `json:"fat_saturates_mg"` CarbsMg int `json:"carbs_mg"` CarbsSugarsMg int `json:"carbs_sugars_mg"` FibreMg int `json:"fibre_mg"` ProteinMg int `json:"protein_mg"` SaltMg int `json:"salt_mg"` NetWeightMg int `json:"net_weight_mg"` } `json:"per_hundred_grams"` PerPortion struct { EnergyKcal int `json:"energy_kcal"` EnergyKj int `json:"energy_kj"` FatMg int `json:"fat_mg"` FatSaturatesMg int `json:"fat_saturates_mg"` CarbsMg int `json:"carbs_mg"` CarbsSugarsMg int `json:"carbs_sugars_mg"` FibreMg int `json:"fibre_mg"` ProteinMg int `json:"protein_mg"` SaltMg int `json:"salt_mg"` NetWeightMg int `json:"net_weight_mg"` } `json:"per_portion"` } `json:"nutritional_information"` } `json:"entry"` } `json:"data"` }
type KitchenStoriesRecipe ¶
type KitchenStoriesRecipe struct { ID string `json:"id,omitempty"` Title string `json:"title,omitempty"` Slug string `json:"slug,omitempty"` Type string `json:"type,omitempty"` ContentID string `json:"content_id,omitempty"` Difficulty string `json:"difficulty,omitempty"` Duration struct { Preparation int `json:"preparation,omitempty"` Baking int `json:"baking,omitempty"` Resting int `json:"resting,omitempty"` } `json:"duration,omitempty"` Image struct { ID string `json:"id,omitempty"` Width int `json:"width,omitempty"` Height int `json:"height,omitempty"` URL string `json:"url,omitempty"` } `json:"image,omitempty"` Author struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Type string `json:"type,omitempty"` NewType string `json:"new_type,omitempty"` Slug string `json:"slug,omitempty"` Occupation string `json:"occupation,omitempty"` Description string `json:"description,omitempty"` Image struct { URL string `json:"url,omitempty"` } `json:"image,omitempty"` Website string `json:"website,omitempty"` BannerImage struct { URL string `json:"url,omitempty"` } `json:"banner_image,omitempty"` IsPremium bool `json:"is_premium,omitempty"` } `json:"author,omitempty"` Publishing struct { Created string `json:"created,omitempty"` Updated string `json:"updated,omitempty"` Published string `json:"published,omitempty"` State string `json:"state,omitempty"` } `json:"publishing,omitempty"` URL string `json:"url,omitempty"` UserReactions struct { Rating float64 `json:"rating,omitempty"` RatingCount int `json:"rating_count,omitempty"` ImagesCount int `json:"images_count,omitempty"` CommentsCount int `json:"comments_count,omitempty"` LikeCount int `json:"like_count,omitempty"` Quality float64 `json:"quality,omitempty"` } `json:"user_reactions,omitempty"` Servings struct { Amount int `json:"amount,omitempty"` Type string `json:"type,omitempty"` } `json:"servings,omitempty"` ChefsNote string `json:"chefs_note,omitempty"` Nutrition struct { Calories float64 `json:"calories,omitempty"` Fat float64 `json:"fat,omitempty"` Protein float64 `json:"protein,omitempty"` Carbohydrate float64 `json:"carbohydrate,omitempty"` } `json:"nutrition,omitempty"` Meta struct { Title string `json:"title,omitempty"` Description string `json:"description,omitempty"` Hreflang struct { En string `json:"en,omitempty"` De string `json:"de,omitempty"` } `json:"hreflang,omitempty"` } `json:"meta,omitempty"` Tags []struct { ID string `json:"id,omitempty"` Slug string `json:"slug,omitempty"` Title string `json:"title,omitempty"` Type string `json:"type,omitempty"` IsHidden bool `json:"is_hidden,omitempty"` } `json:"tags,omitempty"` Categories struct { Main struct { ID string `json:"id,omitempty"` Title string `json:"title,omitempty"` Slug string `json:"slug,omitempty"` Path []struct { ID string `json:"id,omitempty"` Title string `json:"title,omitempty"` Slug string `json:"slug,omitempty"` } `json:"path,omitempty"` } `json:"main,omitempty"` Additional []struct { ID string `json:"id,omitempty"` Title string `json:"title,omitempty"` Slug string `json:"slug,omitempty"` Path []struct { ID string `json:"id,omitempty"` Title string `json:"title,omitempty"` Slug string `json:"slug,omitempty"` } `json:"path,omitempty"` } `json:"additional,omitempty"` } `json:"categories,omitempty"` HowtoVideos []struct { ID string `json:"id,omitempty"` Title string `json:"title,omitempty"` Slug string `json:"slug,omitempty"` Type string `json:"type,omitempty"` ContentID string `json:"content_id,omitempty"` RemoteID string `json:"remote_id,omitempty"` URL string `json:"url,omitempty"` Width int `json:"width,omitempty"` Height int `json:"height,omitempty"` Duration int `json:"duration,omitempty"` Image struct { ID string `json:"id,omitempty"` Width int `json:"width,omitempty"` Height int `json:"height,omitempty"` URL string `json:"url,omitempty"` } `json:"image,omitempty"` Publishing struct { Created string `json:"created,omitempty"` Updated string `json:"updated,omitempty"` Published string `json:"published,omitempty"` State string `json:"state,omitempty"` PlaybackState string `json:"playback-state,omitempty"` } `json:"publishing,omitempty"` Meta struct { Hreflang struct { En string `json:"en,omitempty"` De string `json:"de,omitempty"` Zh string `json:"zh,omitempty"` } `json:"hreflang,omitempty"` } `json:"meta,omitempty"` UserReactions struct { ViewCount int `json:"view_count,omitempty"` } `json:"user_reactions,omitempty"` } `json:"howto_videos,omitempty"` Ingredients []struct { List []struct { ID string `json:"id,omitempty"` Name struct { Rendered string `json:"rendered,omitempty"` One string `json:"one,omitempty"` Many string `json:"many,omitempty"` } `json:"name,omitempty"` Measurement struct { Imperial struct { Amount float64 `json:"amount,omitempty"` Unit struct { ID string `json:"id,omitempty"` Name struct { One string `json:"one,omitempty"` Many string `json:"many,omitempty"` Rendered string `json:"rendered,omitempty"` } `json:"name,omitempty"` Type string `json:"type,omitempty"` IngredientPluralizable bool `json:"ingredient_pluralizable,omitempty"` } `json:"unit,omitempty"` } `json:"imperial,omitempty"` Metric struct { Amount int `json:"amount,omitempty"` Unit struct { ID string `json:"id,omitempty"` Name struct { One string `json:"one,omitempty"` Many string `json:"many,omitempty"` Rendered string `json:"rendered,omitempty"` } `json:"name,omitempty"` Type string `json:"type,omitempty"` FeaturedOrder int `json:"featured_order,omitempty"` IngredientPluralizable bool `json:"ingredient_pluralizable,omitempty"` } `json:"unit,omitempty"` } `json:"metric,omitempty"` } `json:"measurement,omitempty"` IsDivided bool `json:"is_divided,omitempty"` IsPartner bool `json:"is_partner,omitempty"` } `json:"list,omitempty"` } `json:"ingredients,omitempty"` Steps []struct { Text string `json:"text,omitempty"` Image struct { URL string `json:"url,omitempty"` } `json:"image,omitempty"` Ingredients []struct { ID string `json:"id,omitempty"` Name struct { Rendered string `json:"rendered,omitempty"` One string `json:"one,omitempty"` Many string `json:"many,omitempty"` } `json:"name,omitempty"` Measurement struct { Imperial struct { Amount float64 `json:"amount,omitempty"` Unit struct { ID string `json:"id,omitempty"` Name struct { One string `json:"one,omitempty"` Many string `json:"many,omitempty"` Rendered string `json:"rendered,omitempty"` } `json:"name,omitempty"` Type string `json:"type,omitempty"` IngredientPluralizable bool `json:"ingredient_pluralizable,omitempty"` } `json:"unit,omitempty"` } `json:"imperial,omitempty"` Metric struct { Amount int `json:"amount,omitempty"` Unit struct { ID string `json:"id,omitempty"` Name struct { One string `json:"one,omitempty"` Many string `json:"many,omitempty"` Rendered string `json:"rendered,omitempty"` } `json:"name,omitempty"` Type string `json:"type,omitempty"` FeaturedOrder int `json:"featured_order,omitempty"` IngredientPluralizable bool `json:"ingredient_pluralizable,omitempty"` } `json:"unit,omitempty"` } `json:"metric,omitempty"` } `json:"measurement,omitempty"` IsDivided bool `json:"is_divided,omitempty"` IsPartner bool `json:"is_partner,omitempty"` } `json:"ingredients,omitempty"` Utensils []struct { ID string `json:"id,omitempty"` Name struct { Rendered string `json:"rendered,omitempty"` One string `json:"one,omitempty"` Many string `json:"many,omitempty"` } `json:"name,omitempty"` Size struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` } `json:"size,omitempty"` } `json:"utensils,omitempty"` } `json:"steps,omitempty"` Utensils []struct { ID string `json:"id,omitempty"` Name struct { Rendered string `json:"rendered,omitempty"` One string `json:"one,omitempty"` Many string `json:"many,omitempty"` } `json:"name,omitempty"` Size struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` } `json:"size,omitempty"` Amount int `json:"amount,omitempty"` } `json:"utensils,omitempty"` }
type KitchenStoriesScript ¶
type KitchenStoriesScript struct { Props struct { PageProps struct { DehydratedState struct { Queries []struct { State struct { Data KitchenStoriesRecipe `json:"data,omitempty"` } `json:"state,omitempty"` } `json:"queries,omitempty"` } `json:"dehydratedState,omitempty"` } `json:"pageProps,omitempty"` } `json:"props,omitempty"` }
type KptnCookRecipe ¶
type KptnCookRecipe struct { Title string `json:"title"` Rtype string `json:"rtype"` Gdocs string `json:"gdocs"` AuthorComment string `json:"authorComment"` UID string `json:"uid"` Country string `json:"country"` OtherIngred string `json:"otherIngred"` PreparationTime int `json:"preparationTime"` CookingTime int `json:"cookingTime"` RecipeNutrition struct { Calories int `json:"calories"` Protein int `json:"protein"` Fat int `json:"fat"` Carbohydrate int `json:"carbohydrate"` } `json:"recipeNutrition"` ActiveTags []string `json:"activeTags"` Steps []struct { Title string `json:"title"` Image struct { Name string `json:"name"` URL string `json:"url"` } `json:"image"` Ingredients []struct { IngredientID string `json:"ingredientId"` Title string `json:"title"` NumberTitle struct { Singular string `json:"singular"` Plural string `json:"plural"` } `json:"numberTitle"` Unit struct { Quantity float64 `json:"quantity"` Measure string `json:"measure"` } `json:"unit,omitempty"` } `json:"ingredients,omitempty"` } `json:"steps"` Authors []struct { ID struct { Oid string `json:"$oid"` } `json:"_id"` Name string `json:"name"` Link string `json:"link"` Title string `json:"title"` Description string `json:"description"` Facebook string `json:"facebook"` Instagram string `json:"instagram"` Twitter string `json:"twitter"` Sponsor string `json:"sponsor"` AuthorImage struct { Name string `json:"name"` URL string `json:"url"` } `json:"authorImage"` CreationDate struct { Date int64 `json:"$date"` } `json:"creationDate"` UpdateDate struct { Date int64 `json:"$date"` } `json:"updateDate"` } `json:"authors"` Ingredients []struct { Quantity float64 `json:"quantity,omitempty"` Measure string `json:"measure,omitempty"` MetricQuantity float64 `json:"metricQuantity,omitempty"` MetricMeasure string `json:"metricMeasure,omitempty"` QuantityUS float64 `json:"quantityUS,omitempty"` MeasureUS string `json:"measureUS,omitempty"` ImperialQuantity float64 `json:"imperialQuantity,omitempty"` ImperialMeasure string `json:"imperialMeasure,omitempty"` QuantityUSProd float64 `json:"quantityUSProd,omitempty"` MeasureUSProd string `json:"measureUSProd,omitempty"` ImperialProductQuantity float64 `json:"imperialProductQuantity,omitempty"` ImperialProductMeasure string `json:"imperialProductMeasure,omitempty"` Ingredient struct { ID struct { Oid string `json:"$oid"` } `json:"_id"` Typ string `json:"typ"` Title string `json:"title"` NumberTitle struct { Singular string `json:"singular"` Plural string `json:"plural"` } `json:"numberTitle"` UncountableTitle string `json:"uncountableTitle"` Category string `json:"category"` Key string `json:"key"` Desc string `json:"desc"` Image struct { Name string `json:"name"` URL string `json:"url"` } `json:"image"` IsSponsored bool `json:"isSponsored"` Measures struct { De []string `json:"de"` Us []string `json:"us"` } `json:"measures"` Synonym string `json:"synonym"` Brands []struct { ID string `json:"id"` Name string `json:"name"` Countries []string `json:"countries"` IngredientTitle struct { Singular string `json:"singular"` Plural string `json:"plural"` } `json:"ingredientTitle"` UncountableTitle string `json:"uncountableTitle"` IngredientImage struct { Name string `json:"name"` URL string `json:"url"` } `json:"ingredientImage"` } `json:"brands"` CreationDate struct { Date int64 `json:"$date"` } `json:"creationDate"` UpdateDate struct { Date int64 `json:"$date"` } `json:"updateDate"` } `json:"ingredient,omitempty"` } `json:"ingredients"` ImageList []struct { Name string `json:"name"` URL string `json:"url"` Type string `json:"type"` } `json:"imageList"` LocalizedPublishDate struct { En struct { Date int64 `json:"$date"` } `json:"en"` De struct { Date int64 `json:"$date"` } `json:"de"` } `json:"localizedPublishDate"` TrackingMode string `json:"trackingMode"` Feature string `json:"feature"` PublishDuration struct { En int `json:"en"` De int `json:"de"` } `json:"publishDuration"` IngredientTags string `json:"ingredientTags"` FavoriteCount int `json:"favoriteCount"` PublishDates struct { En []struct { Date int64 `json:"$date"` } `json:"en"` De []struct { Date int64 `json:"$date"` } `json:"de"` } `json:"publishDates"` CreationDate struct { Date int64 `json:"$date"` } `json:"creationDate"` UpdateDate struct { Date int64 `json:"$date"` } `json:"updateDate"` }
type MarleySpoonData ¶
type MarleySpoonData struct { ID int `json:"id,omitempty"` Name string `json:"name,omitempty"` Subtitle string `json:"subtitle,omitempty"` NameWithSubtitle string `json:"name_with_subtitle,omitempty"` Classic bool `json:"classic,omitempty"` Slug string `json:"slug,omitempty"` VariantID int `json:"variant_id,omitempty"` Country string `json:"country,omitempty"` Brand string `json:"brand,omitempty"` Description string `json:"description,omitempty"` MealType string `json:"meal_type,omitempty"` Calories int `json:"calories,omitempty"` Difficulty string `json:"difficulty,omitempty"` PreparationTime string `json:"preparation_time,omitempty"` ProductType string `json:"product_type,omitempty"` MealAttributes []string `json:"meal_attributes,omitempty"` Nutrition struct { Calories string `json:"calories,omitempty"` Carbs string `json:"carbs,omitempty"` Proteins string `json:"proteins,omitempty"` Fat string `json:"fat,omitempty"` } `json:"nutrition,omitempty"` Sku string `json:"sku,omitempty"` RecipeCardURL string `json:"recipe_card_url,omitempty"` Image struct { Thumbnail string `json:"thumbnail,omitempty"` Small string `json:"small,omitempty"` Medium string `json:"medium,omitempty"` Large string `json:"large,omitempty"` } `json:"image,omitempty"` AdditionalAllergens []string `json:"additional_allergens,omitempty"` Steps []struct { Position int `json:"position,omitempty"` Title string `json:"title,omitempty"` Description string `json:"description,omitempty"` Photo string `json:"photo,omitempty"` } `json:"steps,omitempty"` Ingredients []struct { Name string `json:"name,omitempty"` Image struct { Thumbnail string `json:"thumbnail,omitempty"` Medium string `json:"medium,omitempty"` } `json:"image,omitempty"` Allergens []string `json:"allergens,omitempty"` NameWithQuantity string `json:"name_with_quantity,omitempty"` } `json:"ingredients,omitempty"` AssumedIngredients []struct { Name string `json:"name,omitempty"` } `json:"assumed_ingredients,omitempty"` AssumedCookingUtilities []struct { Name string `json:"name,omitempty"` } `json:"assumed_cooking_utilities,omitempty"` Chef struct { Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` Bio string `json:"bio,omitempty"` Image struct { Thumbnail string `json:"thumbnail,omitempty"` Medium string `json:"medium,omitempty"` } `json:"image,omitempty"` Slug string `json:"slug,omitempty"` } `json:"chef,omitempty"` CookingTip interface{} `json:"cooking_tip,omitempty"` }
MarleySpoonData struct is generated using https://mholt.github.io/json-to-go/
Click to show internal directories.
Click to hide internal directories.