domovoy_bot/database/migrate_v3_4_documents.py
Admin 54e8cea522 📄 feat: Отправка документов (PDF, DOCX, XLSX...) через веб-панель
Новый функционал:
- Загрузка документов через веб-панель (10 форматов)
- Отправка в любую тему форума по расписанию
- Поддержка: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, ZIP, RAR
- Отправка в чат и/или всем верифицированным жильцам
- UI: превью документа, кнопка удаления

Изменения:
- database/models.py: document_file_id, document_name поля
- database/migrate_v3_4_documents.py: миграция БД
- web/app.py: API endpoint с загрузкой документов
- services/scheduler.py: отправка документов по расписанию
- web/templates/scheduled_posts.html: UI для загрузки документов

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-13 21:51:52 +04:00

36 lines
1.4 KiB
Python

"""
Миграция V3.4 - Добавление поддержки документов в запланированные посты
"""
import asyncio
import aiosqlite
import os
from pathlib import Path
DB_PATH = Path(__file__).parent.parent / "database" / "domovoy.db"
async def migrate():
print("🔄 Миграция V3.4: Добавление поддержки документов...")
async with aiosqlite.connect(str(DB_PATH)) as db:
# Проверяем существуют ли уже колонки
cursor = await db.execute("PRAGMA table_info(scheduled_posts)")
columns = [row[1] for row in await cursor.fetchall()]
if 'document_file_id' not in columns:
await db.execute("ALTER TABLE scheduled_posts ADD COLUMN document_file_id VARCHAR(255)")
print("✅ Добавлена колонка: document_file_id")
else:
print("⏭️ document_file_id уже существует")
if 'document_name' not in columns:
await db.execute("ALTER TABLE scheduled_posts ADD COLUMN document_name VARCHAR(255)")
print("✅ Добавлена колонка: document_name")
else:
print("⏭️ document_name уже существует")
await db.commit()
print("✅ Миграция V3.4 завершена!")
if __name__ == "__main__":
asyncio.run(migrate())