WITH MatchGoals AS (
SELECT
g.game_id,
g.team,
g.game_date,
(SUM(l.goals) + g.goals) AS total_goals
FROM Lineups AS l
LEFT JOIN Games AS g ON g.game_id = l.game_id
GROUP BY g.game_id, g.team, g.goals, g.game_date
),
MaxGoals AS (
SELECT MAX(total_goals) AS max_goals
FROM MatchGoals
)
SELECT
mg.game_id,
mg.team,
mg.game_date,
mg.total_goals
FROM MatchGoals AS mg
JOIN MaxGoals AS mg_max ON mg.total_goals = mg_max.max_goals;
from aiogram import Bot, Dispatcher, types
from aiogram.types import MediaGroup
from aiogram.utils import executor
import asyncio
API_TOKEN = 'YOUR_BOT_API_TOKEN'
ADMIN_CHAT_ID = 'ADMIN_CHAT_ID' # Замените на ID чата администратора
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
# Хранение временных данных для групп фотографий
media_groups = {}
@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
await message.reply("Привет! Отправь мне фотографии для предложки.")
@dp.message_handler(content_types=types.ContentType.PHOTO)
async def handle_photo(message: types.Message):
user_id = message.from_user.id
media_group_id = message.media_group_id
if media_group_id:
# Если это группа медиафайлов
if media_group_id not in media_groups:
media_groups[media_group_id] = {
'user_id': user_id,
'photos': [],
'timer': None
}
# Добавляем фото в группу
media_groups[media_group_id]['photos'].append(message.photo[-1].file_id)
# Если таймер уже запущен, отменяем его
if media_groups[media_group_id]['timer']:
media_groups[media_group_id]['timer'].cancel()
# Запускаем новый таймер
media_groups[media_group_id]['timer'] = asyncio.create_task(
send_media_group_with_delay(media_group_id)
)
else:
# Если это одиночное фото
await bot.send_photo(ADMIN_CHAT_ID, message.photo[-1].file_id)
async def send_media_group_with_delay(media_group_id: str):
"""Отправляет группу фотографий после небольшой задержки."""
await asyncio.sleep(2) # Ждем 2 секунды для сбора всех частей группы
if media_group_id in media_groups:
group_data = media_groups[media_group_id]
album = MediaGroup()
for photo in group_data['photos']:
album.attach_photo(photo)
await bot.send_media_group(ADMIN_CHAT_ID, media=album)
# Удаляем группу из временного хранилища
del media_groups[media_group_id]
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
from aiogram import Bot, Dispatcher, types
from aiogram.types import MediaGroup
from aiogram.utils import executor
import asyncio
API_TOKEN = 'YOUR_BOT_API_TOKEN'
ADMIN_CHAT_ID = 'ADMIN_CHAT_ID' # Замените на ID чата администратора
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
# Хранение временных данных
user_data = {}
# Время ожидания перед отправкой (в секундах)
SEND_DELAY = 5 # Например, 5 секунд
async def send_photos_to_admin(user_id: int):
"""Функция для отправки фотографий администратору."""
if user_id not in user_data or not user_data[user_id]:
return
if len(user_data[user_id]) == 1:
# Отправка одиночного фото
await bot.send_photo(ADMIN_CHAT_ID, user_data[user_id][0])
else:
# Отправка группы фото
album = MediaGroup()
for photo in user_data[user_id]:
album.attach_photo(photo)
await bot.send_media_group(ADMIN_CHAT_ID, media=album)
# Очистка данных после отправки
del user_data[user_id]
@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
await message.reply("Привет! Отправь мне фотографии для предложки.")
@dp.message_handler(content_types=types.ContentType.PHOTO)
async def handle_photo(message: types.Message):
user_id = message.from_user.id
if user_id not in user_data:
user_data[user_id] = []
# Добавляем фото в список
user_data[user_id].append(message.photo[-1].file_id)
# Запускаем таймер для отправки
await schedule_send(user_id)
async def schedule_send(user_id: int):
"""Запускает таймер для отправки фотографий."""
await asyncio.sleep(SEND_DELAY) # Ждем указанное время
await send_photos_to_admin(user_id) # Отправляем фото
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
type (String) - Type of the entity. One of MENTION (@username), hashtag, bot_command, url, email, bold (bold text), italic (italic text), code (monowidth string), pre (monowidth block), text_link (for clickable text URLs)