1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# contessa
Recipe suggestion bot. Suggests random recipes by meal type, lists available
dishes per category, and gives full step-by-step recipes on request.
## Dependencies
No external libraries required.
## Commands
All commands require channel context (`@plugin.require_chanmsg`).
| Command | Description |
|---------|-------------|
| `!breakfast [list]` | Random breakfast suggestion, or list all breakfast dishes |
| `!lunch [list]` | Random lunch suggestion, or list all lunch dishes |
| `!dinner [list]` | Random dinner suggestion, or list all dinner dishes |
| `!snack [list]` | Random snack suggestion, or list all snacks |
| `!recipe <name>` | Full recipe: description, ingredients, steps (3 lines) |
### Admin (owner)
| Command | Description |
|---------|-------------|
| `!join #channel` | Join a channel |
| `!part [#channel]` | Leave a channel |
| `!chans` | List channels |
| `!help` | Show usage (PM) |
## Recipe data
Recipes are loaded from a JSON file at startup. Format:
```json
{
"breakfast": [
{
"name": "Dish Name",
"description": "One-line description.",
"ingredients": ["item 1", "item 2"],
"steps": ["Step one.", "Step two.", "Step three."]
}
],
"lunch": [...],
"dinner": [...],
"snack": [...]
}
```
The included `recipes.json` has 24 recipes per category (96 total), covering
both Egyptian/Middle Eastern and Western/European dishes.
`!recipe` matches by exact name first, then by substring across all categories.
## Config keys
| Key | Default | Description |
|-----|---------|-------------|
| `[contessa] recipes_path` | `/var/contessa/recipes.json` | Path to recipes JSON file |
|