members = await bot.get_chat_members(chatId) # можно получить из channel_post_handler - post.sender_chat.id
uids = [member.user.id for member in members]
from aiogram import Bot, Dispatcher, executor, types
bot = Bot(token = 'токен бота')
dp = Dispatcher(bot)
channelTitle = 'Название канала'
users = [айди юзеров, которым вы хотите отправлять сообщения]
@dp.message_handler(commands = 'start')
async def start(message: types.Message):
await bot.send_message(
message.from_user.id,
'Бот запущен!'
)
@dp.channel_post_handler(content_types = ['text'])
async def cpHandler(post: types.Message):
if not post.text.startswith('✔') or post.sender_chat.title != channelTitle:
return
for user in users:
await bot.forward_message(
chat_id = user,
from_chat_id = post.sender_chat.id,
message_id = post.message_id
)
executor.start_polling(dp, skip_updates = True)
Судя по обсуждению под ответами, у вас есть важное ограничение - иерархическая структура логистики почтовых отделений. Нельзя из районного отделения новосибираска отправить посылку напрямую в районное отделение в архангельске - слишком много различных путей для посылок будет. Посылка должна идти через городской пункт, через областной в новосибирске, оттуда, скорее всего, через москву в сортировочный центр в арзангельской области.
Путь должен проходить через промежуточные точки в заданном порядке или как угодно? Надо посетить все промежуточные точки, или можно пропускать их?
Это координаты в мире, т.е. путь строится по дорогам условным google maps? Или дело на плоскости, и можно проводить прямые?
В тегах вы указали "графы", может быть у вас есть произвольный граф на котором надо решить задачу?
Путь надо кратчайший, я так понимаю?