Python
- 3 ответа
- 0 вопросов
2
Вклад в тег
import datetime as dt
from threading import Thread
from time import sleep
class SendThread(Thread):
def __init__(self, hours: int):
Thread.__init__(self)
self.hours = hours
def run(self):
# Здесь код, который будет выполняться в потоке
day_to_seconds = 24 * 60 * 60
now = dt.datetime.now()
today_time = now - dt.datetime(year=now.year, month=now.month, day=now.day)
seconds = today_time / dt.timedelta(seconds=1)
time_to_next_call = self.hours * 60 * 60 - seconds # Время в секундах до первого вызова
if time_to_next_call < 0:
time_to_next_call += day_to_seconds
sleep(time_to_next_call)
while True:
# Ваш код (отправка сообщения)
# ...
sleep(day_to_seconds)
# Ваш код...
if command == "/start":
send_12 = SendThread(hours=12) # сообщение #1
send_18 = SendThread(hours=18) # сообщение #2
send_12.start()
send_18.start()
image = Image.open('your\\path\\to\\image.jpg') # открытие картинки
with io.BytesIO() as image_binary:
# перевод картинки в байтовый формат
image.save(image_binary, format="JPEG", quality=95)
image_binary.seek(0)
# отправка картинки
await channel.send(file=discord.File(fp=image_binary, filename="image.jpeg"))