-
Notifications
You must be signed in to change notification settings - Fork 0
/
data_manager.py
44 lines (38 loc) · 1.13 KB
/
data_manager.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import yaml
import os
import requests
import json
GIST_ID = os.environ['GIST_ID']
TOKEN = os.environ['TOKEN']
GIST_FILENAME = os.environ['GIST_FILENAME']
headers = {"Authorization": f"token {TOKEN}"}
def fetch_gist_content():
url = f"https://api.github.com/gists/{GIST_ID}"
response = requests.get(url, headers=headers)
response.raise_for_status()
gist_data = response.json()
return gist_data['files'][GIST_FILENAME]['content']
def update_gist(content):
url = f"https://api.github.com/gists/{GIST_ID}"
data = {
"files": {
GIST_FILENAME: {
"content": content
}
}
}
response = requests.patch(url, headers=headers, data=json.dumps(data))
response.raise_for_status()
return response.json()
def load_data():
try:
content = fetch_gist_content()
return yaml.safe_load(content)
except Exception as e:
return {"pinball_machines": [], "players": [], "scores": []}
def save_data(data):
try:
content = yaml.dump(data)
update_gist(content)
except Exception as e:
print(f"Error saving data: {e}")