✅ Реализовано: - Добавлено поле image_path в Service модель - Миграция БД выполнена - Бот отправляет картинки с телефонами - Если картинки нет → отправляет текстом - Папка: data/service_images/ 📝 Скрипты: - database/update_service_image.py — загрузка картинок - database/migrate_add_service_images.py — миграция 🎨 Как использовать: 1. Положи картинку в data/service_images/ 2. venv/bin/python3 database/update_service_image.py police img.jpg 3. Проверь в боте: /start → 👮 Участковый 💡 Работает для всех категорий: - police (полиция) - emergency (МЧС) - utility (ЖКХ) - masters (мастера) Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Скрипт для добавления картинки к службе
|
|
Использование: python3 update_service_image.py <category> <image_path>
|
|
|
|
Пример:
|
|
python3 update_service_image.py police data/service_images/police.jpg
|
|
"""
|
|
import sys
|
|
import asyncio
|
|
from pathlib import Path
|
|
|
|
# Добавляем путь к проекту
|
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
|
sys.path.insert(0, str(BASE_DIR))
|
|
|
|
from database.db import AsyncSessionLocal
|
|
from database.models import Service
|
|
from sqlalchemy import update
|
|
|
|
|
|
async def update_service_image(category: str, image_path: str):
|
|
"""Обновить картинку службы"""
|
|
|
|
# Проверяем что файл существует
|
|
if not Path(image_path).exists():
|
|
print(f"❌ Файл не найден: {image_path}")
|
|
return
|
|
|
|
async with AsyncSessionLocal() as session:
|
|
# Обновляем все службы этой категории
|
|
result = await session.execute(
|
|
update(Service)
|
|
.where(Service.category == category)
|
|
.values(image_path=image_path)
|
|
)
|
|
await session.commit()
|
|
|
|
updated_count = result.rowcount
|
|
print(f"✅ Обновлёно записей: {updated_count}")
|
|
print(f" Категория: {category}")
|
|
print(f" Картинка: {image_path}")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if len(sys.argv) != 3:
|
|
print("Использование: python3 update_service_image.py <category> <image_path>")
|
|
print("Пример: python3 update_service_image.py police data/service_images/police.jpg")
|
|
sys.exit(1)
|
|
|
|
category = sys.argv[1]
|
|
image_path = sys.argv[2]
|
|
|
|
asyncio.run(update_service_image(category, image_path))
|