summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcyfraeviolae <cyfraeviolae>2021-07-04 12:22:00 -0400
committercyfraeviolae <cyfraeviolae>2021-07-04 12:22:00 -0400
commit39f0757c2eb8becd2c50100e78b90964a1fac6bb (patch)
tree566838f061097aa4bdc32c147ce032efa5c0ad2d
init
-rw-r--r--README.md1
-rw-r--r--Untitled.ipynb465
-rw-r--r--recipes-fix.json1302
-rw-r--r--recipes.json1287
-rwxr-xr-xwork9
5 files changed, 3064 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..804bf16
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+recipes.json from https://github.com/teijo/iba-cocktails.
diff --git a/Untitled.ipynb b/Untitled.ipynb
new file mode 100644
index 0000000..eca45d1
--- /dev/null
+++ b/Untitled.ipynb
@@ -0,0 +1,465 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 185,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "['Dark rum', 'Dry white wine', 'Créme de Menthe', 'Peach bitters', 'Maraschino', 'Galliano', 'Raspberry syrup', 'Campari', 'Tequila', 'Créme de Cassis', 'DOM Bénédictine', 'Lillet Blonde', 'Sweet vermouth', 'Kirsch', 'Cream liqueur', 'Grenadine', 'Cherry liqueur', 'Calvados', 'Bourbon', 'Aperol', 'Créme de Cacao', 'Triple Sec', 'Absinthe', 'DiSaronno', 'Peach schnapps', 'Rye', 'Coffee liqueur', 'Drambuie', 'Strawberry syrup', 'Irish whiskey', \"Peychaud's bitters\", 'Raspberry liqueur', 'Scotch', 'Dry vermouth', 'Peach puree', 'Apricot brandy', 'White rum', 'Pisco', 'Orange flower water', 'Prosecco', 'Orange bitters', 'Cognac', 'Angostura bitters', 'Gin', 'Vodka', 'Orgeat', 'Cachaca', 'Blackberry liqueur', 'Champagne', 'Red Port']\n"
+ ]
+ }
+ ],
+ "source": [
+ "import json\n",
+ "skip = [\n",
+ " 'Lime juice',\n",
+ " 'Syrup',\n",
+ " 'Lemon juice',\n",
+ " 'Orange juice',\n",
+ " 'Cream',\n",
+ " 'Soda water',\n",
+ " 'Cola',\n",
+ " 'Hot coffee',\n",
+ " 'Egg yolk',\n",
+ " 'Coconut milk',\n",
+ " 'Ginger beer',\n",
+ " 'Pineapple juice',\n",
+ " 'Grapefruit juice',\n",
+ " 'Cranberry juice',\n",
+ " 'Tomato juice',\n",
+ " 'Olive juice',\n",
+ " 'Ginger Ale',\n",
+ "]\n",
+ "recipesj = json.load(open('recipes-fix.json'))\n",
+ "ingredients = set()\n",
+ "for recipe in recipesj:\n",
+ " for ingredient in recipe['ingredients']:\n",
+ " if 'special' in ingredient:\n",
+ " continue\n",
+ " if ingredient['ingredient'] in skip:\n",
+ " continue\n",
+ " ingredients.add(ingredient['ingredient'])\n",
+ "ingredientsl = list(ingredients)\n",
+ "ingredientsm = dict(zip(ingredientsl, range(len(ingredientsl))))\n",
+ "recipes = []\n",
+ "for recipe in recipesj:\n",
+ " x = set()\n",
+ " for ingredient in recipe['ingredients']:\n",
+ " if 'special' in ingredient:\n",
+ " continue\n",
+ " if ingredient['ingredient'] in skip:\n",
+ " continue\n",
+ " y = ingredientsm[ingredient['ingredient']]\n",
+ " x.add(y)\n",
+ " recipes.append(x)\n",
+ "n_ingredients = len(ingredientsl)\n",
+ "print(ingredientsl)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 186,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "makeStepR = lambda step, r: 'r' + str(step) + '_' + str(r)\n",
+ "makeStepY = lambda step, y: 'y' + str(step) + '_' + str(y)\n",
+ "\n",
+ "f = open('lp.2', 'w')\n",
+ "f.write('Minimize\\n')\n",
+ "for step in range(n_ingredients):\n",
+ " for r, recipe in enumerate(recipes):\n",
+ " f.write(' - ' + makeStepR(step, r))\n",
+ "f.write('\\nSubject To\\n')\n",
+ "for step in range(n_ingredients):\n",
+ " f.write(' + '.join(makeStepY(step, y) for y in range(n_ingredients)) + ' = ' + str(step + 1) + '\\n')\n",
+ "for y in range(n_ingredients):\n",
+ " for step in range(n_ingredients - 1):\n",
+ " f.write(makeStepY(step+1, y) + ' - ' + makeStepY(step, y) + ' >= 0\\n')\n",
+ "for r, recipe in enumerate(recipes):\n",
+ " for step in range(n_ingredients):\n",
+ " tot = ' - '.join(makeStepY(step, y) for y in recipe)\n",
+ " f.write(makeStepR(step, r) + ' - ' + tot + ' >= -' + str(len(recipe) - 1) + '\\n')\n",
+ " for y in recipe:\n",
+ " f.write(makeStepR(step, r) + ' - ' + makeStepY(step, y) + ' <= 0\\n')\n",
+ "f.write('Binary\\n')\n",
+ "f.write(' '.join(makeStepY(step, y) \n",
+ " for step in range(n_ingredients) for y in range(n_ingredients)))\n",
+ "f.write(' ')\n",
+ "f.write(' '.join(makeStepR(step, r) \n",
+ " for step in range(n_ingredients) for r in range(len(recipes))))\n",
+ "f.write('\\nEnd\\n')\n",
+ "f.close()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 164,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(50, 50)"
+ ]
+ },
+ "execution_count": 164,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "linesf = open('sol.2')\n",
+ "lines = linesf.read().splitlines()\n",
+ "linesf.close()\n",
+ "sol = []\n",
+ "seen = set()\n",
+ "batch = None\n",
+ "batches = []\n",
+ "oldstep = None\n",
+ "for line in lines:\n",
+ " if 'y' in line:\n",
+ " y = line.split()[1].split('_')[-1]\n",
+ " if int(y) in sol:\n",
+ " continue\n",
+ " sol.append(int(y))\n",
+ " if 'r' in line:\n",
+ " step, r = line.split()[1][1:].split('_')\n",
+ " step = int(step)\n",
+ " r = int(r)\n",
+ " if step != oldstep:\n",
+ " if batch is not None:\n",
+ " batches.append((oldstep, batch))\n",
+ " batch = []\n",
+ " oldstep = step\n",
+ " if r not in seen:\n",
+ " batch.append(r)\n",
+ " seen.add(r)\n",
+ "batches.append((oldstep, batch))\n",
+ "len(batches), len(sol)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 166,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1. Vodka | Sea Breeze, Screwdriver, Bloody Mary, Moscow Mule\n",
+ "2. White rum | Mojito, Cuba Libre, Pina Colada, Daiquiri\n",
+ "3. Triple Sec | Lemon Drop Martini, Cosmopolitan, Kamikaze\n",
+ "4. Tequila | Margarita, Tommy's Margarita, Vampiro\n",
+ "5. Gin | Long Island Iced Tea, Gin Fizz, John Collins, White Lady\n",
+ "6. Cognac | Horse's Neck, Sidecar, Between the Sheets\n",
+ "7. Galliano | Yellow Bird, Golden Dream, Harvey Wallbanger\n",
+ "8. Cherry liqueur | Aviation, Hemingway Special\n",
+ "9. Grenadine | Bacardi, Tequila Sunrise, Mary Pickford\n",
+ "10. Bourbon | Whiskey Sour, Mint Julep\n",
+ "11. Champagne | Mimosa, French 75\n",
+ "12. Angostura bitters | Old Fashioned, Champagne Cocktail\n",
+ "13. DiSaronno | God Mother, French Connection\n",
+ "14. Dark rum | Planter's Punch, Dark 'n' Stormy\n",
+ "15. Dry vermouth | Dirty Martini, Dry Martini\n",
+ "16. Coffee liqueur | Espresso Martini, Black Russian\n",
+ "17. Créme de Cacao | Alexander\n",
+ "18. Créme de Menthe | Grasshopper, Stinger\n",
+ "19. Irish whiskey | Irish Coffee\n",
+ "20. Peach bitters | Derby\n",
+ "21. Créme de Cassis | Russian Spring Punch\n",
+ "22. Cachaca | Caipirinha\n",
+ "23. Pisco | Pisco Sour\n",
+ "24. Blackberry liqueur | Bramble\n",
+ "25. Peach schnapps | Sex on the Beach\n",
+ "26. Prosecco | Barracuda\n",
+ "27. Red Port | Porto Flip\n",
+ "28. Raspberry syrup | Clover Club\n",
+ "29. Dry White Wine | Kir\n",
+ "30. Sweet vermouth | \n",
+ "31. Campari | Negroni, Americano\n",
+ "32. Absinthe | Monkey Gland\n",
+ "33. Peychaud's bitters | Sazerac\n",
+ "34. Aperol | Spritz Veneziano\n",
+ "35. Scotch | God Father\n",
+ "36. Peach puree | Bellini\n",
+ "37. Orange Bitters | Casino\n",
+ "38. Lillet Blonde | Vesper\n",
+ "39. Drambuie | Rusty Nail\n",
+ "40. DOM Bénédictine | Singapore Sling\n",
+ "41. Cream liqueur | B52\n",
+ "42. Apricot brandy | Paradise\n",
+ "43. Calvados | Angel Face\n",
+ "44. Raspberry liqueur | French Martini\n",
+ "45. Rye | Manhattan\n",
+ "46. Maraschino | Tuxedo\n",
+ "47. Orgeat | Mai-tai\n",
+ "48. Orange flower water | Ramos Fizz\n",
+ "49. Strawberry syrup | \n",
+ "50. Kirsch | Rose\n"
+ ]
+ }
+ ],
+ "source": [
+ "def pad(s, n):\n",
+ " return s + (n - len(s))*' '\n",
+ "for i, (y, (step, batch)) in enumerate(zip(sol, batches)):\n",
+ " drinks = [recipesj[r]['name'] for r in batch]\n",
+ " print(pad(str(i+1) + '. ' + ingredientsl[y], 23) + ' | ' + ', '.join(drinks))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 169,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "White rum\n",
+ "Vodka\n",
+ "Triple Sec\n",
+ "Cognac\n",
+ "Gin\n",
+ "Tequila\n",
+ "Galliano\n",
+ "Grenadine\n",
+ "Cherry liqueur\n",
+ "Champagne\n",
+ "Bourbon\n",
+ "Angostura bitters\n",
+ "Dark rum\n",
+ "Coffee liqueur\n",
+ "DiSaronno\n",
+ "Dry vermouth\n",
+ "Lillet Blonde\n",
+ "Pisco\n",
+ "Raspberry syrup\n",
+ "Red Port\n",
+ "Cream liqueur\n",
+ "Créme de Menthe\n",
+ "Créme de Cacao\n",
+ "Blackberry liqueur\n",
+ "Raspberry liqueur\n",
+ "Orgeat\n",
+ "Prosecco\n",
+ "Peach puree\n",
+ "Aperol\n",
+ "Peach schnapps\n",
+ "Absinthe\n",
+ "Peach bitters\n",
+ "Irish whiskey\n",
+ "Peychaud's bitters\n",
+ "DOM Bénédictine\n",
+ "Apricot brandy\n",
+ "Calvados\n",
+ "Orange flower water\n",
+ "Créme de Cassis\n",
+ "Dry White Wine\n",
+ "Scotch\n",
+ "Drambuie\n",
+ "Orange Bitters\n",
+ "Maraschino\n",
+ "Cachaca\n",
+ "Campari\n",
+ "Sweet vermouth\n",
+ "Rye\n",
+ "Kirsch\n",
+ "Strawberry syrup\n"
+ ]
+ }
+ ],
+ "source": [
+ "from collections import Counter\n",
+ "recipesc = recipes.copy()\n",
+ "greedysol = []\n",
+ "\n",
+ "for step in range(n_ingredients):\n",
+ " c = Counter()\n",
+ " for recipe in recipesc:\n",
+ " if len(recipe) == 1:\n",
+ " c.update([list(recipe)[0]])\n",
+ " ingrs = c.most_common()\n",
+ " if len(ingrs) == 0:\n",
+ " ingr = list(set.union(*recipesc))[0]\n",
+ " else:\n",
+ " ingr = ingrs[0][0]\n",
+ " greedysol.append(ingr)\n",
+ " for i, recipe in enumerate(recipesc):\n",
+ " recipesc[i] = recipe - {ingr}\n",
+ "for y in greedysol:\n",
+ " print(ingredientsl[y])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 174,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def score(recipes, sol):\n",
+ " t = 0\n",
+ " recipesc = recipes.copy()\n",
+ " for i, y in enumerate(sol):\n",
+ " for recipe in recipesc:\n",
+ " if recipe == {y}:\n",
+ " t += (len(ingredientsl)-i)\n",
+ " for i, recipe in enumerate(recipesc):\n",
+ " recipesc[i] = recipe - {y}\n",
+ " return t"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 175,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(2501, 2495)"
+ ]
+ },
+ "execution_count": 175,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "score(recipes, sol), score(recipes, greedysol)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/recipes-fix.json b/recipes-fix.json
new file mode 100644
index 0000000..e4779d0
--- /dev/null
+++ b/recipes-fix.json
@@ -0,0 +1,1302 @@
+[
+ { "name": "Vesper",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 0.75,
+ "ingredient": "Lillet Blonde" }
+ ],
+ "garnish": "Lemon twist",
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Bacardi",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "White rum",
+ "label": "Bacardi White Rum" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Lime juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Grenadine",
+ "label": "Grenadine" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Negroni",
+ "glass": "old-fashioned",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Campari" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Sweet vermouth",
+ "label": "Sweet red vermouth" }
+ ],
+ "garnish": "Half an orange slice",
+ "preparation": "Build into old-fashioned glass filled with ice. Stir gently." },
+ { "name": "Rose",
+ "glass": "martini",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Kirsch" },
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Dry vermouth",
+ "label": "Dry vermouth" },
+ { "ingredient": "Strawberry syrup" },
+ { "special": "3 dashes Strawberry syrup" }
+ ],
+ "preparation": "Stir all ingredients with ice and strain into a cocktail glass." },
+ { "name": "Old Fashioned",
+ "glass": "old-fashioned",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Bourbon",
+ "label": "Bourbon or rye whiskey" },
+ { "ingredient": "Angostura bitters" },
+ { "special": "2 dashes Angostura Bitters" },
+ { "special": "1 sugar cube" },
+ { "special": "Few dashes plain water" }
+ ],
+ "garnish": "Orange slice and cherry",
+ "preparation": "Place sugar cube in old-fashioned glass and saturate with bitters, add a dash of plain water. Muddle until dissolve. Fill the glass with ice cubes and add whisky." },
+ { "name": "Tuxedo",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Gin",
+ "label": "Old Tom Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Dry vermouth",
+ "label": "Dry vermouth" },
+ { "ingredient": "Maraschino" },
+ { "ingredient": "Absinthe" },
+ { "ingredient": "Orange bitters" },
+ { "special": "1/2 bar spoon Maraschino" },
+ { "special": "1/4 bar spoon Absinthe" },
+ { "special": "3 dashes Orange Bitters" }
+ ],
+ "garnish": "Cherry and lemon twist",
+ "preparation": "Stir all ingredients with ice and strain into cocktail glass." },
+ { "name": "Mojito",
+ "glass": "collins",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "White rum",
+ "label": "White Cuban Rum" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Lime juice" },
+ { "special": "6 Mint sprigs" },
+ { "special": "2 teaspoons white sugar" },
+ { "special": "Soda water" }
+ ],
+ "garnish": "Mint leaves and lemon slice",
+ "preparation": "Muddle mint sprigs with sugar and lime juice. Add splash of soda water and fill glass with cracked ice. Pour rum and top with soda water. Serve with straw." },
+ { "name": "Horse's Neck",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 12,
+ "ingredient": "Ginger Ale" },
+ { "special": "Dash of Angostura bitters (optional)" }
+ ],
+ "garnish": "Lemon twist",
+ "preparation": "Build into highball glass with ice cubes. Stir gently. If required, add dashes of Angostura bitters." },
+ { "name": "Planter's Punch",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Dark rum" },
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Orange juice" },
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Pineapple juice" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Grenadine",
+ "label": "Grenadine" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "ingredient": "Angostura bitters" },
+ { "special": "3 to 4 dashes Angostura bitters" }
+ ],
+ "garnish": "Pineapple slice and a cherry",
+ "preparation": "Pour all ingredients, except the bitters, into shaker filled with ice. Shake. Pour into large glass, filled with ice. Add Angostura bitters, “on top”." },
+ { "name": "Sea Breeze",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 12,
+ "ingredient": "Cranberry juice" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Grapefruit juice" }
+ ],
+ "garnish": "Lime wedge",
+ "preparation": "Build all ingredients in a rock glass filled with ice." },
+ { "name": "Pisco Sour",
+ "glass": "old-fashioned",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Pisco" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "special": "1 raw egg white (small egg)" }
+ ],
+ "preparation": "Shake and strain into a chilled champagne flute. Dash some Angostura bitters on top." },
+ { "name": "Long Island Iced Tea",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Tequila" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 3.0,
+ "ingredient": "Syrup",
+ "label": "Gomme syrup" },
+ { "special": "1 dash of Cola" }
+ ],
+ "garnish": "Lemon twist",
+ "preparation": "Add all ingredients into highball glass filled with ice. Stir gently. Serve with straw." },
+ { "name": "Clover Club",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Raspberry syrup",
+ "label": "Raspberry syrup" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" },
+ { "special": "Few drops of Egg White" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into cocktail glass." },
+ { "name": "Angel Face",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Apricot brandy" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Calvados" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into a cocktail glass." },
+ { "name": "Mimosa",
+ "glass": "champagne-flute",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 7.5,
+ "ingredient": "Champagne" },
+ { "unit": "cl",
+ "amount": 7.5,
+ "ingredient": "Orange juice" }
+ ],
+ "garnish": "Optional orange twist",
+ "preparation": "Pour orange juice into flute and gently pour Champagne. Stir gently. Note: Buck's Fizz is a very similar cocktail but made of two parts champagne to one part orange juice." },
+ { "name": "Whiskey Sour",
+ "glass": "old-fashioned",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Bourbon",
+ "label": "Bourbon whiskey" },
+ { "unit": "cl",
+ "amount": 3.0,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" }
+ ],
+ "garnish": "Half an orange slice and cherry",
+ "preparation": "Dash egg white (Optional: if used shake little harder to foam up the egg white). Pour all ingredients into cocktail shaker filled with ice. Shake. Strain into cocktail glass. If served ‘On the rocks’, strain ingredients into old-fashioned glass filled with ice." },
+ { "name": "Screwdriver",
+ "glass": "highball",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 10,
+ "ingredient": "Orange juice" }
+ ],
+ "garnish": "Orange slice",
+ "preparation": "Build into a highball glass filled with ice. Stir gently." },
+ { "name": "Cuba Libre",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 12,
+ "ingredient": "Cola" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Lime juice" }
+ ],
+ "garnish": "Lime wedge",
+ "preparation": "Build all ingredients in a highball glass filled with ice." },
+ { "name": "Manhattan",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Rye",
+ "label": "Rye whiskey" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Sweet vermouth",
+ "label": "Red vermouth" },
+ { "ingredient": "Angostura bitters" },
+ { "special": "1 dash Angostura Bitters" }
+ ],
+ "garnish": "Cherry",
+ "preparation": "Stir in mixing glass with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Porto Flip",
+ "glass": "martini",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Red Port" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Egg yolk" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into cocktail glass. Sprinkle with fresh ground nutmeg." },
+ { "name": "Gin Fizz",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "unit": "cl",
+ "amount": 8,
+ "ingredient": "Soda water" }
+ ],
+ "garnish": "Lemon slice",
+ "preparation": "Shake all ingredients with ice cubes, except soda water. Pour into tumbler. Top with soda water." },
+ { "name": "Espresso Martini",
+ "glass": "martini",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Coffee liqueur",
+ "label": "Kahlúa" },
+ { "special": "Sugar syrup (according to individual preference of sweetness)" },
+ { "special": "1 short strong Espresso" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Margarita",
+ "glass": "margarita",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Tequila" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Triple Sec",
+ "label": "Cointreau" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into cocktail glass rimmed with salt (note:Fruit Margarita - blend selected fruit with the above recipe)." },
+ { "name": "French 75",
+ "glass": "champagne-tulip",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" },
+ { "special": "2 dashes Sugar syrup" },
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Champagne" }
+ ],
+ "preparation": "Shake with ice cubes, except for champagne. Strain into a champagne flute. Top up with champagne. Stir gently." },
+ { "name": "Yellow Bird",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Galliano" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Pina Colada",
+ "glass": "hurricane",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Pineapple juice" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Coconut milk" }
+ ],
+ "garnish": "Pineapple slice and a cherry",
+ "preparation": "Blend all the ingredients with ice in a electric blender, pour into a large goblet or Hurricane glass and serve with straws." },
+ { "name": "Aviation",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Cherry liqueur",
+ "label": "Maraschino" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Bellini",
+ "glass": "champagne-flute",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 10,
+ "ingredient": "Prosecco" },
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Peach puree" }
+ ],
+ "preparation": "Pour peach puree into chilled glass and add sparkling wine. Stir gently. Variations: Puccini (fresh mandarin juice), Rossini (fresh strawberry puree), Tintoretto (fresh pomegranate juice)" },
+ { "name": "Grasshopper",
+ "glass": "martini",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Créme de Cacao",
+ "label": "White Créme de Cacao" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Créme de Menthe",
+ "label": "Green Créme de Menthe" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cream" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Tequila Sunrise",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Tequila" },
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Orange juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Grenadine",
+ "label": "Grenadine" }
+ ],
+ "garnish": "Orange slice and a cherry",
+ "preparation": "Build tequila and orange juice into highball with ice cubes. Add a splash of grenadine to create sunrise effect. Do not stir." },
+ { "name": "Daiquiri",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Lime juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Syrup",
+ "label": "Simple syrup" }
+ ],
+ "preparation": "Shake and strain into a cocktail glass." },
+ { "name": "Rusty Nail",
+ "glass": "old-fashioned",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Scotch",
+ "label": "Scotch whisky" },
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Drambuie" }
+ ],
+ "garnish": "Lemon twist",
+ "preparation": "Build into old-fashioned glass filled with ice. Stir gently." },
+ { "name": "B52",
+ "glass": "shot",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Coffee liqueur",
+ "label": "Kahlúa" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Cream liqueur",
+ "label": "Baileys Irish Cream" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Triple Sec",
+ "label": "Grand Marnier" }
+ ],
+ "preparation": "Layer ingredients one at a time starting with Kahlúa, followed by Baileys Irish Cream and top with Grand Marnier. Flame the Grand Marnier, serve while the flame is still on, accompanied with a straw on side plate." },
+ { "name": "Stinger",
+ "glass": "martini",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Créme de Menthe",
+ "label": "White Créme de Menthe" }
+ ],
+ "preparation": "Stir in mixing glass with ice cubes. Strain into a cocktail glass." },
+ { "name": "Golden Dream",
+ "glass": "martini",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Galliano" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Orange juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Cream" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "God Mother",
+ "glass": "old-fashioned",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "DiSaronno" }
+ ],
+ "preparation": "Build into old fashioned glass filled with ice cubes. Stir gently." },
+ { "name": "Spritz Veneziano",
+ "glass": "old-fashioned",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Prosecco" },
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Aperol" },
+ { "special": "Splash of Soda water" }
+ ],
+ "garnish": "Half an orange slice",
+ "preparation": "Build into an old-fashioned glass filled with ice. Top with a splash of soda water." },
+ { "name": "Bramble",
+ "glass": "old-fashioned",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Blackberry liqueur" }
+ ],
+ "garnish": "Lemon slice and two blackberries",
+ "preparation": "Build over crushed ice, in a rock glass. Stir, then pour the blackberry liqueur over the top of the drink in a circular fashion." },
+ { "name": "Alexander",
+ "glass": "martini",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Créme de Cacao",
+ "label": "Brown Créme de Cacao" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cream" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass. Sprinkle with fresh ground nutmeg." },
+ { "name": "Lemon Drop Martini",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Vodka",
+ "label": "Citron Vodka" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" }
+ ],
+ "garnish": "Lemon slice",
+ "preparation": "Shake and strain into a chilled cocktail glass rimmed with sugar." },
+ { "name": "French Martini",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Raspberry liqueur" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Pineapple juice" }
+ ],
+ "preparation": "Stir in mixing glass with ice cubes. Strain into chilled cocktail glass. Squeeze oil from lemon peel onto the drink." },
+ { "name": "Black Russian",
+ "glass": "old-fashioned",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Coffee liqueur" }
+ ],
+ "preparation": "Build into old fashioned glass filled with ice cubes. Stir gently. Note: for White Russian, float fresh cream on the top and stir gently." },
+ { "name": "Bloody Mary",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Tomato juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" },
+ { "special": "2 to 3 dashes of Worcestershire Sauce" },
+ { "special": "Tabasco" },
+ { "special": "Celery salt" },
+ { "special": "Pepper" }
+ ],
+ "garnish": "Celery and optionally lemon wedge",
+ "preparation": "Stir gently, pour all ingredients into highball glass." },
+ { "name": "Mai-tai",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Dark rum" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Triple Sec",
+ "label": "Orange Curaçao" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Orgeat",
+ "label": "Orgeat syrup" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Lime juice" }
+ ],
+ "garnish": "Pineapple spear, mint leaves and lime wedge",
+ "preparation": "Shake and strain into highball glass. Serve with straw." },
+ { "name": "Barracuda",
+ "glass": "margarita",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Dark rum",
+ "label": "Gold rum" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Galliano" },
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Pineapple juice" },
+ { "ingredient": "Prosecco" },
+ { "special": "1 dash Lime juice" },
+ { "special": "Top with Prosecco" }
+ ] },
+ { "name": "Sex on the Beach",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Peach schnapps" },
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Cranberry juice" },
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Orange juice" }
+ ],
+ "garnish": "Orange slice",
+ "preparation": "Build all ingredients in a highball glass filled with ice." },
+ { "name": "Monkey Gland",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Orange juice" },
+ { "ingredient": "Absinthe" },
+ { "ingredient": "Grenadine" },
+ { "special": "2 drops Absinthe" },
+ { "special": "2 drops Grenadine" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Derby",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Gin" },
+ { "ingredient": "Peach bitters" },
+ { "special": "2 drops Peach Bitters" },
+ { "special": "2 Fresh mint leaves" }
+ ],
+ "garnish": "Mint leaves",
+ "preparation": "Stir in mixing glass with ice cubes. Strain into a cocktail glass." },
+ { "name": "Sidecar",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Lemon juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into cocktail glass." },
+ { "name": "Irish Coffee",
+ "glass": "hot-drink",
+ "category": "Hot Drink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Irish whiskey",
+ "label": "Irish whiskey" },
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Hot coffee" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cream" },
+ { "special": "1 teaspoon of brown sugar" }
+ ],
+ "preparation": "Warm the Irish whiskey over a burner. Pour into the glass (for hot drink) hot coffee, and add a teaspoon of sugar. Float Cream on top." },
+ { "name": "Sazerac",
+ "glass": "old-fashioned",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Absinthe" },
+ { "ingredient": "Peychaud's bitters" },
+ { "special": "1 sugar cube" },
+ { "special": "2 dashes Peychaud’s bitters" }
+ ],
+ "garnish": "Lemon twist",
+ "preparation": "Rinse a chilled old-fashioned glass with the absinthe, add crushed ice and set it aside. Stir the remaining ingredients over ice and set it aside. Discard the ice and any excess absinthe from the prepared glass, and strain the drink into the glass. Note: The original recipe changed after the American Civil War, rye whiskey substituted cognac as it became hard to obtain." },
+ { "name": "Americano",
+ "glass": "old-fashioned",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Campari" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Sweet vermouth",
+ "label": "Red vermouth" },
+ { "special": "A splash of soda water" }
+ ],
+ "garnish": "Half an orange slice",
+ "preparation": "Build into old fashioned glass filled with ice cubes. Add a splash of soda water." },
+ { "name": "Singapore Sling",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Cherry liqueur" },
+ { "unit": "cl",
+ "amount": 0.75,
+ "ingredient": "Triple Sec",
+ "label": "Cointreau" },
+ { "unit": "cl",
+ "amount": 0.75,
+ "ingredient": "DOM Bénédictine" },
+ { "unit": "cl",
+ "amount": 12.0,
+ "ingredient": "Pineapple juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Grenadine",
+ "label": "Grenadine" },
+ { "ingredient": "Angostura bitters" },
+ { "special": "1 dash Angostura bitters" }
+ ],
+ "garnish": "Pineapple slice and a cherry",
+ "preparation": "Shake with ice cubes. Strain into highball glass." },
+ { "name": "French Connection",
+ "glass": "old-fashioned",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "DiSaronno" }
+ ],
+ "preparation": "Build into old fashioned glass filled with ice cubes. Stir gently." },
+ { "name": "Moscow Mule",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 12,
+ "ingredient": "Ginger beer" },
+ { "unit": "cl",
+ "amount": 0.5,
+ "ingredient": "Lime juice" },
+ { "special": "1 slice lime in a highball glass" }
+ ],
+ "garnish": "Lime slice",
+ "preparation": "Combine the vodka and ginger beer. Add lime juice." },
+ { "name": "John Collins",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Soda water" }
+ ],
+ "garnish": "Lemon slice and a cherry",
+ "preparation": "Build into highball glass filled with ice. Stir gently. Add a dash of Angostura bitters. (Note: Use Old Tom Gin for Tom Collins)" },
+ { "name": "Kir",
+ "glass": "white-wine",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Dry white wine" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Créme de Cassis",
+ "label": "Créme de Cassis" }
+ ],
+ "preparation": "Pour Créme de Cassis into glass, top up with white wine. For Kir Royal: Use champagne instead of white wine." },
+ { "name": "Mint Julep",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Bourbon",
+ "label": "Bourbon whiskey" },
+ { "special": "4 fresh mint sprigs" },
+ { "special": "1 teaspoon powdered sugar" },
+ { "special": "2 teaspoons water" }
+ ],
+ "garnish": "Mint sprig",
+ "preparation": "In a highball glass gently muddle the mint, sugar and water. Fill the glass with cracked ice, add Bourbon and stir well until the glass is frost." },
+ { "name": "Tommy's Margarita",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Tequila" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" },
+ { "special": "2 bar spoons of Agave nectar" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Paradise",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Apricot brandy" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Orange juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Dirty Martini",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Dry vermouth",
+ "label": "Dry vermouth" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Olive juice" }
+ ],
+ "garnish": "Green olive",
+ "preparation": "Stir in mixing glass with ice cubes. Strain into chilled martini glass." },
+ { "name": "Champagne Cocktail",
+ "glass": "champagne-flute",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Champagne" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Cognac" },
+ { "ingredient": "Angostura bitters" },
+ { "special": "2 dashes Angostura Bitters" },
+ { "special": "1 sugar cube" }
+ ],
+ "garnish": "Orange slice and a cherry",
+ "preparation": "Add dash of Angostura bitter onto sugar cube and drop it into champagne flute. Add cognac followed by pouring gently chilled champagne." },
+ { "name": "Mary Pickford",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Cherry liqueur",
+ "label": "Maraschino" },
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Pineapple juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Grenadine",
+ "label": "Grenadine" }
+ ],
+ "preparation": "Shake and strain into a chilled large cocktail glass." },
+ { "name": "Hemingway Special",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Grapefruit juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Cherry liqueur",
+ "label": "Maraschino" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into a double cocktail glass." },
+ { "name": "Dark 'n' Stormy",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Dark rum" },
+ { "unit": "cl",
+ "amount": 10,
+ "ingredient": "Ginger beer" }
+ ],
+ "garnish": "Lime wedge",
+ "preparation": "Build into highball glass filled with ice. Add rum first and top it with ginger beer." },
+ { "name": "Ramos Fizz",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Cream" },
+ { "ingredient": "Orange flower water" },
+ { "special": "1 Egg white" },
+ { "special": "3 dashes Orange flower water" },
+ { "special": "2 drops Vanilla extract" },
+ { "special": "Soda water" }
+ ],
+ "preparation": "Pour all ingredients (except soda) in a mixing glass, dry shake (no ice) for two minutes, add ice and hard shake for another minute. Strain into a highball glass without ice, top with soda." },
+ { "name": "Russian Spring Punch",
+ "glass": "highball",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Créme de Cassis",
+ "label": "Créme de Cassis" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" }
+ ],
+ "garnish": "Lemon slice and a blackberry",
+ "preparation": "Shake the ingredients and pour into highball glass. Top with Sparkling wine." },
+ { "name": "God Father",
+ "glass": "old-fashioned",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Scotch",
+ "label": "Scotch whisky" },
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "DiSaronno" }
+ ],
+ "preparation": "Build into old fashioned glass filled with ice cubes. Stir gently." },
+ { "name": "Cosmopolitan",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Vodka",
+ "label": "Citron Vodka" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Triple Sec",
+ "label": "Cointreau" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cranberry juice" }
+ ],
+ "garnish": "Lime slice",
+ "preparation": "Shake with ice cubes. Strain into a large cocktail glass." },
+ { "name": "Dry Martini",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Dry vermouth",
+ "label": "Dry vermouth" }
+ ],
+ "preparation": "Stir in mixing glass with ice cubes. Strain into chilled martini glass. Squeeze oil from lemon peel onto the drink, or garnish with olive." },
+ { "name": "Between the Sheets",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Lemon juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Casino",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Gin",
+ "label": "Old Tom Gin" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Cherry liqueur",
+ "label": "Maraschino" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Orange bitters" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Lemon juice" }
+ ],
+ "garnish": "Lemon twist and a cherry",
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Caipirinha",
+ "glass": "old-fashioned",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Cachaca" },
+ { "special": "half fresh lime cut into 4 wedges" },
+ { "special": "2 teaspoon sugar" }
+ ],
+ "preparation": "Place lime and sugar in old fashion glass and muddle. Fill glass with ice and Cachaca (note:Caipiroska- use Vodka instead of Cachaca)." },
+ { "name": "Vampiro",
+ "glass": "highball",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Tequila",
+ "label": "Silver Tequila" },
+ { "unit": "cl",
+ "amount": 7,
+ "ingredient": "Tomato juice" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Orange juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Lime juice" },
+ { "special": "1 teaspoon clear honey" },
+ { "special": "Half slice onion finely chopped" },
+ { "special": "Few slices fresh red hot chili peppers" },
+ { "special": "Few drops Worcestershire sauce" },
+ { "special": "Salt" }
+ ],
+ "garnish": "Lime wedge and a green or red chili",
+ "preparation": "Shake with ice cubes. Strain into a highball glass, filled with ice." },
+ { "name": "Kamikaze",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Lime juice" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "White Lady",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Lemon juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into large cocktail glass." },
+ { "name": "Harvey Wallbanger",
+ "glass": "highball",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Galliano" },
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Orange juice" }
+ ],
+ "garnish": "Orance slice and a cherry",
+ "preparation": "Build vodka and orange juice into a highball glass filled with ice. Stir gently and float Galliano on top." }
+]
diff --git a/recipes.json b/recipes.json
new file mode 100644
index 0000000..3fd0e0a
--- /dev/null
+++ b/recipes.json
@@ -0,0 +1,1287 @@
+[
+ { "name": "Vesper",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 0.75,
+ "ingredient": "Lillet Blonde" }
+ ],
+ "garnish": "Lemon twist",
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Bacardi",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "White rum",
+ "label": "Bacardi White Rum" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Lime juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Grenadine" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Negroni",
+ "glass": "old-fashioned",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Campari" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Vermouth",
+ "label": "Sweet red vermouth" }
+ ],
+ "garnish": "Half an orange slice",
+ "preparation": "Build into old-fashioned glass filled with ice. Stir gently." },
+ { "name": "Rose",
+ "glass": "martini",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Kirsch" },
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Vermouth",
+ "label": "Dry vermouth" },
+ { "special": "3 dashes Strawberry syrup" }
+ ],
+ "preparation": "Stir all ingredients with ice and strain into a cocktail glass." },
+ { "name": "Old Fashioned",
+ "glass": "old-fashioned",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Whiskey",
+ "label": "Bourbon or rye whiskey" },
+ { "special": "2 dashes Angostura Bitters" },
+ { "special": "1 sugar cube" },
+ { "special": "Few dashes plain water" }
+ ],
+ "garnish": "Orange slice and cherry",
+ "preparation": "Place sugar cube in old-fashioned glass and saturate with bitters, add a dash of plain water. Muddle until dissolve. Fill the glass with ice cubes and add whisky." },
+ { "name": "Tuxedo",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Gin",
+ "label": "Old Tom Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Vermouth",
+ "label": "Dry vermouth" },
+ { "special": "1/2 bar spoon Maraschino" },
+ { "special": "1/4 bar spoon Absinthe" },
+ { "special": "3 dashes Orange Bitters" }
+ ],
+ "garnish": "Cherry and lemon twist",
+ "preparation": "Stir all ingredients with ice and strain into cocktail glass." },
+ { "name": "Mojito",
+ "glass": "collins",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "White rum",
+ "label": "White Cuban Rum" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Lime juice" },
+ { "special": "6 Mint sprigs" },
+ { "special": "2 teaspoons white sugar" },
+ { "special": "Soda water" }
+ ],
+ "garnish": "Mint leaves and lemon slice",
+ "preparation": "Muddle mint sprigs with sugar and lime juice. Add splash of soda water and fill glass with cracked ice. Pour rum and top with soda water. Serve with straw." },
+ { "name": "Horse's Neck",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 12,
+ "ingredient": "Ginger Ale" },
+ { "special": "Dash of Angostura bitters (optional)" }
+ ],
+ "garnish": "Lemon twist",
+ "preparation": "Build into highball glass with ice cubes. Stir gently. If required, add dashes of Angostura bitters." },
+ { "name": "Planter's Punch",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Dark rum" },
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Orange juice" },
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Pineapple juice" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Grenadine" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "special": "3 to 4 dashes Angostura bitters" }
+ ],
+ "garnish": "Pineapple slice and a cherry",
+ "preparation": "Pour all ingredients, except the bitters, into shaker filled with ice. Shake. Pour into large glass, filled with ice. Add Angostura bitters, “on top”." },
+ { "name": "Sea Breeze",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 12,
+ "ingredient": "Cranberry juice" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Grapefruit juice" }
+ ],
+ "garnish": "Lime wedge",
+ "preparation": "Build all ingredients in a rock glass filled with ice." },
+ { "name": "Pisco Sour",
+ "glass": "old-fashioned",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Pisco" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "special": "1 raw egg white (small egg)" }
+ ],
+ "preparation": "Shake and strain into a chilled champagne flute. Dash some Angostura bitters on top." },
+ { "name": "Long Island Iced Tea",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Tequila" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 3.0,
+ "ingredient": "Syrup",
+ "label": "Gomme syrup" },
+ { "special": "1 dash of Cola" }
+ ],
+ "garnish": "Lemon twist",
+ "preparation": "Add all ingredients into highball glass filled with ice. Stir gently. Serve with straw." },
+ { "name": "Clover Club",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Syrup",
+ "label": "Raspberry syrup" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" },
+ { "special": "Few drops of Egg White" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into cocktail glass." },
+ { "name": "Angel Face",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Apricot brandy" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Calvados" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into a cocktail glass." },
+ { "name": "Mimosa",
+ "glass": "champagne-flute",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 7.5,
+ "ingredient": "Champagne" },
+ { "unit": "cl",
+ "amount": 7.5,
+ "ingredient": "Orange juice" }
+ ],
+ "garnish": "Optional orange twist",
+ "preparation": "Pour orange juice into flute and gently pour Champagne. Stir gently. Note: Buck's Fizz is a very similar cocktail but made of two parts champagne to one part orange juice." },
+ { "name": "Whiskey Sour",
+ "glass": "old-fashioned",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Whiskey",
+ "label": "Bourbon whiskey" },
+ { "unit": "cl",
+ "amount": 3.0,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" }
+ ],
+ "garnish": "Half an orange slice and cherry",
+ "preparation": "Dash egg white (Optional: if used shake little harder to foam up the egg white). Pour all ingredients into cocktail shaker filled with ice. Shake. Strain into cocktail glass. If served ‘On the rocks’, strain ingredients into old-fashioned glass filled with ice." },
+ { "name": "Screwdriver",
+ "glass": "highball",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 10,
+ "ingredient": "Orange juice" }
+ ],
+ "garnish": "Orange slice",
+ "preparation": "Build into a highball glass filled with ice. Stir gently." },
+ { "name": "Cuba Libre",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 12,
+ "ingredient": "Cola" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Lime juice" }
+ ],
+ "garnish": "Lime wedge",
+ "preparation": "Build all ingredients in a highball glass filled with ice." },
+ { "name": "Manhattan",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Whiskey",
+ "label": "Rye whiskey" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Vermouth",
+ "label": "Red vermouth" },
+ { "special": "1 dash Angostura Bitters" }
+ ],
+ "garnish": "Cherry",
+ "preparation": "Stir in mixing glass with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Porto Flip",
+ "glass": "martini",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Red Port" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Egg yolk" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into cocktail glass. Sprinkle with fresh ground nutmeg." },
+ { "name": "Gin Fizz",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "unit": "cl",
+ "amount": 8,
+ "ingredient": "Soda water" }
+ ],
+ "garnish": "Lemon slice",
+ "preparation": "Shake all ingredients with ice cubes, except soda water. Pour into tumbler. Top with soda water." },
+ { "name": "Espresso Martini",
+ "glass": "martini",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Coffee liqueur",
+ "label": "Kahlúa" },
+ { "special": "Sugar syrup (according to individual preference of sweetness)" },
+ { "special": "1 short strong Espresso" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Margarita",
+ "glass": "margarita",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Tequila" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Triple Sec",
+ "label": "Cointreau" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into cocktail glass rimmed with salt (note:Fruit Margarita - blend selected fruit with the above recipe)." },
+ { "name": "French 75",
+ "glass": "champagne-tulip",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" },
+ { "special": "2 dashes Sugar syrup" },
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Champagne" }
+ ],
+ "preparation": "Shake with ice cubes, except for champagne. Strain into a champagne flute. Top up with champagne. Stir gently." },
+ { "name": "Yellow Bird",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Galliano" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Pina Colada",
+ "glass": "hurricane",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Pineapple juice" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Coconut milk" }
+ ],
+ "garnish": "Pineapple slice and a cherry",
+ "preparation": "Blend all the ingredients with ice in a electric blender, pour into a large goblet or Hurricane glass and serve with straws." },
+ { "name": "Aviation",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Cherry liqueur",
+ "label": "Maraschino" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Bellini",
+ "glass": "champagne-flute",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 10,
+ "ingredient": "Prosecco" },
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Peach puree" }
+ ],
+ "preparation": "Pour peach puree into chilled glass and add sparkling wine. Stir gently. Variations: Puccini (fresh mandarin juice), Rossini (fresh strawberry puree), Tintoretto (fresh pomegranate juice)" },
+ { "name": "Grasshopper",
+ "glass": "martini",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Créme liqueur",
+ "label": "White Créme de Cacao" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Créme liqueur",
+ "label": "Green Créme de Menthe" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cream" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Tequila Sunrise",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Tequila" },
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Orange juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Syrup",
+ "label": "Grenadine" }
+ ],
+ "garnish": "Orange slice and a cherry",
+ "preparation": "Build tequila and orange juice into highball with ice cubes. Add a splash of grenadine to create sunrise effect. Do not stir." },
+ { "name": "Daiquiri",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Lime juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Syrup",
+ "label": "Simple syrup" }
+ ],
+ "preparation": "Shake and strain into a cocktail glass." },
+ { "name": "Rusty Nail",
+ "glass": "old-fashioned",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Whiskey",
+ "label": "Scotch whisky" },
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Drambuie" }
+ ],
+ "garnish": "Lemon twist",
+ "preparation": "Build into old-fashioned glass filled with ice. Stir gently." },
+ { "name": "B52",
+ "glass": "shot",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Coffee liqueur",
+ "label": "Kahlúa" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Cream liqueur",
+ "label": "Baileys Irish Cream" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Triple Sec",
+ "label": "Grand Marnier" }
+ ],
+ "preparation": "Layer ingredients one at a time starting with Kahlúa, followed by Baileys Irish Cream and top with Grand Marnier. Flame the Grand Marnier, serve while the flame is still on, accompanied with a straw on side plate." },
+ { "name": "Stinger",
+ "glass": "martini",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Créme liqueur",
+ "label": "White Créme de Menthe" }
+ ],
+ "preparation": "Stir in mixing glass with ice cubes. Strain into a cocktail glass." },
+ { "name": "Golden Dream",
+ "glass": "martini",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Galliano" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Orange juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Cream" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "God Mother",
+ "glass": "old-fashioned",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "DiSaronno" }
+ ],
+ "preparation": "Build into old fashioned glass filled with ice cubes. Stir gently." },
+ { "name": "Spritz Veneziano",
+ "glass": "old-fashioned",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Prosecco" },
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Aperol" },
+ { "special": "Splash of Soda water" }
+ ],
+ "garnish": "Half an orange slice",
+ "preparation": "Build into an old-fashioned glass filled with ice. Top with a splash of soda water." },
+ { "name": "Bramble",
+ "glass": "old-fashioned",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Blackberry liqueur" }
+ ],
+ "garnish": "Lemon slice and two blackberries",
+ "preparation": "Build over crushed ice, in a rock glass. Stir, then pour the blackberry liqueur over the top of the drink in a circular fashion." },
+ { "name": "Alexander",
+ "glass": "martini",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Créme liqueur",
+ "label": "Brown Créme de Cacao" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cream" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass. Sprinkle with fresh ground nutmeg." },
+ { "name": "Lemon Drop Martini",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Vodka",
+ "label": "Citron Vodka" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" }
+ ],
+ "garnish": "Lemon slice",
+ "preparation": "Shake and strain into a chilled cocktail glass rimmed with sugar." },
+ { "name": "French Martini",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Raspberry liqueur" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Pineapple juice" }
+ ],
+ "preparation": "Stir in mixing glass with ice cubes. Strain into chilled cocktail glass. Squeeze oil from lemon peel onto the drink." },
+ { "name": "Black Russian",
+ "glass": "old-fashioned",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Coffee liqueur" }
+ ],
+ "preparation": "Build into old fashioned glass filled with ice cubes. Stir gently. Note: for White Russian, float fresh cream on the top and stir gently." },
+ { "name": "Bloody Mary",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Tomato juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" },
+ { "special": "2 to 3 dashes of Worcestershire Sauce" },
+ { "special": "Tabasco" },
+ { "special": "Celery salt" },
+ { "special": "Pepper" }
+ ],
+ "garnish": "Celery and optionally lemon wedge",
+ "preparation": "Stir gently, pour all ingredients into highball glass." },
+ { "name": "Mai-tai",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Dark rum" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Triple Sec",
+ "label": "Orange Curaçao" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Syrup",
+ "label": "Orgeat syrup" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Lime juice" }
+ ],
+ "garnish": "Pineapple spear, mint leaves and lime wedge",
+ "preparation": "Shake and strain into highball glass. Serve with straw." },
+ { "name": "Barracuda",
+ "glass": "margarita",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Dark rum",
+ "label": "Gold rum" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Galliano" },
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Pineapple juice" },
+ { "special": "1 dash Lime juice" },
+ { "special": "Top with Prosecco" }
+ ] },
+ { "name": "Sex on the Beach",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Peach schnapps" },
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Cranberry juice" },
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Orange juice" }
+ ],
+ "garnish": "Orange slice",
+ "preparation": "Build all ingredients in a highball glass filled with ice." },
+ { "name": "Monkey Gland",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Orange juice" },
+ { "special": "2 drops Absinthe" },
+ { "special": "2 drops Grenadine" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Derby",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Gin" },
+ { "special": "2 drops Peach Bitters" },
+ { "special": "2 Fresh mint leaves" }
+ ],
+ "garnish": "Mint leaves",
+ "preparation": "Stir in mixing glass with ice cubes. Strain into a cocktail glass." },
+ { "name": "Sidecar",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Lemon juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into cocktail glass." },
+ { "name": "Irish Coffee",
+ "glass": "hot-drink",
+ "category": "Hot Drink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Whiskey",
+ "label": "Irish whiskey" },
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Hot coffee" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cream" },
+ { "special": "1 teaspoon of brown sugar" }
+ ],
+ "preparation": "Warm the Irish whiskey over a burner. Pour into the glass (for hot drink) hot coffee, and add a teaspoon of sugar. Float Cream on top." },
+ { "name": "Sazerac",
+ "glass": "old-fashioned",
+ "category": "After Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Absinthe" },
+ { "special": "1 sugar cube" },
+ { "special": "2 dashes Peychaud’s bitters" }
+ ],
+ "garnish": "Lemon twist",
+ "preparation": "Rinse a chilled old-fashioned glass with the absinthe, add crushed ice and set it aside. Stir the remaining ingredients over ice and set it aside. Discard the ice and any excess absinthe from the prepared glass, and strain the drink into the glass. Note: The original recipe changed after the American Civil War, rye whiskey substituted cognac as it became hard to obtain." },
+ { "name": "Americano",
+ "glass": "old-fashioned",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Campari" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Vermouth",
+ "label": "Red vermouth" },
+ { "special": "A splash of soda water" }
+ ],
+ "garnish": "Half an orange slice",
+ "preparation": "Build into old fashioned glass filled with ice cubes. Add a splash of soda water." },
+ { "name": "Singapore Sling",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Cherry liqueur" },
+ { "unit": "cl",
+ "amount": 0.75,
+ "ingredient": "Triple Sec",
+ "label": "Cointreau" },
+ { "unit": "cl",
+ "amount": 0.75,
+ "ingredient": "DOM Bénédictine" },
+ { "unit": "cl",
+ "amount": 12.0,
+ "ingredient": "Pineapple juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Grenadine" },
+ { "special": "1 dash Angostura bitters" }
+ ],
+ "garnish": "Pineapple slice and a cherry",
+ "preparation": "Shake with ice cubes. Strain into highball glass." },
+ { "name": "French Connection",
+ "glass": "old-fashioned",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "DiSaronno" }
+ ],
+ "preparation": "Build into old fashioned glass filled with ice cubes. Stir gently." },
+ { "name": "Moscow Mule",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 12,
+ "ingredient": "Ginger beer" },
+ { "unit": "cl",
+ "amount": 0.5,
+ "ingredient": "Lime juice" },
+ { "special": "1 slice lime in a highball glass" }
+ ],
+ "garnish": "Lime slice",
+ "preparation": "Combine the vodka and ginger beer. Add lime juice." },
+ { "name": "John Collins",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Soda water" }
+ ],
+ "garnish": "Lemon slice and a cherry",
+ "preparation": "Build into highball glass filled with ice. Stir gently. Add a dash of Angostura bitters. (Note: Use Old Tom Gin for Tom Collins)" },
+ { "name": "Kir",
+ "glass": "white-wine",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Dry White Wine" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Créme liqueur",
+ "label": "Créme de Cassis" }
+ ],
+ "preparation": "Pour Créme de Cassis into glass, top up with white wine. For Kir Royal: Use champagne instead of white wine." },
+ { "name": "Mint Julep",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Whiskey",
+ "label": "Bourbon whiskey" },
+ { "special": "4 fresh mint sprigs" },
+ { "special": "1 teaspoon powdered sugar" },
+ { "special": "2 teaspoons water" }
+ ],
+ "garnish": "Mint sprig",
+ "preparation": "In a highball glass gently muddle the mint, sugar and water. Fill the glass with cracked ice, add Bourbon and stir well until the glass is frost." },
+ { "name": "Tommy's Margarita",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Tequila" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" },
+ { "special": "2 bar spoons of Agave nectar" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "Paradise",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Apricot brandy" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Orange juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Dirty Martini",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Vermouth",
+ "label": "Dry vermouth" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Olive juice" }
+ ],
+ "garnish": "Green olive",
+ "preparation": "Stir in mixing glass with ice cubes. Strain into chilled martini glass." },
+ { "name": "Champagne Cocktail",
+ "glass": "champagne-flute",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Champagne" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Cognac" },
+ { "special": "2 dashes Angostura Bitters" },
+ { "special": "1 sugar cube" }
+ ],
+ "garnish": "Orange slice and a cherry",
+ "preparation": "Add dash of Angostura bitter onto sugar cube and drop it into champagne flute. Add cognac followed by pouring gently chilled champagne." },
+ { "name": "Mary Pickford",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Cherry liqueur",
+ "label": "Maraschino" },
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Pineapple juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Grenadine" }
+ ],
+ "preparation": "Shake and strain into a chilled large cocktail glass." },
+ { "name": "Hemingway Special",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Grapefruit juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Cherry liqueur",
+ "label": "Maraschino" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into a double cocktail glass." },
+ { "name": "Dark 'n' Stormy",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Dark rum" },
+ { "unit": "cl",
+ "amount": 10,
+ "ingredient": "Ginger beer" }
+ ],
+ "garnish": "Lime wedge",
+ "preparation": "Build into highball glass filled with ice. Add rum first and top it with ginger beer." },
+ { "name": "Ramos Fizz",
+ "glass": "highball",
+ "category": "Longdrink",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" },
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Cream" },
+ { "special": "1 Egg white" },
+ { "special": "3 dashes Orange flower water" },
+ { "special": "2 drops Vanilla extract" },
+ { "special": "Soda water" }
+ ],
+ "preparation": "Pour all ingredients (except soda) in a mixing glass, dry shake (no ice) for two minutes, add ice and hard shake for another minute. Strain into a highball glass without ice, top with soda." },
+ { "name": "Russian Spring Punch",
+ "glass": "highball",
+ "category": "Sparkling Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 2.5,
+ "ingredient": "Lemon juice" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Créme liqueur",
+ "label": "Créme de Cassis" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Syrup",
+ "label": "Sugar syrup" }
+ ],
+ "garnish": "Lemon slice and a blackberry",
+ "preparation": "Shake the ingredients and pour into highball glass. Top with Sparkling wine." },
+ { "name": "God Father",
+ "glass": "old-fashioned",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "Whiskey",
+ "label": "Scotch whisky" },
+ { "unit": "cl",
+ "amount": 3.5,
+ "ingredient": "DiSaronno" }
+ ],
+ "preparation": "Build into old fashioned glass filled with ice cubes. Stir gently." },
+ { "name": "Cosmopolitan",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Vodka",
+ "label": "Citron Vodka" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Triple Sec",
+ "label": "Cointreau" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Lime juice" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cranberry juice" }
+ ],
+ "garnish": "Lime slice",
+ "preparation": "Shake with ice cubes. Strain into a large cocktail glass." },
+ { "name": "Dry Martini",
+ "glass": "martini",
+ "category": "Before Dinner Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 6,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Vermouth",
+ "label": "Dry vermouth" }
+ ],
+ "preparation": "Stir in mixing glass with ice cubes. Strain into chilled martini glass. Squeeze oil from lemon peel onto the drink, or garnish with olive." },
+ { "name": "Between the Sheets",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "White rum" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Cognac" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Lemon juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Casino",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Gin",
+ "label": "Old Tom Gin" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Cherry liqueur",
+ "label": "Maraschino" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Orange Bitters" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Lemon juice" }
+ ],
+ "garnish": "Lemon twist and a cherry",
+ "preparation": "Shake with ice cubes. Strain into chilled cocktail glass." },
+ { "name": "Caipirinha",
+ "glass": "old-fashioned",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Cachaca" },
+ { "special": "half fresh lime cut into 4 wedges" },
+ { "special": "2 teaspoon sugar" }
+ ],
+ "preparation": "Place lime and sugar in old fashion glass and muddle. Fill glass with ice and Cachaca (note:Caipiroska- use Vodka instead of Cachaca)." },
+ { "name": "Vampiro",
+ "glass": "highball",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 5,
+ "ingredient": "Tequila",
+ "label": "Silver Tequila" },
+ { "unit": "cl",
+ "amount": 7,
+ "ingredient": "Tomato juice" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Orange juice" },
+ { "unit": "cl",
+ "amount": 1,
+ "ingredient": "Lime juice" },
+ { "special": "1 teaspoon clear honey" },
+ { "special": "Half slice onion finely chopped" },
+ { "special": "Few slices fresh red hot chili peppers" },
+ { "special": "Few drops Worcestershire sauce" },
+ { "special": "Salt" }
+ ],
+ "garnish": "Lime wedge and a green or red chili",
+ "preparation": "Shake with ice cubes. Strain into a highball glass, filled with ice." },
+ { "name": "Kamikaze",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Lime juice" }
+ ],
+ "preparation": "Shake and strain into a chilled cocktail glass." },
+ { "name": "White Lady",
+ "glass": "martini",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4,
+ "ingredient": "Gin" },
+ { "unit": "cl",
+ "amount": 3,
+ "ingredient": "Triple Sec" },
+ { "unit": "cl",
+ "amount": 2,
+ "ingredient": "Lemon juice" }
+ ],
+ "preparation": "Shake with ice cubes. Strain into large cocktail glass." },
+ { "name": "Harvey Wallbanger",
+ "glass": "highball",
+ "category": "All Day Cocktail",
+ "ingredients": [
+ { "unit": "cl",
+ "amount": 4.5,
+ "ingredient": "Vodka" },
+ { "unit": "cl",
+ "amount": 1.5,
+ "ingredient": "Galliano" },
+ { "unit": "cl",
+ "amount": 9,
+ "ingredient": "Orange juice" }
+ ],
+ "garnish": "Orance slice and a cherry",
+ "preparation": "Build vodka and orange juice into a highball glass filled with ice. Stir gently and float Galliano on top." }
+]
diff --git a/work b/work
new file mode 100755
index 0000000..ffa1a11
--- /dev/null
+++ b/work
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+TAG=$1
+if [ -z "$TAG" ]; then
+ echo "Need tag";
+ exit 1;
+fi
+glpsol --check --lp --wmps "mps.$TAG" "lp.$TAG"
+cbc "mps.$TAG" -sec 3600 solve -solution "sol.$TAG"
+echo "Done"