From 6ee03105f530647b4e31f5f0a46bd1a757821016 Mon Sep 17 00:00:00 2001 From: Whizel Date: Sun, 7 Apr 2019 05:01:56 +0200 Subject: [PATCH] dunno --- dota2players.png | Bin 0 -> 49823 bytes server/README.md | 27 +++++++++++++++++ server/nightr/app.py | 3 +- server/nightr/strategies/just_eat.py | 2 +- server/nightr/strategies/steam.py | 40 +++++++++++++++++++++++++ server/nightr/strategies/tide_strat.py | 6 ++-- 6 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 dota2players.png create mode 100644 server/nightr/strategies/steam.py diff --git a/dota2players.png b/dota2players.png new file mode 100644 index 0000000000000000000000000000000000000000..05749260d2f6978ca8558e623ef8988cec4175ce GIT binary patch literal 49823 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 Prediction: p.probability = 1 / 11 else: p.reasons.append(f"Our favorite pizza place, {name}, is closed.") - p.reasons.append(f"We can conclude from this, that there is {1 - (1/11)}% chance of it currently being night outside!") + p.reasons.append(f"We can conclude from this, that there is {1 - (1/11):.1f}% chance of it currently being night outside!") p.probability = round(1 - (1 / 11), 2) return p diff --git a/server/nightr/strategies/steam.py b/server/nightr/strategies/steam.py new file mode 100644 index 0000000..266b7c2 --- /dev/null +++ b/server/nightr/strategies/steam.py @@ -0,0 +1,40 @@ +from datetime import datetime +from pathlib import Path + +import requests + +from ..util import Context, Prediction + + +def dota2_players(context: Context) -> Prediction: + """ + How many players are playing Dota 2? + """ + p = Prediction() + + # Find the historic data closest matching the current number of players. Lol yolo + current_players = get_dota2_players() + with Path(__file__).parent.joinpath("dotaplayers 2019-04-06 13:43:33.074496.csv").open() as csv: + best_players, best_dt = min(csv, key=lambda l: abs(int(l.rstrip().split(", ")[0]) - current_players)).rstrip().split(", ") + best_match_players = int(best_players) + best_match_datetime = datetime.strptime(best_dt, "%Y-%m-%d %H:%M:%S.%f") + + night = best_match_datetime.hour < 6 or best_match_datetime.hour >= 22 + night_description = "night" if night else "day" + + p.reasons.append(f"{current_players} people are currently playing Dota 2.") + p.reasons.append(f"On the {night_description} of {best_match_datetime.strftime('%B %d')}, {best_match_players} were playing Dota 2.") + p.reasons.append(f"Therefore, it must currently be {night_description}time.") + + p.probability = float(night) # TODO: actual float lol gg + + return p + + +def get_dota2_players(): + header = {"Client-ID": "F07D7ED5C43A695B3EBB01C28B6A18E5"} + appId = 570 + game_players_url = 'https://api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayers/v1/?format=json&appid=' + str(appId) + game_players = requests.get(game_players_url, headers=header) + players_str = str(game_players.json()['response']['player_count']) + return int(players_str) diff --git a/server/nightr/strategies/tide_strat.py b/server/nightr/strategies/tide_strat.py index ef13e8c..17aa996 100644 --- a/server/nightr/strategies/tide_strat.py +++ b/server/nightr/strategies/tide_strat.py @@ -19,9 +19,9 @@ def is_tide(context: Context) -> Prediction: month, cur_year_total_cars, last_year_total_cars = determine_month() month = int(month) - p.reasons.append(f"The month is {calendar.month_name[month]}") p.reasons.append(f"The number of cars having driven on the Storbæltsbro is {cur_year_total_cars}, in the current year") - p.reasons.append(f"The number of cars having driven over it in the last year is {last_year_total_cars}, thus the frequency is: {last_year_total_cars / cur_year_total_cars}") + p.reasons.append(f"The number of cars having driven over it in the last year is {last_year_total_cars}, thus the frequency is: {last_year_total_cars / cur_year_total_cars:.2f}") + p.reasons.append(f"The month is therefore {calendar.month_name[month]}") tide_data = requests.get('https://www.dmi.dk/fileadmin/user_upload/Bruger_upload/Tidevand/2019/Aarhus.t.txt') @@ -77,7 +77,7 @@ def is_tide(context: Context) -> Prediction: moments.append(time[0]) night = sum([1 for x in moments if 6 >= x.hour or x.hour >= 22]) - p.reasons.append(f"The water level is currently at {current_water_level}") + p.reasons.append(f"The water level is currently at {current_water_level} in the Aarhus Bay") p.reasons.append(f"The number of times the water is at the current level at nighttime is: {night}, compared to the total amount of times in {calendar.month_name[month]}, being {len(moments)}") p.probability = 1 - (night / len(moments))