mirror of
https://github.com/Sheldan/Sissi.git
synced 2026-01-05 00:53:43 +00:00
[SIS-xxx] refactoring rest api to use a common code base
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "Starting python server..."
|
||||
cd python && python3 -u main.py
|
||||
cd python
|
||||
python3 -u main.py
|
||||
2
pom.xml
2
pom.xml
@@ -18,7 +18,7 @@
|
||||
<properties>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<abstracto.version>1.5.14</abstracto.version>
|
||||
<abstracto.version>1.5.15-SNAPSHOT</abstracto.version>
|
||||
<abstracto.templates.version>1.4.25</abstracto.templates.version>
|
||||
<apache-jena.version>4.9.0</apache-jena.version>
|
||||
<rssreader.version>3.5.0</rssreader.version>
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
from __main__ import app
|
||||
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
from flask import request
|
||||
|
||||
from utils import serve_pil_image
|
||||
|
||||
|
||||
@app.route('/memes/doge/orangeSun/')
|
||||
def image_gen():
|
||||
text = request.args.get('text')
|
||||
with Image.open('res/img/semf_template.jpg') as im:
|
||||
d1 = ImageDraw.Draw(im)
|
||||
text_box_size = (300, 240)
|
||||
W, H = text_box_size
|
||||
font = ImageFont.truetype(f'Impact.ttf', 60)
|
||||
_, _, w, h = d1.textbbox((0, 0), text, font=font)
|
||||
d1.text(((W-w)/2 + 320, (H-h)/2 + 120), text, font=font, fill=(255, 255, 255))
|
||||
return serve_pil_image(im)
|
||||
@@ -1,23 +0,0 @@
|
||||
import logging
|
||||
import os
|
||||
|
||||
from flask import Flask
|
||||
|
||||
FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||||
logging.basicConfig(encoding='utf-8', level=logging.INFO, format=FORMAT)
|
||||
template_dir = os.path.abspath('res/templates')
|
||||
app = Flask(__name__, template_folder=template_dir)
|
||||
|
||||
# loads the api end points
|
||||
import debra
|
||||
import image_gen
|
||||
|
||||
@app.route('/')
|
||||
def hello():
|
||||
return 'Hello, World?'
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from waitress import serve
|
||||
|
||||
serve(app, host="0.0.0.0", port=8080)
|
||||
@@ -6,7 +6,7 @@ import json
|
||||
import logging
|
||||
import uuid
|
||||
from __main__ import app
|
||||
from utils import serve_pil_image
|
||||
from utils import flask_utils
|
||||
from datetime import timezone, datetime
|
||||
import pytz
|
||||
|
||||
@@ -130,7 +130,7 @@ def total_donations_image():
|
||||
d1 = ImageDraw.Draw(img)
|
||||
font = ImageFont.truetype(f'{parameters.font_name}.ttf', parameters.font_size)
|
||||
d1.text((0, 0), f"{campaign_info['collected']}/{campaign_info['target']}€", fill=parameters.color, font=font)
|
||||
return serve_pil_image(img)
|
||||
return flask_utils.serve_pil_image(img)
|
||||
|
||||
|
||||
@app.route('/debra/image/endlessStream/end')
|
||||
@@ -148,7 +148,7 @@ def endless_stream_image():
|
||||
tz = pytz.timezone('Europe/Vienna')
|
||||
end_time_formatted = end_time.astimezone(tz).strftime('%d.%m %H:%M')
|
||||
d1.text((0, 0), f"{end_time_formatted}", fill=parameters.color, font=font)
|
||||
return serve_pil_image(img)
|
||||
return flask_utils.serve_pil_image(img)
|
||||
|
||||
|
||||
@app.route('/debra/image/endlessStream/end/html')
|
||||
@@ -176,7 +176,7 @@ def endless_stream_remaining():
|
||||
total_seconds = remaining_time.total_seconds()
|
||||
remaining_time_formatted = f'{int(total_seconds // 3600):02d}:{int((total_seconds % 3600) // 60):02d}:{int(total_seconds % 60):02d}'
|
||||
d1.text((0, 0), f"{remaining_time_formatted}", fill=parameters.color, font=font)
|
||||
return serve_pil_image(img)
|
||||
return flask_utils.serve_pil_image(img)
|
||||
|
||||
|
||||
@app.route('/debra/image/endlessStream/remaining/html')
|
||||
@@ -242,7 +242,7 @@ def rendering_donation_image(donation_stats, parameters):
|
||||
name = donation['firstName'] if not donation['anonymous'] else 'anonym'
|
||||
d1.text((0, height * it), f"{donation['donationAmount']}€ von {name}", fill=parameters.color, font=font)
|
||||
it += 1
|
||||
return serve_pil_image(img)
|
||||
return flask_utils.serve_pil_image(img)
|
||||
|
||||
|
||||
def parse_image_parameters() -> DonationImageGenerationParameters:
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB |
@@ -1,7 +0,0 @@
|
||||
<meta http-equiv="refresh" content="{{ refreshInterval }}">
|
||||
<html>
|
||||
<head></head>
|
||||
<body>
|
||||
<img src="{{ imagePath }}">
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="{{ refreshInterval }}">
|
||||
</head>
|
||||
<body>
|
||||
<img src="{{ imagePath }}">
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,17 +0,0 @@
|
||||
from io import BytesIO
|
||||
|
||||
from flask import send_file
|
||||
|
||||
|
||||
def serve_pil_image(pil_img):
|
||||
img_io = BytesIO()
|
||||
pil_img.save(img_io, 'PNG')
|
||||
img_io.seek(0)
|
||||
return send_file(img_io, mimetype='image/png')
|
||||
|
||||
|
||||
class ValidationException(Exception):
|
||||
def __init__(self, provided_value, message):
|
||||
self.provided_value = provided_value
|
||||
self.message = message
|
||||
super().__init__(f'{self.message}: provided value: {provided_value}')
|
||||
Reference in New Issue
Block a user