Use BufferedInputFile for incidents_export
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import os
|
import os
|
||||||
from aiogram import F
|
from aiogram import F
|
||||||
from aiogram.types import Message, CallbackQuery, InlineKeyboardMarkup, InlineKeyboardButton, InputFile
|
from aiogram.types import Message, CallbackQuery, InlineKeyboardMarkup, InlineKeyboardButton, InputFile, BufferedInputFile
|
||||||
from app import dp, cfg
|
from app import dp, cfg
|
||||||
from auth import is_admin_msg
|
from auth import is_admin_msg
|
||||||
from keyboards import (
|
from keyboards import (
|
||||||
@@ -428,20 +428,19 @@ async def incidents_export(msg: Message):
|
|||||||
})
|
})
|
||||||
if fmt == "json":
|
if fmt == "json":
|
||||||
payload = json.dumps(data, ensure_ascii=False, indent=2)
|
payload = json.dumps(data, ensure_ascii=False, indent=2)
|
||||||
bio = io.BytesIO(payload.encode("utf-8"))
|
file_bytes = payload.encode("utf-8")
|
||||||
bio.name = f"incidents_{hours}h.json"
|
fname = f"incidents_{hours}h.json"
|
||||||
else:
|
else:
|
||||||
sio = io.StringIO()
|
sio = io.StringIO()
|
||||||
writer = csv.DictWriter(sio, fieldnames=["timestamp", "category", "message"])
|
writer = csv.DictWriter(sio, fieldnames=["timestamp", "category", "message"])
|
||||||
writer.writeheader()
|
writer.writeheader()
|
||||||
for row in data:
|
for row in data:
|
||||||
writer.writerow(row)
|
writer.writerow(row)
|
||||||
bio = io.BytesIO(sio.getvalue().encode("utf-8"))
|
file_bytes = sio.getvalue().encode("utf-8")
|
||||||
bio.name = f"incidents_{hours}h.csv"
|
fname = f"incidents_{hours}h.csv"
|
||||||
bio.seek(0)
|
|
||||||
summary = f"📤 Incidents export ({hours}h): {len(data)} rows, format {fmt}"
|
summary = f"📤 Incidents export ({hours}h): {len(data)} rows, format {fmt}"
|
||||||
await msg.answer(summary)
|
await msg.answer(summary)
|
||||||
await msg.answer_document(document=InputFile(bio, filename=bio.name))
|
await msg.answer_document(document=BufferedInputFile(file_bytes, filename=fname))
|
||||||
|
|
||||||
|
|
||||||
@dp.message(F.text == "🔒 SSL")
|
@dp.message(F.text == "🔒 SSL")
|
||||||
|
|||||||
Reference in New Issue
Block a user