"All Green" meta-beeminding goal

Yup. :slight_smile: Uses a modified version of this Beeminder wrapper.

#!/usr/bin/env python3

import os
import yaml
from beeminderpy import Beeminder
import time
import requests
from functions import *
import json


def post_to_goal(goal, timestamp, value, comment):
    b.create_datapoint(
        config["auth"]["beeminder"]["username"],
        goal,
        timestamp,
        value,
        comment
    )


directory = os.path.dirname(os.path.realpath(__file__))
config = yaml.load(open(f"{directory}/config.yaml", "r"))
b = Beeminder(config["auth"]["beeminder"]["token"])

##################
# Update /buffer #
##################

goal_infos = json.loads(b.get_goals(config["auth"]["beeminder"]["username"]))
now = time.time()
buffers = {info["slug"]: (info["losedate"] - now) / (60 * 60 * 24) for info in goal_infos if info["slug"] is not "buffer"}
sorted_buffer_keys = sorted(buffers, key=buffers.__getitem__)
min_key = sorted_buffer_keys[0]

post_to_goal("buffer", now, buffers[min_key], f'{min_key} #airtimer #cron')

print(datetime.datetime.now(), "Posted datapoint to /buffer")
1 Like