mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-01-01 15:28:35 +00:00
[AB-xxx] initial experience leaderboard version
This commit is contained in:
3
python/components/core/docker/Dockerfile
Normal file
3
python/components/core/docker/Dockerfile
Normal file
@@ -0,0 +1,3 @@
|
||||
FROM alpine:3.19.0
|
||||
ADD resources /python/resources
|
||||
ADD python /python
|
||||
16
python/components/core/python/endpoints/server.py
Normal file
16
python/components/core/python/endpoints/server.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from __main__ import app
|
||||
|
||||
import requests
|
||||
import logging
|
||||
import os
|
||||
|
||||
backend_host = os.getenv('BACKEND_HOST')
|
||||
backend_port = os.getenv('BACKEND_PORT')
|
||||
|
||||
server_url = f'http://{backend_host}:{backend_port}/servers/v1'
|
||||
|
||||
@app.route('/servers/v1/<serverId>/info')
|
||||
def get_server_info(serverId):
|
||||
server = requests.get(f'{server_url}/{serverId}/info')
|
||||
logging.info(f'returning server info')
|
||||
return server.text, server.status_code
|
||||
0
python/components/core/resources/.gitkeep
Normal file
0
python/components/core/resources/.gitkeep
Normal file
3
python/components/experience-tracking/docker/Dockerfile
Normal file
3
python/components/experience-tracking/docker/Dockerfile
Normal file
@@ -0,0 +1,3 @@
|
||||
FROM alpine:3.19.0
|
||||
ADD resources /python/resources
|
||||
ADD python /python
|
||||
@@ -0,0 +1,30 @@
|
||||
from __main__ import app
|
||||
|
||||
from flask import request, render_template
|
||||
import requests
|
||||
import logging
|
||||
import os
|
||||
|
||||
backend_host = os.getenv('BACKEND_HOST')
|
||||
backend_port = os.getenv('BACKEND_PORT')
|
||||
|
||||
leaderboard_url = f'http://{backend_host}:{backend_port}/experience/v1/leaderboards'
|
||||
|
||||
@app.route('/experience/v1/leaderboards/<serverId>')
|
||||
def get_leaderboard(serverId):
|
||||
page = int(request.args.get('page', 0, type=int))
|
||||
size = int(request.args.get('size', 25, type=int))
|
||||
leaderboard = requests.get(f'{leaderboard_url}/{serverId}?page={page}&size={size}')
|
||||
logging.info(f'returning leaderboard for server')
|
||||
return leaderboard.text, leaderboard.status_code
|
||||
|
||||
@app.route('/experience/v1/leaderboards/<serverId>/config')
|
||||
def get_experience_config(serverId):
|
||||
leaderboard = requests.get(f'{leaderboard_url}/{serverId}/config')
|
||||
logging.info(f'returning experience config for server')
|
||||
return leaderboard.text, leaderboard.status_code
|
||||
|
||||
|
||||
@app.route('/experience/leaderboards/<serverId>')
|
||||
def render_index(serverId):
|
||||
return render_template('experience/leaderboards/index.html', serverId=serverId)
|
||||
1
python/components/experience-tracking/resources/templates/experience/leaderboards/.gitignore
vendored
Normal file
1
python/components/experience-tracking/resources/templates/experience/leaderboards/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*
|
||||
Reference in New Issue
Block a user