Что значит "перекидывается"?
Дискорд не позволяет перемещать сообщения между каналами, насколько я знаю.
Максимум, бот может написать то же самое сообщение в другом канале (от своего имени!), и удалить оригинал.
А зачем тебе while True вообще?
У тебя значения before и after внутри процедуры НИКОГДА не изменятся.
Для следующего события процедура будет вызвана заново.
Ну а я что говорил? Переводы строк
'A\n' != 'A'
после
a, b, c = lines[i].split(' ')
сделай
c = c.rstrip()
чтобы обрезать все пробельные символы с конца.
Или, если перевод строки нужен, то сравнивай с 'A\n'
Kryptonit, а почему
for i in range(0, 10):
у вас список сортируется по возрастанию цены, а потом вы в 10 самых дешевых товарах ищете товары, у которых letter - буква А.
1. Такие точно есть?
2. letter у вас точно однобуквенные? Или вам нужно чтобы начинались с А?
3. lines[i].split(' ') - а строки в lines[i] содержат переводы строки или нет?
Kryptonit, погоди, погоди...
A[i].letter=='A' даст на выходе булево выражение. Само по себе это ничего не выведет, разумеется.
Если сделать print(A[i].letter=='A'), получишь в стандартном выводе "True" или "False".
А в твоём случае - не с кодировкой ли проблемы? Русская А и латинская A не равны.
Как линукс-подобные ОС так и Виндоус предоставляют такие механизмы, но они различаются.
Собственно, watchdog как раз и обеспечивает одинаковое поведение на разных платформах.
Так что сначала нужно решить, на какую ОС ты хочешь создать свою реализацию.
Не вполне ясно - то ли сервер должен откликаться по одному IP, то ли должен принимать клиентов с одного IP?
Если первое, то пусть слушает только этот IP? В конфиге есть такая строчка.
Если второе... не уверен. через iptables дропать пакеты на порт OpenVPN если идут не с нужного адреса?