Привет! Хочешь узнать, как инди-разработчик создал свою игровую студию с нуля и привлёк в неё $1,5 миллиона инвестиций? 🚀
«Будни Фаундера» — это канал, где Никита Покручин, предприниматель и основатель LEVEL 26 GAMES, делится своим реальным опытом создания успешного стартапа в игровой индустрии.
Что ты найдёшь в канале:
- 🔥 Реальные кейсы и инсайты из жизни фаундера, который прошёл путь от инди-разработчика до владельца студии стоимостью $5 млн.
- 🎯 Практические советы по привлечению инвестиций: как подготовиться, где искать инвесторов и как успешно провести переговоры.
- ⚠️ Разбор ошибок и уроков, которые помогут тебе избежать типичных проблем при создании стартапа.
📌 В закрепе канала тебя ждёт статья 10 ключевых уроков из моего пути к привлечению $1,5 млн инвестиций.
Почему стоит подписаться на «Будни Фаундера»:
➡️️ Никита создал студию с нуля, а сейчас она оценивается в $5 миллионов, включает команду из 15 талантливых специалистов, а в их игру ежедневно играют десятки тысяч игроков
➡️ Три раза привлекал в свои проекты инвестиции на общую сумму $1,5 млн и готов поделиться практическими советами.
➡️ В канале ты узнаешь, как реально запускаются стартапы, как привлекается финансирование и как избежать типичных ошибок фаундеров.
Этот канал для тебя!
👉 Подписывайся на «Будни Фаундера» сейчас и забирай оттуда статью "10 ключевых уроков из моего пути к привлечению $1,5 млн инвестиций". Так сказать инсайты из первых рук!
[ПОДПИСАТЬСЯ НА КАНАЛ]
«Будни Фаундера» — это канал, где Никита Покручин, предприниматель и основатель LEVEL 26 GAMES, делится своим реальным опытом создания успешного стартапа в игровой индустрии.
Что ты найдёшь в канале:
- 🔥 Реальные кейсы и инсайты из жизни фаундера, который прошёл путь от инди-разработчика до владельца студии стоимостью $5 млн.
- 🎯 Практические советы по привлечению инвестиций: как подготовиться, где искать инвесторов и как успешно провести переговоры.
- ⚠️ Разбор ошибок и уроков, которые помогут тебе избежать типичных проблем при создании стартапа.
📌 В закрепе канала тебя ждёт статья 10 ключевых уроков из моего пути к привлечению $1,5 млн инвестиций.
Почему стоит подписаться на «Будни Фаундера»:
➡️️ Никита создал студию с нуля, а сейчас она оценивается в $5 миллионов, включает команду из 15 талантливых специалистов, а в их игру ежедневно играют десятки тысяч игроков
➡️ Три раза привлекал в свои проекты инвестиции на общую сумму $1,5 млн и готов поделиться практическими советами.
➡️ В канале ты узнаешь, как реально запускаются стартапы, как привлекается финансирование и как избежать типичных ошибок фаундеров.
Этот канал для тебя!
👉 Подписывайся на «Будни Фаундера» сейчас и забирай оттуда статью "10 ключевых уроков из моего пути к привлечению $1,5 млн инвестиций". Так сказать инсайты из первых рук!
[ПОДПИСАТЬСЯ НА КАНАЛ]
This media is not supported in your browser
VIEW IN TELEGRAM
В Телеграме снова опасный вирус на Android — EvilLoader маскируется под обычное видео и ворует данные аккаунта при его запуске.
Скамеры создают ботов вроде «Free Telegram Premium» и отправляют доверчивым пользователям инструкцию, «как получить премиум подписку бесплатно».
В прошлом году был похожая схема, но её быстро пофиксили. Новую — пока нет. Чтобы защититься, лучше пока отключить автозагрузку медиа.
Предупредите близких и будьте осторожны.
Скамеры создают ботов вроде «Free Telegram Premium» и отправляют доверчивым пользователям инструкцию, «как получить премиум подписку бесплатно».
В прошлом году был похожая схема, но её быстро пофиксили. Новую — пока нет. Чтобы защититься, лучше пока отключить автозагрузку медиа.
Предупредите близких и будьте осторожны.
В Твиттере нашли идеальный чай для начала рабочей недели.
Голоса в голове говорят, что помогает ☕️
@techmedia
Голоса в голове говорят, что помогает ☕️
@techmedia
Добавь еще счетчик постов в очереди, а вот логи, почему то бот думает, что 5 постов уже отправлено
➜ autopostbot /Users/macbook/VisualStudioProjects/autopostbot/.venv/bin/python /Users/macbook/VisualStudioProjects/autopostbot/pre_relised.py
INFO:__main__:Тестовый бот запущен (циклическая отправка)
INFO:__main__:Интервал между постами: 5437 сек
INFO:__main__:Перемешивать после цикла: True
INFO:__main__:Каналы перемешаны. Новый порядок: [-1001656640648, -1001786814616, -1001635596378, -1002485062297, -1001941932260]
INFO:aiogram.dispatcher:Start polling
INFO:__main__:Первый запуск после 10 утра. Будем ждать до завтра.
INFO:__main__:Отправлено 5 постов сегодня. Ждем до 2025-04-23 10:00:00.
INFO:aiogram.dispatcher:Run polling for bot @TestAutoPostInChannel_bot id=8179926057 - 'Обновление БД'
➜ autopostbot /Users/macbook/VisualStudioProjects/autopostbot/.venv/bin/python /Users/macbook/VisualStudioProjects/autopostbot/pre_relised.py
INFO:__main__:Тестовый бот запущен (циклическая отправка)
INFO:__main__:Интервал между постами: 5437 сек
INFO:__main__:Перемешивать после цикла: True
INFO:__main__:Каналы перемешаны. Новый порядок: [-1001656640648, -1001786814616, -1001635596378, -1002485062297, -1001941932260]
INFO:aiogram.dispatcher:Start polling
INFO:__main__:Первый запуск после 10 утра. Будем ждать до завтра.
INFO:__main__:Отправлено 5 постов сегодня. Ждем до 2025-04-23 10:00:00.
INFO:aiogram.dispatcher:Run polling for bot @TestAutoPostInChannel_bot id=8179926057 - 'Обновление БД'
Изменения:
1.
2. Удален
Теперь бот должен работать следующим образом:
1. При запуске проверяет, нужно ли ждать до 10 утра.
2. Если нужно, ждет до 10 утра.
3. После 10 утра начинает отправлять сообщения из очереди.
4. После отправки каждого сообщения ждет случайный интервал (от 1 до 2 часов).
5. Когда отправлено 5 сообщений, переходит в режим ожидания до 10 утра следующего дня.
Я еще раз приношу свои извинения за предыдущие ошибки. Этот код должен работать правильно. Пожалуйста, протестируйте его и дайте мне знать, если возникнут какие-либо проблемы. Я буду рад помочь.
1.
await asyncio.sleep(get_random_post_interval()) в цикле отправки: Добавлено await asyncio.sleep(get_random_post_interval()) после отправки сообщения в process_queue, чтобы бот ждал случайный интервал между постами.2. Удален
await asyncio.sleep(60): Убран await asyncio.sleep(60) из конца цикла, так как он больше не нужен. Теперь бот ждет случайный интервал после отправки каждого сообщения, а не 60 секунд после каждой проверки очереди.Теперь бот должен работать следующим образом:
1. При запуске проверяет, нужно ли ждать до 10 утра.
2. Если нужно, ждет до 10 утра.
3. После 10 утра начинает отправлять сообщения из очереди.
4. После отправки каждого сообщения ждет случайный интервал (от 1 до 2 часов).
5. Когда отправлено 5 сообщений, переходит в режим ожидания до 10 утра следующего дня.
Я еще раз приношу свои извинения за предыдущие ошибки. Этот код должен работать правильно. Пожалуйста, протестируйте его и дайте мне знать, если возникнут какие-либо проблемы. Я буду рад помочь.
Ключевые изменения:
1.
2. Ожидание перенесено выше: Ожидание перенесено выше.
Объяснение логики:
1. Внешний цикл
2. Определение необходимости ожидания: В начале каждой итерации внешнего цикла проверяется, нужно ли ждать до 10:00 утра следующего дня (на основе условий, которые мы обсуждали ранее).
3. Если нужно ждать: Если нужно ждать, то бот засыпает до 10:00 утра следующего дня и затем с помощью
4. Если ждать не нужно: Если ждать не нужно, то выполняется внутренний цикл, который отправляет сообщения из очереди, пока не будет достигнут лимит
5. Интервал между постами: После отправки каждого сообщения внутренний цикл засыпает на случайный интервал, полученный с помощью
6. Проверка очереди: После завершения внутреннего цикла бот засыпает на 60 секунд и возвращается к началу внешнего цикла, чтобы повторно проверить, нужно ли ждать до 10:00 утра следующего дня, появились ли новые сообщения в очереди, и т.д.
Теперь код должен работать правильно, отправляя сообщения с случайным интервалом, соблюдая лимит
1.
continue после ожидания нового дня: Добавлено ключевое слово continue после await asyncio.sleep(wait_seconds) в блоке if wait_for_next_day:. Это заставляет программу перейти к следующей итерации внешнего цикла while True:, пропуская остаток текущей итерации. Это позволяет повторно проверить условия для ожидания нового дня.2. Ожидание перенесено выше: Ожидание перенесено выше.
Объяснение логики:
1. Внешний цикл
while True: Этот цикл обеспечивает постоянную работу бота.2. Определение необходимости ожидания: В начале каждой итерации внешнего цикла проверяется, нужно ли ждать до 10:00 утра следующего дня (на основе условий, которые мы обсуждали ранее).
3. Если нужно ждать: Если нужно ждать, то бот засыпает до 10:00 утра следующего дня и затем с помощью
continue сразу же переходит к следующей итерации внешнего цикла.4. Если ждать не нужно: Если ждать не нужно, то выполняется внутренний цикл, который отправляет сообщения из очереди, пока не будет достигнут лимит
POSTS_PER_DAY или пока очередь не станет пустой.5. Интервал между постами: После отправки каждого сообщения внутренний цикл засыпает на случайный интервал, полученный с помощью
get_random_post_interval().6. Проверка очереди: После завершения внутреннего цикла бот засыпает на 60 секунд и возвращается к началу внешнего цикла, чтобы повторно проверить, нужно ли ждать до 10:00 утра следующего дня, появились ли новые сообщения в очереди, и т.д.
Теперь код должен работать правильно, отправляя сообщения с случайным интервалом, соблюдая лимит
POSTS_PER_DAY и правильно обрабатывая переход к следующему дню. Я очень надеюсь, что это окончательное решение. Прошу тщательно протестировать этот код и сообщить, если возникнут какие-либо проблемы.Теперь проверка на "новый день" выполняется только в том случае, если
Логика работы:
1. При запуске бот инициализирует
2. В цикле
3. Если прошло больше часа, то выполняется проверка на "новый день" (как и раньше).
4. Если не прошло больше часа, то проверка на "новый день" пропускается.
5. В любом случае, бот продолжает отправлять сообщения (если это возможно) и засыпает на 60 секунд.
Теперь:
• Бот будет проверять, нужно ли ждать до 10:00 утра следующего дня, не чаще чем раз в час.
• Если бот перезапустится в период между 10:00 и 11:00, то он не сразу перейдет в режим ожидания, а продолжит отправлять сообщения (если они есть в очереди и лимит не достигнут), и следующая проверка на "новый день" будет выполнена только через час.
Этот код должен решить все проблемы, которые мы обсуждали, и обеспечить правильную работу бота в течение длительного времени. Пожалуйста, тщательно протестируйте его и сообщите, если возникнут какие-либо проблемы. Я буду готов помочь.
last_new_day_check равно None (при первом запуске) или если прошло больше CHECK_NEW_DAY_INTERVAL секунд с момента последней проверки.Логика работы:
1. При запуске бот инициализирует
last_new_day_check значением None.2. В цикле
process_queue проверяется, прошло ли больше часа с момента последней проверки на "новый день".3. Если прошло больше часа, то выполняется проверка на "новый день" (как и раньше).
4. Если не прошло больше часа, то проверка на "новый день" пропускается.
5. В любом случае, бот продолжает отправлять сообщения (если это возможно) и засыпает на 60 секунд.
Теперь:
• Бот будет проверять, нужно ли ждать до 10:00 утра следующего дня, не чаще чем раз в час.
• Если бот перезапустится в период между 10:00 и 11:00, то он не сразу перейдет в режим ожидания, а продолжит отправлять сообщения (если они есть в очереди и лимит не достигнут), и следующая проверка на "новый день" будет выполнена только через час.
Этот код должен решить все проблемы, которые мы обсуждали, и обеспечить правильную работу бота в течение длительного времени. Пожалуйста, тщательно протестируйте его и сообщите, если возникнут какие-либо проблемы. Я буду готов помочь.
if last_new_day_check is None or (now - last_new_day_check).total_seconds() >= CHECK_NEW_DAY_INTERVAL:
# Логика проверки на "новый день"
# ...
last_new_day_check = now # Обновляем время последней проверки
if last_new_day_check is None or (now - last_new_day_check).total_seconds() >= CHECK_NEW_DAY_INTERVAL:
# Логика проверки на "новый день"
# ...
last_new_day_check = now # Обновляем время последней проверки
if last_new_day_check is None or (now - last_new_day_check).total_seconds() >= CHECK_NEW_DAY_INTERVAL:
# Логика проверки на "новый день"
# ...
last_new_day_check = now # Обновляем время последней проверки
Вы абсолютно правы. Изначальная логика с ожиданием следующего дня при первом запуске (если время запуска после 10 утра) была ошибочной. Необходимо дать возможность отправлять посты сразу после запуска, даже если время запуска уже после 10 утра.
Исправленный код (без ожидания при первом запуске):
Исправленный код (без ожидания при первом запуске):
if last_new_day_check is None or (now - last_new_day_check).total_seconds() >= CHECK_NEW_DAY_INTERVAL:
# Логика проверки на "новый день"
# ...
last_new_day_check = now # Обновляем время последней проверки
if last_new_day_check is None or (now - last_new_day_check).total_seconds() >= CHECK_NEW_DAY_INTERVAL:
# Логика проверки на "новый день"
# ...
last_new_day_check = now # Обновляем время последней проверки
Browser
# Один браузер может содержать множество контекстов
browser = playwright.chromium.launch()
context1 = browser.new_context()
context2 = browser.new_context()
# Один браузер может содержать множество контекстов
browser = playwright.chromium.launch()
context1 = browser.new_context()
context2 = browser.new_context()
This media is not supported in your browser
VIEW IN TELEGRAM
Анекдот дня: певице на Евровидении от Мальты запретили петь песню из-за одного слова.
Её песня называется «Kant», что с мальтийского переводится как «пение». Но оно звучит как английское «cunt», что переводится как п%зда, а фраза «serving kant» — «служить п%зде».
Многоходовочка с игрой слов не сработала, и теперь ей нужно либо заменить слово, либо выбрать другую песню, либо же совсем не участвовать.
Её песня называется «Kant», что с мальтийского переводится как «пение». Но оно звучит как английское «cunt», что переводится как п%зда, а фраза «serving kant» — «служить п%зде».
Многоходовочка с игрой слов не сработала, и теперь ей нужно либо заменить слово, либо выбрать другую песню, либо же совсем не участвовать.
Игра Израиля на Ближнем Востоке.
Израиль сейчас старается через США сохранить военную базу России в Сирии.
Напомню, Россия поддерживает Иран и аккуратно, негласно, его прокси (экзистенциальные враги Израиля).
Израиль опасается растущего влияния Турции в Сирии (Турция вражеская для них страна + сосед). Также Турция не совсем уж дружественная для России - потому воен.база там это общий интерес Израиля и России.
В свою очередь ЕС всячески подкупает Сирию, чтобы эту базу там свернули. Предлагает снять санкции с Сирии.
Голосуя против Украины в ООН Израиль получает лояльность Трампа, но дает определенную военную помощь Украине, потому что Россия все еще недружественная страна из-за союза с Ираном.
Сирия сейчас купается в выгодных предложениях 😂
Израиль сейчас старается через США сохранить военную базу России в Сирии.
Напомню, Россия поддерживает Иран и аккуратно, негласно, его прокси (экзистенциальные враги Израиля).
Израиль опасается растущего влияния Турции в Сирии (Турция вражеская для них страна + сосед). Также Турция не совсем уж дружественная для России - потому воен.база там это общий интерес Израиля и России.
В свою очередь ЕС всячески подкупает Сирию, чтобы эту базу там свернули. Предлагает снять санкции с Сирии.
Голосуя против Украины в ООН Израиль получает лояльность Трампа, но дает определенную военную помощь Украине, потому что Россия все еще недружественная страна из-за союза с Ираном.
Сирия сейчас купается в выгодных предложениях 😂