170 похожих чатов

Import asyncio import time from asyncio.log import logger from os import listdir import schedule from

aiogram.types import InputFile
from aiogram.utils.markdown import hlink

from config import channels
from keyboards.good_or_bad import good_or_bad_keyboard
from loader import bot, dp
from utils.notify_admins import on_startup_notify
import datetime


async def on_startup(dp):
await on_startup_notify(dp)


async def send_photo(chat_id: int, photo: InputFile, caption: str):
await bot.send_photo(chat_id, photo, caption, reply_markup=good_or_bad_keyboard)


directory = "images"
photos = list()
formats = ['.jpg', '.jpeg', '.png']

one = '9x16 - Name Channel'
two = 't.me/link_on_channel'
three = '@name_channel'
url = two
time_3 = str(datetime.time(hour=4, minute=35))
time_3 = time_3[:-3]
time_5 = str(datetime.time(hour=4, minute=32))
time_5 = time_5[:-3]
time_7 = str(datetime.time(hour=4, minute=36))
time_7 = time_7[:-3]


async def main():
while True:
now = datetime.datetime.now()
now = str(now.time())
now = now.split('.')[0]
now = now[:-3]
if now == time_3:
if now == time_7:
print('Остановка')
await asyncio.sleep(60)
print(f'Сейчас {now}')
for i in formats:
for j in filter(lambda x: x.endswith(i), listdir(directory)):
photos.append(j)
for i in photos:

with open(f"{directory}/{i}", 'rb') as photo:
print('Отправляю фото')
await bot.send_photo(chat_id=channels, photo=photo, caption=f'{hlink(one, url=two)}\n'
f'{hlink(two, url=two)}\n'
f'{hlink(three, url=two)}',
reply_markup=good_or_bad_keyboard)
await asyncio.sleep(61)
else:
print('Сработал else')
while True:
try:
print('Выхожу из цикла')
await dp.start_polling()
finally:
await dp.storage.close()
await dp.storage.wait_closed()
await bot.session.close()
if name == 'main':
try:
asyncio.run(main())
except (KeyboardInterrupt, SystemExit):
logger.error("Bot stopped!"), нужно чтобы посты отправлялись в указаное время, как это реализовать, наверное все попробувал, как сделать чтобы оно работало?

5 ответов

19 просмотров

А что пробувал?

что-то кода мало, давай больше в чат кидай, правила же не читаем

🧬Cerbin- Автор вопроса
Vadim
что-то кода мало, давай больше в чат кидай, правил...

Согласен, что нашкрябал, то и скинул, могу тебе в ЛС скинуть, чтобы чат не тревожить, как раз и поможешь)

честно говоря какое-то лютое дерьмо, два бесконечных цикла, при этом поллинг в бесконечном цикле запускаешь и какую-то дичь выполняешь

Как тебе курсы от латента?

Похожие вопросы

Обсуждают сегодня

подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
Добрый день. Абракадабра в 12-й студии ввела новый тип поля БД TSQLTimeStampOffset, использую в постгресе timestampz и вот с 12-й версии начались чудеса! До этого поля times...
Delphi Photo
9
Коллеги, здравствуйте! А можно узнать ваше мнение относительно Wolfram Mathematica vs Julia? Просто у меня стоит выбор между тем, чтобы продолжить преподавать Wolfram Mathemat...
Илья Гаража
10
Обновленный chat тестили уже господа? Готовимся на заводы ? Простой проект на ларавель собирает за 1 ответ..
Jacov Borisov
14
Дык какой описанный сценарий то? Единственное, что вижу я - это то что есть какой то интерфейс1 , про который известно, что у него есть метод, который возвращает другой интерф...
Jack128
7
А если без шуток, на чем десктоп сейчас пишут кроссплатформенный (ну чтобы с минимальным допиливанием под каждую платформу) и чтобы хорошая производительность софта была. Толь...
🐈
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта