From 565e83d92f6ca5378a46b3092fc82bf3e77ac959 Mon Sep 17 00:00:00 2001 From: Alexander Munch-Hansen Date: Sat, 6 Apr 2019 19:53:26 +0200 Subject: [PATCH] Just eat strat --- server/nightr/strategies/just_eat.py | 36 +++++++++++++++++++++++--- server/nightr/strategies/tide_strat.py | 2 +- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/server/nightr/strategies/just_eat.py b/server/nightr/strategies/just_eat.py index 1c31e49..4376958 100644 --- a/server/nightr/strategies/just_eat.py +++ b/server/nightr/strategies/just_eat.py @@ -3,15 +3,43 @@ from bs4 import BeautifulSoup from datetime import datetime, timedelta import requests_cache +from ..util import Context, Prediction + requests_cache.install_cache("requests_cache", expire_after=timedelta(minutes=10)) -def is_restaurant_open(name): +def is_restaurant_open(name, open, close) -> Prediction: + p = Prediction() + headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'} r = requests.get("https://www.just-eat.dk/area/8000-århusc", headers=headers) soup = BeautifulSoup(r.content, features='html5lib') - print(soup.prettify()) - print(soup.find('div', {'class': 'listing-group'})) + listing_groups = soup.find_all('div', {'class': 'listing-group'}) -is_restaurant_open("lel") \ No newline at end of file + p.reasons.append("Hopefully we are not banned from Just-eat ..") + + nice_group = None + for x in listing_groups: + if x['data-test-id'] == 'listingGroupOpen': + nice_group = x + + if nice_group is None: + p.reasons.append("Apparently we are banned from just-eat. We therefore have no clue.") + p.probability = 0.5 + return p + + all_listings = nice_group.find_all('a', {'class': 'mediaElement'}) + + if any(name in x['href'] for x in all_listings): + p.reasons.append(f"{name} is currently open. We conclude from this, that there is {1 / 11}% chance of it being night outside!") + p.probability = 1 / 11 + else: + p.reasons.append(f"{name} is not open. We can conclude from this, that there is {1 - (1/11)}% chance of it currently being night outside! ") + p.probability = 1 - (1 / 11) + + return p + + +def do_just_eat_strat(context: Context) -> Prediction: + return is_restaurant_open('stop2shop', 12, 23) diff --git a/server/nightr/strategies/tide_strat.py b/server/nightr/strategies/tide_strat.py index 2b48c4f..b73f450 100644 --- a/server/nightr/strategies/tide_strat.py +++ b/server/nightr/strategies/tide_strat.py @@ -50,7 +50,7 @@ def is_tide(context: Context) -> Prediction: if last_match[1] < 0 and last_match[1] < current_water_level: # Increasing time = last_match while time[1] != current_water_level: - + time[0] += average_delta time[1] += 1