domovoy_bot/database/update_service_image.py
Admin f0a081a988 📸 Картинки для служб (полиция, МЧС, ЖКХ)
 Реализовано:
- Добавлено поле 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>
2026-03-02 08:12:31 +00:00

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))