RuWproSha, чёта у вайбера интерфейс девелоперской доки "ни за что не догадаешься", я вчера не нашёл что у них такое появилось. Но в любом случае, там нет никакой возможности отложенной отправки, так что только самому реализовать отправку в нужное время.
Вообще-то многие API предполагают, что отправка в заданное время ложится непосредственно на систему отправителя. Поэтому такой функции может не быть и это нормально.
Что такое "канал в Viber"? В их публичной документации только Viber Bot может посылать сообщения пользователям. И приведённый пример array вообще непонятно о чём, с документацией не бьётся.
В IDE можно запускать при разработке, но реальное приложение придётся запускать непосредственно интерпретатором (неважно где - в докере или нет, в Windows или Linux, локально или удалённо). Поэтому да, надо понимать, как его запускать.
Ну и кто-то из местных кураторов тэга Python писал тут, что IDE хорошо использовать, когда уже понимаешь язык. Потому что IDE много рутинных задач решает за человека. Правильно ставит отступы, подставляет названия классов и объектов, к функциям приписывает скобки и подсказывает аргументы. Для обучения же полезно писать с помощью обычного текстового редактора, набить руку, пройтись по всем возможным граблям, решить все возникшие проблемы. Тем более что в практических задачах обязательно иногда придётся редактировать код в произвольном текстовом редакторе.
Никита, не должно ничего специально заниматься в памяти, если это специально не делать.
Двойные клики на кнопку надо уметь обрабатывать. Например, отмечать нажатие в state, чтобы второе нажатие не срабатывало. Или ловить исключение, на котором бот упал.
Про особенности aiogram я мало знаю, так как три с половиной небольших ботов я когда-то написал с помощью телебота.
В общем-то, не видя кода, сложно что-то конкретное советовать. Может, там какая-нить очевидная жырная проблема, которую мы тут даже не подумали...
Просто строишь туннель от каждого офиса на тот внешний и в нём пусть будет роутинг между ними. Если у того офиса плохо с каналом и его нельзя так забивать - арендуем сервак/vps у любого хостера и строим звезду через него.
То, что выбор последнего элемента в таком генераторе происходит с вероятностью 1 ещё не значит, что генератор неслучайный. Ведь элементы вплоть до последнего выбираются с вероятностью не больше 1/2.
Скорее всего бот сам выделяет память и не освобождает её. Причём подобного вполне себе легко достичь Ну, например, если все входящие сообщения сохранять в память, то очевидно расход памяти будет расти. Если бот популярный и пишут ему очень много, то логично, что история будет постепенно пухнуть.
Или например если бот втягивает в память содержимое всех присылаемых файлов, то память у него тоже быстро закончится. Особенно если присылают видео.
Или ошибка вообще где-то в неботовой логике.
В общем, профилировать, если нет каких-то очевидных мест утечки.
WSGlebKavash, это как раз не самая проблема, в DVB давно и успешно умеют кодировать каналы. Там другая проблема: придётся брать обязательства на обеспечение сервиса. Мобильным операторам это совершенно не нужно.
Какая реальная задача стоит? Сейчас вопрос выглядит как полная несуразица. S3 это не прокси, а сервис хранения файлов, а Cloudfront это не прокси, а CDN. Соответственно, S3 не будет вообще ни в какой "back domain" обращаться, а Cloudfront будет кэшировать данные и далеко не каждый запрос прокинет, он для того и предназначен, чтобы быстро отдавать контент, не заставляя пользователя ожидать скачивания с оригинального сайта где-то далеко.
Весь этот геморрой не просто так, а в целях борьбы со спамом. И это лишь отчасти предлог (на A2P SMS операторы неплохо так зарабатывают), потому что на практике это реально помогает от засилья SMS-спама. Когда за спам надо выплатить приличную сумму денег, пройти проверку на вшивость (доказательства владения товарным знаком итд) и оправдываться за жалобы от получателей перед оператором, то он становится намного менее выгоден.
Есть более цивилизованные каналы маркетинга. Сайты, группы в соцсетях, каналы в телеграммах, PUSH-сообщения в фирменном мобильном приложении итд итп... Где пользователь более явно выражает своё согласие на получение информации и не менее легко и быстро может его отозвать.
Denis93, эта штуковина - тупая обёртка над библиотекой tdjson. Там кода почти нет. Я заглянул внутрь и очевидно же что там надо создать экземпляр класса и звать от него send/receive/execute. В send или execute передаётся array который внутри сериализуется в json и передаётся в tdjson. Дальше надо смотреть, что делает tdjson и что в него надо передавать. Вроде бы вот это официальный пример: https://github.com/tdlib/td/blob/master/example/py...