jivosite были первыми, кто широко развернулся на этом рынке. И они сразу нацелились не на крупны клиентов с большими деньгами, а на мелких, у которых денег почти нет, но и требования невысокие.
Ruslan Website, критерии "помнишь лендинги начала 30-х" невозможно использовать, нужны чёткие формализуемые критерии: использование тех или иных тэгов, цвета, структура страницы, наличие нужных разделов (что сильно зависит от деятельности) итд итп. Просто чудесной кнопки, которая точно определяет виртуальное субъективное "качество" сайта, не существует и не может существовать.
Oleksandr Hnuchiy, а, ну да, каналы, конечно на них не работает. Каналы не группы, в каналах вместо message_handler используется channel_post_handler. Не знаю, есть ли такие готовые боты, но написать самому подобное вообще плёвое дело.
mozzart_live, да, всё так, внутри уже всё разложено, в идеале просто запускается web-сервер или php-fpm и ничего другого. Поэтому запуск/перезапуск делается очень быстро.
При использовании базовых образов dockerfile становится примерно таким:
FROM private-registry.company.ru/images/php-fpm-base
ADD ./www/ /var/www/
И даже ENTRYPOINT/RUN не надо определять - они уже заданы в базовом образе. Вся сборка будет заключаться в добавлении каталога и дальнейшей загрузке полученного образа в свой registry. Загрузка будет происходить быстро, так как слои базового образа уже в registry, и загрузить надо будет единственный слой с новыми файлами.
mozzart_live, не очень удачная идея. В контейнер попадёт docker-compose.yml и возможно ещё какие-то данные. В перспективе в каком-нить проекте контейнеров будет несколько, данные некоторых из них могут оказаться чувствительными и недопустимыми к открытому доступу, но они попадут в web-сервер и смогут быть найдены злоумышленником.
Ruslan Website, понятие "красивого" очень субъективно. Кому-то кажется, что анимированные плавные переходы с движением по странице объектов во всех направлениях это красиво, а кто-то готов руки сломать разработчику этого г, тратящего 3-5 его секунд на каждый переход для загрузки контента и ещё несколько для попытки понять, что куда тут перешло и какая тут иерархия разделов...
На английском сайтов просто в разы больше, с этого надо начинать. У нас, может, и мог бы появиться такой вот вручную составляемый каталог "красивостей", но материала для него намного меньше.
Категория типа "сайты бюро переводов" вообще очень странная... Бюро переводов - это не сайт-ориентированный бизнес. Как, например, интернет-магазин. В этой категории может найтись одно-единственное бюро на всю страну, которое будет готово заплатить веб-дизайнеру, который окажется настолько гениальным, что создаст единственный в этой сфере шедевр.
В общем, автоматизировать это никак нельзя. Только глазками смотреть и серым веществом принимать собственное решение.
Mikhail Osher, "юзербот" или "селфбот" - это понятие, которое пришло из мира Дискорда, где, как и в Телеграме, аккаунты ботов имеют принципиальное отличие от живых пользователей. Юзерботы используют аккаунты пользователей, а не ботов, имитируя API (легально в случае Телеграма или нелегально в случае Дискорда) пользовательского клиента.
LXSTVAYNE, доводилось мне топить баню в деревне, топишь минимум три полных закладки, чтобы воду согреть, а ещё в той конкретной бане печь по-чёрному топилась, дым всё время летал под потолком, который, кстати, был такой низкий, что во весь рост стоять там было невозможно.
http2000, запуск отдельного скрипта это и есть запуск отдельного процесса, только вручную. Если задача состоит в том, чтобы иногда по наитию что-то всем послать или, например, посылать раз в сутки, то ручной запуск отдельного скрипта или запуск скрипта из планировщика - вполне себе нормальные решения, при этом очень простое в реализации. Если же хочется иметь всё в одном скрипте то никто не запрещает. Можно использовать модули multiprocessing, threading, schedule, ещё круче будет освоить asyncio (но придётся начать мыслить асинхронно и поменять телебот на асинхронную библиотеку - aiogram или pyrogram). Можно перейти на вебхуки и отказаться от поллинга (но тогда функионал основного цикла программы перейдёт в веб-серверный компонент используемой библиотеки, которой может быть flask, асинхронный aiohttp или что-то ещё).