Skip to content

Instantly share code, notes, and snippets.

@H4ckerxx44
Last active April 16, 2024 09:53
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save H4ckerxx44/47b715e4167bc15212116863dee37280 to your computer and use it in GitHub Desktop.
Save H4ckerxx44/47b715e4167bc15212116863dee37280 to your computer and use it in GitHub Desktop.
BeamNG.drive updates
from datetime import date, timedelta
WEEKDAYS = {0: "monday", 1: "tuesday", 2: "wednesday", 3: "thursday", 4: "friday", 5: "saturday", 6: "sunday"}
TODAY = date.today()
v31_3 = date(year=2024, month=1, day=23)
v31_2 = date(year=2023, month=12, day=20)
v31_1 = date(year=2023, month=12, day=15)
v31 = date(year=2023, month=12, day=14)
V31 = [v31, v31_1, v31_2, v31_3]
v30_6 = date(year=2023, month=10, day=24)
v30_5 = date(year=2023, month=9, day=29)
v30_4 = date(year=2023, month=9, day=27)
v30_3 = date(year=2023, month=9, day=25)
v30_2 = date(year=2023, month=9, day=21)
v30_1 = date(year=2023, month=9, day=21)
v30 = date(year=2023, month=9, day=20)
V30 = [v30, v30_1, v30_2, v30_3, v30_4, v30_5, v30_6]
v29_1 = date(year=2023, month=7, day=4)
v29 = date(year=2023, month=7, day=4)
V29 = [v29, v29_1]
v28_2 = date(year=2023, month=5, day=11)
v28_1 = date(year=2023, month=4, day=18)
v28 = date(year=2023, month=4, day=4)
V28 = [v28, v28_1, v28_2]
v27_2 = date(year=2023, month=2, day=9)
v27_1 = date(year=2022, month=12, day=15)
v27 = date(year=2022, month=12, day=13)
V27 = [v27, v27_1, v27_2]
v26_2 = date(year=2022, month=10, day=19)
v26_1 = date(year=2022, month=9, day=22)
v26 = date(year=2022, month=9, day=19)
V26 = [v26, v26_1, v26_2]
v25_5 = date(year=2022, month=8, day=4)
v25_4 = date(year=2022, month=7, day=5)
v25_3 = date(year=2022, month=6, day=23)
v25_2 = date(year=2022, month=6, day=21)
v25_1 = date(year=2022, month=6, day=17)
v25 = date(year=2022, month=6, day=15)
V25 = [v25, v25_1, v25_2, v25_3, v25_4, v25_5]
v24_1_3 = date(year=2022, month=3, day=22)
v24_1_2 = date(year=2022, month=2, day=9)
v24_1_1 = date(year=2021, month=12, day=22)
v24_1 = date(year=2021, month=12, day=20)
v24_0_2 = date(year=2021, month=12, day=15)
v24_0_1 = date(year=2021, month=12, day=3)
v24 = date(year=2021, month=12, day=2)
V24 = [v24, v24_0_1, v24_0_2, v24_1, v24_1_1, v24_1_2, v24_1_3]
v23_5 = date(year=2021, month=8, day=16)
v23_4 = date(year=2021, month=7, day=27)
v23_3 = date(year=2021, month=7, day=19)
v23_2 = date(year=2021, month=7, day=6)
v23_1 = date(year=2021, month=7, day=1)
v23 = date(year=2021, month=6, day=30)
V23 = [v23, v23_1, v23_2, v23_3, v23_4, v23_5]
v22_3 = date(year=2021, month=4, day=28)
v22_2 = date(year=2021, month=4, day=15)
v22_1 = date(year=2021, month=3, day=31)
v22 = date(year=2021, month=3, day=29)
V22 = [v22, v22_1, v22_2, v22_3]
v21_4 = date(year=2021, month=2, day=11)
v21_3 = date(year=2021, month=1, day=12)
v21_2 = date(year=2020, month=12, day=21)
v21_1 = date(year=2020, month=12, day=18)
v21 = date(year=2020, month=12, day=15)
V21 = [v21, v21_1, v21_2, v21_3, v21_4]
v20_2 = date(year=2020, month=8, day=27)
v20_1 = date(year=2020, month=8, day=12)
v20 = date(year=2020, month=8, day=6)
V20 = [v20, v20_1, v20_2]
v19_4 = date(year=2020, month=5, day=19)
v19_3 = date(year=2020, month=5, day=6)
v19_2 = date(year=2020, month=4, day=27)
v19_1 = date(year=2020, month=4, day=20)
v19 = date(year=2020, month=4, day=8)
V19 = [v19, v19_1, v19_2, v19_3, v19_4]
v18_4 = date(year=2019, month=12, day=20)
v18_3 = date(year=2019, month=12, day=19)
v18_2 = date(year=2019, month=12, day=17)
v18_1 = date(year=2019, month=12, day=12)
v18 = date(year=2019, month=12, day=9)
V18 = [v18, v18_1, v18_2, v18_3, v18_4]
v17_5 = date(year=2019, month=9, day=25)
v17_4 = date(year=2019, month=9, day=11)
v17_3 = date(year=2019, month=8, day=29)
v17_2 = date(year=2019, month=8, day=22)
v17_1 = date(year=2019, month=8, day=19)
v17 = date(year=2019, month=8, day=16)
V17 = [v17, v17_1, v17_2, v17_3, v17_4, v17_5]
v16_2 = date(year=2019, month=5, day=23)
v16_1 = date(year=2019, month=5, day=9)
v16 = date(year=2019, month=5, day=3)
V16 = [v16, v16_1, v16_2]
v15_4 = date(year=2019, month=2, day=27)
v15_3 = date(year=2019, month=1, day=29)
v15_2 = date(year=2018, month=1, day=11)
v15_1 = date(year=2018, month=12, day=21)
v15 = date(year=2018, month=12, day=20)
V15 = [v15, v15_1, v15_2, v15_3, v15_4]
v14_3 = date(year=2018, month=11, day=27)
v14_2 = date(year=2018, month=11, day=9)
v14_1 = date(year=2018, month=11, day=2)
v14 = date(year=2018, month=10, day=30)
V14 = [v14, v14_1, v14_2, v14_3]
v13_4 = date(year=2018, month=8, day=10)
v13_3 = date(year=2018, month=8, day=3)
v13_2 = date(year=2018, month=7, day=27)
v13_1 = date(year=2018, month=7, day=20)
v13 = date(year=2018, month=7, day=13)
V13 = [v13, v13_1, v13_2, v13_3, v13_4]
v12_2 = date(year=2018, month=4, day=20)
v12_1 = date(year=2018, month=4, day=6)
v12 = date(year=2018, month=4, day=3)
V12 = [v12, v12_1, v12_2]
v11_0_5 = date(year=2018, month=2, day=2)
v11_0_4 = date(year=2017, month=12, day=20)
v11_0_3 = date(year=2017, month=12, day=8)
v11_0_2 = date(year=2017, month=11, day=28)
v11_0_1 = date(year=2017, month=11, day=26)
v11 = date(year=2017, month=11, day=23)
V11 = [v11, v11_0_1, v11_0_2, v11_0_3, v11_0_4, v11_0_5]
v10_1 = date(year=2017, month=8, day=17)
v10 = date(year=2017, month=8, day=9)
V10 = [v10, v10_1]
v9_0_5 = date(year=2017, month=4, day=27)
v9_0_4 = date(year=2017, month=4, day=21)
v9_0_3 = date(year=2017, month=4, day=20)
v9_0_2 = date(year=2017, month=4, day=20)
v9_0_1 = date(year=2017, month=4, day=15)
v9 = date(year=2017, month=4, day=14)
V9 = [v9, v9_0_1, v9_0_2, v9_0_3, v9_0_4, v9_0_5]
v8_0_1 = date(year=2016, month=12, day=24)
v8 = date(year=2016, month=12, day=21)
V8 = [v8, v8_0_1]
v7 = date(year=2016, month=10, day=4)
V7 = [v7]
v6_1 = date(year=2016, month=7, day=29)
v6 = date(year=2016, month=7, day=22)
V6 = [v6, v6_1]
v5_6_1 = date(year=2016, month=5, day=4)
v5_6 = date(year=2016, month=5, day=4)
v5_5 = date(year=2016, month=4, day=29)
v5_4 = date(year=2016, month=4, day=19)
v5_3_2 = date(year=2016, month=3, day=16)
v5_3_1 = date(year=2016, month=3, day=15)
v5_3_0 = date(year=2016, month=3, day=11)
v5_2_1 = date(year=2016, month=2, day=10)
v5_2_0 = date(year=2016, month=2, day=9)
v5_1 = date(year=2015, month=12, day=30)
v5 = date(year=2015, month=12, day=18)
V5 = [v5, v5_1, v5_2_0, v5_2_1, v5_3_0, v5_3_1, v5_3_2, v5_4, v5_5, v5_6, v5_6_1]
v4_3_2 = date(year=2015, month=11, day=20)
v4_3_1 = date(year=2015, month=11, day=16)
v4_3_0 = date(year=2015, month=10, day=31)
v4_2_2 = date(year=2015, month=9, day=26)
v4_2_1 = date(year=2015, month=9, day=25)
v4_2_0 = date(year=2015, month=9, day=18)
v4_1_2 = date(year=2015, month=8, day=9)
v4_1_1 = date(year=2015, month=8, day=7)
v4_1_0 = date(year=2015, month=7, day=31)
v4_0_6 = date(year=2015, month=6, day=26)
v4_0_5 = date(year=2015, month=6, day=14)
v4_0_4 = date(year=2015, month=6, day=8)
v4_0_3 = date(year=2015, month=6, day=2)
v4_0_2 = date(year=2015, month=5, day=30)
v4_0_1 = date(year=2015, month=5, day=30)
v4 = date(year=2015, month=5, day=27)
V4 = [v4, v4_0_1, v4_0_2, v4_0_3, v4_0_4, v4_0_5, v4_0_6, v4_1_0, v4_1_1, v4_1_2, v4_2_0, v4_2_1, v4_2_2, v4_3_0, v4_3_1, v4_3_2]
v3_7_8 = date(year=2015, month=3, day=31)
v3_7_7 = date(year=2015, month=2, day=20)
all_updates = V4 + V5 + V6 + V7 + V8 + V9 + V10 + V11 + V12 + V13 + V14 + V15 + V16 + V17 + V18 + V19 + V20 + V21 + V22 + V23 + V24 + V25 + V26 + V27 + V28 + V29 + V30 + V31
all_major_updates = [v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30,
v31]
major_update_count = len(all_major_updates)
diffs = []
for i in range(1, major_update_count):
prev_update = all_major_updates[i - 1]
now_update = all_major_updates[i]
diff = (now_update - prev_update).days
# print(f"{diff} days between {prev_update} to {now_update}")
diffs.append(diff)
time_between_updates = sum(diffs) / len(diffs)
days = [d.weekday() for d in all_updates]
# weekend_updates = [(d, WEEKDAYS.get(d.weekday())) for d in all_updates if d.weekday() in (5, 6, 7)]
# print(weekend_updates)
last_on_weekday = [0, 0, 0, 0, 0, 0, 0]
for update in all_updates:
last_on_weekday[update.weekday()] = update
for i in range(0, 7):
print(f"# {days.count(i)} updates happened on {WEEKDAYS.get(i)} (last on: {last_on_weekday[i]})")
print("# ----------------------------")
print(f"# {len(days)} updates total")
last_major = all_major_updates[-1]
print(f"# {(TODAY - last_major).days} days since the last major update")
print(f"# Average time between updates: {int(time_between_updates)} days")
expected_update_date = last_major + timedelta(days=int(time_between_updates))
remaining_days_till_update = (expected_update_date - TODAY).days
print(f"# Expected update date: {expected_update_date} ({remaining_days_till_update} days till update)")
# ================================ #
# 13 updates happened on monday (last on: 2023-09-25)
# 26 updates happened on tuesday (last on: 2024-01-23)
# 26 updates happened on wednesday (last on: 2023-12-20)
# 28 updates happened on thursday (last on: 2023-12-14)
# 33 updates happened on friday (last on: 2023-12-15)
# 6 updates happened on saturday (last on: 2017-04-15)
# 3 updates happened on sunday (last on: 2017-11-26)
# ----------------------------
# 135 updates total
# 124 days since the last major update
# Average time between updates: 115 days
# Expected update date: 2024-04-07 (-9 days till update)
# Source: https://gist.github.com/H4ckerxx44/47b715e4167bc15212116863dee37280)
# ================================ #
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment