Spaces:
Runtime error
Runtime error
File size: 1,657 Bytes
eb9c9f3 10288f0 eb9c9f3 |
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 45 46 47 |
from celery import Celery
import os
from datetime import datetime
from pathlib import Path
from pptx import Presentation
from docx import Document
REDIS_URL = os.getenv("REDIS_URL", "redis://127.0.0.1:6379/0")
celery_app = Celery("growthops_tasks", broker=REDIS_URL, backend=REDIS_URL)
EXPORT_DIR = Path("/data/exports")
EXPORT_DIR.mkdir(parents=True, exist_ok=True)
@celery_app.task(bind=True)
def generate_pptx(self, title: str = "GrowthOps Report", items: list[str] | None = None):
items = items or ["Overview", "Tenants", "Usage", "Jobs"]
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
slide.shapes.title.text = title
slide.placeholders[1].text = f"Generated at {datetime.utcnow().isoformat()}Z"
bullet_layout = prs.slide_layouts[1]
s2 = prs.slides.add_slide(bullet_layout)
s2.shapes.title.text = "Contents"
tf = s2.shapes.placeholders[1].text_frame
for it in items:
p = tf.add_paragraph()
p.text = it
p.level = 0
fname = f"report-{datetime.utcnow().strftime('%Y%m%dT%H%M%SZ')}.pptx"
out = EXPORT_DIR / fname
prs.save(out)
return {"file": str(out), "filename": fname}
@celery_app.task(bind=True)
def generate_docx(self, title: str = "GrowthOps Summary", body: str = "Hello"):
doc = Document()
doc.add_heading(title, 0)
doc.add_paragraph(f"Generated at {datetime.utcnow().isoformat()}Z")
doc.add_paragraph(body)
fname = f"summary-{datetime.utcnow().strftime('%Y%m%dT%H%M%SZ')}.docx"
out = EXPORT_DIR / fname
doc.save(out)
return {"file": str(out), "filename": fname}
|