Spaces:
Running
Running
Update leaderboard.py
Browse files- leaderboard.py +8 -5
leaderboard.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
| 1 |
-
from nc_py_api import Nextcloud
|
| 2 |
import json
|
| 3 |
from typing import Dict, Any
|
| 4 |
import time
|
|
@@ -7,21 +6,24 @@ import threading
|
|
| 7 |
import config
|
| 8 |
import math
|
| 9 |
|
| 10 |
-
# Initialize Nextcloud client
|
| 11 |
-
nc = Nextcloud(nextcloud_url=config.NEXTCLOUD_URL, nc_auth_user=config.NEXTCLOUD_USERNAME, nc_auth_pass=config.NEXTCLOUD_PASSWORD)
|
| 12 |
-
|
| 13 |
# Dictionary to store ELO ratings
|
| 14 |
elo_ratings = {}
|
| 15 |
|
| 16 |
def load_leaderboard() -> Dict[str, Any]:
|
|
|
|
| 17 |
try:
|
| 18 |
file_content = nc.files.download(config.NEXTCLOUD_LEADERBOARD_PATH)
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
except Exception as e:
|
| 21 |
print(f"Error loading leaderboard: {str(e)}")
|
| 22 |
return {}
|
| 23 |
|
| 24 |
def save_leaderboard(leaderboard_data: Dict[str, Any]) -> bool:
|
|
|
|
| 25 |
try:
|
| 26 |
json_data = json.dumps(leaderboard_data, indent=2)
|
| 27 |
nc.files.upload(config.NEXTCLOUD_LEADERBOARD_PATH, json_data.encode('utf-8'))
|
|
@@ -262,6 +264,7 @@ def create_backup():
|
|
| 262 |
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
| 263 |
backup_file_name = f"leaderboard_backup_{timestamp}.json"
|
| 264 |
backup_path = f"{config.NEXTCLOUD_BACKUP_FOLDER}/{backup_file_name}"
|
|
|
|
| 265 |
json_data = json.dumps(leaderboard_data, indent=2)
|
| 266 |
nc.files.upload(backup_path, json_data.encode('utf-8'))
|
| 267 |
print(f"Backup created on Nextcloud: {backup_path}")
|
|
|
|
|
|
|
| 1 |
import json
|
| 2 |
from typing import Dict, Any
|
| 3 |
import time
|
|
|
|
| 6 |
import config
|
| 7 |
import math
|
| 8 |
|
|
|
|
|
|
|
|
|
|
| 9 |
# Dictionary to store ELO ratings
|
| 10 |
elo_ratings = {}
|
| 11 |
|
| 12 |
def load_leaderboard() -> Dict[str, Any]:
|
| 13 |
+
nc = config.get_nextcloud_client() # Use the singleton client
|
| 14 |
try:
|
| 15 |
file_content = nc.files.download(config.NEXTCLOUD_LEADERBOARD_PATH)
|
| 16 |
+
if file_content: # Check if content is not empty
|
| 17 |
+
return json.loads(file_content.decode('utf-8'))
|
| 18 |
+
else:
|
| 19 |
+
print(f"Error loading leaderboard: Received empty content from Nextcloud at {config.NEXTCLOUD_LEADERBOARD_PATH}")
|
| 20 |
+
return {}
|
| 21 |
except Exception as e:
|
| 22 |
print(f"Error loading leaderboard: {str(e)}")
|
| 23 |
return {}
|
| 24 |
|
| 25 |
def save_leaderboard(leaderboard_data: Dict[str, Any]) -> bool:
|
| 26 |
+
nc = config.get_nextcloud_client() # Use the singleton client
|
| 27 |
try:
|
| 28 |
json_data = json.dumps(leaderboard_data, indent=2)
|
| 29 |
nc.files.upload(config.NEXTCLOUD_LEADERBOARD_PATH, json_data.encode('utf-8'))
|
|
|
|
| 264 |
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
| 265 |
backup_file_name = f"leaderboard_backup_{timestamp}.json"
|
| 266 |
backup_path = f"{config.NEXTCLOUD_BACKUP_FOLDER}/{backup_file_name}"
|
| 267 |
+
nc = config.get_nextcloud_client() # Use the singleton client
|
| 268 |
json_data = json.dumps(leaderboard_data, indent=2)
|
| 269 |
nc.files.upload(backup_path, json_data.encode('utf-8'))
|
| 270 |
print(f"Backup created on Nextcloud: {backup_path}")
|