Skip to content

Commit bc3783c

Browse files
committed
Restructure the lunch data in strings database
Introduce some depth into the datastructure instead of having multiple separate dictionaries with prefixes in the keys.
1 parent 1c89335 commit bc3783c

File tree

3 files changed

+103
-103
lines changed

3 files changed

+103
-103
lines changed

marvin_actions.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -243,21 +243,23 @@ def marvinLunch(row):
243243
Help decide where to eat.
244244
"""
245245
lunchOptions = {
246-
'stan centrum karlskrona kna': 'lunch-karlskrona',
247-
'ängelholm angelholm engelholm': 'lunch-angelholm',
248-
'hässleholm hassleholm': 'lunch-hassleholm',
249-
'malmö malmo malmoe': 'lunch-malmo',
250-
'göteborg goteborg gbg': 'lunch-goteborg'
246+
'stan centrum karlskrona kna': 'karlskrona',
247+
'ängelholm angelholm engelholm': 'angelholm',
248+
'hässleholm hassleholm': 'hassleholm',
249+
'malmö malmo malmoe': 'malmo',
250+
'göteborg goteborg gbg': 'goteborg'
251251
}
252252

253-
if any(r in row for r in ["lunch", "mat", "äta", "luncha"]):
254-
lunchStr = getString('lunch-message')
253+
data = getString("lunch")
255254

255+
if any(r in row for r in ["lunch", "mat", "äta", "luncha"]):
256+
places = data.get("location").get("bth")
256257
for keys, value in lunchOptions.items():
257258
if any(r in row for r in keys.split(" ")):
258-
return lunchStr.format(getString(value))
259+
places = data.get("location").get(value)
259260

260-
return lunchStr.format(getString('lunch-bth'))
261+
lunchStr = getString("lunch", "message")
262+
return lunchStr.format(places[random.randint(0, len(places) - 1)])
261263

262264
return None
263265

marvin_strings.json

Lines changed: 90 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -97,98 +97,96 @@
9797
}
9898
},
9999

100-
"lunch-message": [
101-
"Ska vi ta {}?",
102-
"Jag är lite sugen på {}?",
103-
"Jag tänkte käka på {}, ska du med?",
104-
"{}, där är det mysigt, ska vi ta där?"
105-
],
106-
107-
"lunch-karlskrona": [
108-
"Olles krovbar",
109-
"Lila thai stället",
110-
"donken",
111-
"tex mex stället vid subway",
112-
"Subway",
113-
"Nya peking",
114-
"kebab house",
115-
"Royal thai",
116-
"thai stället vid hemmakväll",
117-
"Gelato",
118-
"Indian garden",
119-
"Sumo sushi",
120-
"Pasterian i stan",
121-
"Biobaren",
122-
"Michelangelo"
123-
],
124-
125-
"lunch-bth": [
126-
"thairestaurangen vid korsningen",
127-
"fiket jämte demolabbet",
128-
"Indiska",
129-
"Pappa curry",
130-
"boden uppe på parkeringen",
131-
"Bergåsa kebab",
132-
"Pasterian",
133-
"Villa Oscar",
134-
"Eat here",
135-
"Bistro J"
136-
],
137-
138-
"lunch-angelholm": [
139-
"Kirris",
140-
"Passagen",
141-
"Ica (mmmm broccoli)",
142-
"Åkanten (Om sommar och sol)",
143-
"Top Falafel",
144-
"Subway",
145-
"Acapulco",
146-
"Kebab på torget",
147-
"Ostbutiken",
148-
"Hummerhuset",
149-
"Klitterhus (fancy stuff)"
150-
],
151-
152-
"lunch-hassleholm": [
153-
"pastavagnen på torget",
154-
"Freds",
155-
"mcDonalds",
156-
"subway",
157-
"kinabuffé på Cats",
158-
"valentino",
159-
"lotterilådan",
160-
"casablance",
161-
"det där stället i gallerian",
162-
"infinity",
163-
"östervärn",
164-
"argentina",
165-
"T4"
166-
],
167-
168-
"lunch-malmo": [
169-
"afrikanskt på Calabass (https://www.calabass.com/)",
170-
"mexikanskt på Zócalo (https://zocalo.se/restaurangerna/malmo/)",
171-
"hamburgare på Surf Shack (https://surfshacksmashburgers.com/)",
172-
"hamburgare på Casual Street Food (https://www.casualstreetfood.se/)",
173-
"hamburgare på Tommi's (https://www.tommisburgerjoint.se/)",
174-
"kebab på Döner Kebab (https://www.triangeln.com/doner_kebab)"
175-
],
176-
177-
"lunch-goteborg": [
178-
"halvspecial på Preem",
179-
"grillat på Odinsgrillen (https://www.odinsparkgrill.se/)",
180-
"hamburgare på Burgersson Frigga (https://www.burgersson.se/)",
181-
"hamburgare på Tugg (https://gbg.tuggburgers.se/)",
182-
"japanskt på Mikado (https://www.mikadogoteborg.se/)",
183-
"pizza på I love pizza (https://www.ilovepizza.se/)",
184-
"burrito på TomToms Burritos (https://www.tomtoms.se/)",
185-
"steak på Brasa (https://www.restaurangbrasa.se/)",
186-
"något fint på Post-hotellet (https://www.nordabargrill.se/lunch/)",
187-
"något på John Scott's Place (https://johnscotts.se/palace/)",
188-
"husman på Vällagat (https://www.vallagat.se/)",
189-
"husman på AtWork (https://atwork.nu/restaurang/)",
190-
"sallad på MiXiT (https://mixitgbg.se/mixit-garda/)"
191-
],
100+
"lunch": {
101+
"message" : [
102+
"Ska vi ta {}?",
103+
"Jag är lite sugen på {}?",
104+
"Jag tänkte käka på {}, ska du med?",
105+
"{}, där är det mysigt, ska vi ta där?"
106+
],
107+
"location": {
108+
"karlskrona": [
109+
"Olles krovbar",
110+
"Lila thai stället",
111+
"donken",
112+
"tex mex stället vid subway",
113+
"Subway",
114+
"Nya peking",
115+
"kebab house",
116+
"Royal thai",
117+
"thai stället vid hemmakväll",
118+
"Gelato",
119+
"Indian garden",
120+
"Sumo sushi",
121+
"Pasterian i stan",
122+
"Biobaren",
123+
"Michelangelo"
124+
],
125+
"bth": [
126+
"thairestaurangen vid korsningen",
127+
"fiket jämte demolabbet",
128+
"Indiska",
129+
"Pappa curry",
130+
"boden uppe på parkeringen",
131+
"Bergåsa kebab",
132+
"Pasterian",
133+
"Villa Oscar",
134+
"Eat here",
135+
"Bistro J"
136+
],
137+
"angelholm": [
138+
"Kirris",
139+
"Passagen",
140+
"Ica (mmmm broccoli)",
141+
"Åkanten (Om sommar och sol)",
142+
"Top Falafel",
143+
"Subway",
144+
"Acapulco",
145+
"Kebab på torget",
146+
"Ostbutiken",
147+
"Hummerhuset",
148+
"Klitterhus (fancy stuff)"
149+
],
150+
"hassleholm": [
151+
"pastavagnen på torget",
152+
"Freds",
153+
"mcDonalds",
154+
"subway",
155+
"kinabuffé på Cats",
156+
"valentino",
157+
"lotterilådan",
158+
"casablance",
159+
"det där stället i gallerian",
160+
"infinity",
161+
"östervärn",
162+
"argentina",
163+
"T4"
164+
],
165+
"malmo": [
166+
"afrikanskt på Calabass (https://www.calabass.com/)",
167+
"mexikanskt på Zócalo (https://zocalo.se/restaurangerna/malmo/)",
168+
"hamburgare på Surf Shack (https://surfshacksmashburgers.com/)",
169+
"hamburgare på Casual Street Food (https://www.casualstreetfood.se/)",
170+
"hamburgare på Tommi's (https://www.tommisburgerjoint.se/)",
171+
"kebab på Döner Kebab (https://www.triangeln.com/doner_kebab)"
172+
],
173+
"goteborg": [
174+
"halvspecial på Preem",
175+
"grillat på Odinsgrillen (https://www.odinsparkgrill.se/)",
176+
"hamburgare på Burgersson Frigga (https://www.burgersson.se/)",
177+
"hamburgare på Tugg (https://gbg.tuggburgers.se/)",
178+
"japanskt på Mikado (https://www.mikadogoteborg.se/)",
179+
"pizza på I love pizza (https://www.ilovepizza.se/)",
180+
"burrito på TomToms Burritos (https://www.tomtoms.se/)",
181+
"steak på Brasa (https://www.restaurangbrasa.se/)",
182+
"något fint på Post-hotellet (https://www.nordabargrill.se/lunch/)",
183+
"något på John Scott's Place (https://johnscotts.se/palace/)",
184+
"husman på Vällagat (https://www.vallagat.se/)",
185+
"husman på AtWork (https://atwork.nu/restaurang/)",
186+
"sallad på MiXiT (https://mixitgbg.se/mixit-garda/)"
187+
]
188+
}
189+
},
192190

193191
"sun": {
194192
"url": "https://api.sunrisesunset.io/json?lat=56.182244&lng=15.5882305",

test_marvin_actions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,8 @@ def testLunchLocations(self):
197197
locations = ["karlskrona", "goteborg", "angelholm", "hassleholm", "malmo"]
198198
with mock.patch("marvin_actions.random") as r:
199199
for location in locations:
200-
for index, place in enumerate(self.strings.get(f"lunch-{location}")):
201-
r.randint.side_effect = [0, index]
200+
for i, place in enumerate(self.strings.get("lunch").get("location").get(location)):
201+
r.randint.side_effect = [0, i]
202202
self.assertActionOutput(
203203
marvin_actions.marvinLunch, f"mat {location}", f"Ska vi ta {place}?")
204204
r.randint.side_effect = [1, 2]

0 commit comments

Comments
 (0)