Помогите, друг сделал код на java и на нём сделал бота. Мы хотим отслеживать состояние ботов, и чтобы отследить состояние ботов я кидаю на его сайт запрос, если игроки рядом, то его код кидает на сайт информацию о них, и я создал def near_player, там прописан бесконечный цикл чтобы какждые 2 секунды кидался запрос на сайт, и проверял. Но цикл не работает. Я хочу обрабатывать цикл бесконечно, Но он только при нажатии на /check_status. Я его туда пока-что поставил потому-что если его туда не поставить, он будет выдавать ошибки и не работать. Если сделать async_task в main, то не будет работать всё равно
import logging
import asyncio
from aiohttp import ClientSession
from aiogram import Dispatcher, types, Bot
from aiogram.filters import CommandStart, Command
dp = Dispatcher()
@dp.message(CommandStart())
async def start(message: types.Message):
await message.answer('Введите команду /check_status чтобы проверить статус ботов')
async def near_player(message: types.Message):
url = ''
try:
async with ClientSession() as session:
while True:
async with session.get(url,timeout=3) as response:
if response.status == 200:
print('Успешно отправлен запрос на проверку игроков рядом')
else:
print(response.status)
await asyncio.sleep(2)
if "Рядом найдены игроки:" in await response.text(encoding='windows-1251'):
print(await response.text(encoding='windows-1251'))
await message.answer(await response.text(encoding='windows-1251'))
except Exception as e:
print(e)
async def check_status(message: types.Message):
url = ''
try:
async with ClientSession() as session:
async with session.get(url, timeout=3) as response:
if response.status == 200:
await message.answer("запрос успешно выполнен. Проверка статуса ботов")
print("запрос успешно выполнен.")
await message.answer(f"Полученные данные: {await response.text(encoding='windows-1251')}")
print(f"Полученные данные: {await response.text(encoding='windows-1251')}")
else:
await message.answer(response.status)
print(response.status)
except Exception as e:
await message.answer(f"Ошибка при выполнении запроса: {e}")
print(f"Ошибка при выполнении запроса: {e}")
@dp.message(Command('check_status'))
async def check_ip(message: types.Message):
await near_player(message)
await check_status(message)
async def main():
logging.basicConfig(level=logging.INFO)
bot = Bot(
token='"'
)
await dp.start_polling(bot)
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO)
asyncio.run(main())