11import requests , json , shutil
22
3- from fastapi import FastAPI
3+ from fastapi import FastAPI , BackgroundTasks
44from jinja2 import Environment , FileSystemLoader , select_autoescape
55
66from starlette .middleware .cors import CORSMiddleware
77from starlette .responses import HTMLResponse , FileResponse , JSONResponse
88from starlette .staticfiles import StaticFiles
99
1010from generator import PosterGenerator
11- from tasks import sync_templates , cleanup
11+ from tasks import run_tasks
1212
13- sync_templates ()
14- cleanup ()
13+ run_tasks ()
1514
1615env = Environment (
1716 loader = FileSystemLoader ('./remote/templates/template' ),
2019
2120app = FastAPI ()
2221
23- app .mount ("/preview" , StaticFiles (directory = "./remote/templates/ preview" ), name = "preview" )
22+ app .mount ("/preview" , StaticFiles (directory = "./preview" ), name = "preview" )
2423app .mount ("/static" , StaticFiles (directory = "./build/static" ), name = "static" )
2524
2625app .add_middleware (
@@ -40,9 +39,8 @@ def root():
4039 return HTMLResponse (file_get_contents ("./build/index.html" ))
4140
4241@app .get ('/sync' )
43- def sync ():
44- sync_templates ()
45- cleanup ()
42+ def sync (background_tasks : BackgroundTasks ):
43+ background_tasks .add_task (run_tasks )
4644 return HTMLResponse ('ok' )
4745
4846@app .get ("/render/{id}/{template}/{file_format}" )
@@ -62,7 +60,7 @@ def generate_all(id, promo=None):
6260 eventJson = json .loads (eventRequest .text )
6361 except :
6462 return "No event found with id {}" .format (id ),404
65- PosterGenerator (eventJson , promo ).make_posters (env .list_templates ())
63+ PosterGenerator (eventJson , promo , promoFor ).make_posters (env .list_templates ())
6664
6765 return FileResponse (shutil .make_archive ('zip/{}' .format (id ), 'zip' , 'generated/{}' .format (eventJson .current_event ['id' ])), filename = '{}.zip' .format (id ))
6866
0 commit comments