Ебать у меня идеи, а вы и дальше говорите что алкоголь вреден...........7

This commit is contained in:
itexpert228 2026-02-20 23:28:22 +03:00
parent a85ab1c639
commit de07891926
No known key found for this signature in database

79
main.py
View file

@ -293,6 +293,79 @@ def parse_up_down(text: str) -> tuple[str, str]:
down = parts[1].strip() down = parts[1].strip()
return up, down return up, down
def minutes_until_next_lesson(now: datetime | None = None) -> str:
import random
if now is None:
now = datetime.now(ZoneInfo(DEFAULT_TZ))
elif now.tzinfo is None:
now = now.replace(tzinfo=ZoneInfo(DEFAULT_TZ))
LESSON_DAYS = [1, 3] # 1 = вторник, 3 = четверг
LESSON_START = time(9, 50)
LESSON_END = time(11, 25)
day = now.weekday()
def lesson_start_for(day_offset: int) -> datetime:
target = now + timedelta(days=day_offset)
return target.replace(
hour=LESSON_START.hour,
minute=LESSON_START.minute,
second=0,
microsecond=0
)
def lesson_end_today() -> datetime:
return now.replace(
hour=LESSON_END.hour,
minute=LESSON_END.minute,
second=0,
microsecond=0
)
# ---- Проверяем: сейчас внутри пары? ----
if day in LESSON_DAYS:
start_today = lesson_start_for(0)
end_today = lesson_end_today()
if start_today <= now < end_today:
# ищем следующую пару (не сегодняшнюю)
for i in range(1, 8):
next_day = (day + i) % 7
if next_day in LESSON_DAYS:
next_dt = lesson_start_for(i)
break
delta = next_dt - now
total_seconds = int(delta.total_seconds())
days = total_seconds // 86400
hours = (total_seconds % 86400) // 3600
minutes = (total_seconds % 3600) // 60
percent = random.randint(0, 100)
return (
f"Сегодня твой мозг сгнил на {percent}%\n"
f"Мозг начнет догнивать через {days} дн {hours} ч {minutes} мин"
)
# ---- Ищем ближайшую будущую пару ----
for i in range(0, 8):
next_day = (day + i) % 7
if next_day in LESSON_DAYS:
candidate = lesson_start_for(i)
if candidate > now:
delta = candidate - now
break
total_seconds = int(delta.total_seconds())
days = total_seconds // 86400
hours = (total_seconds % 86400) // 3600
minutes = (total_seconds % 3600) // 60
return f"Твой мозг окончательно сгниет, а очко порвется через: {days} дн {hours} ч {minutes} мин"
async def handle_start(message: Message): async def handle_start(message: Message):
await message.answer("Соси") await message.answer("Соси")
@ -478,6 +551,10 @@ async def handle_fetch(message: Message):
except Exception: except Exception:
await message.answer("unable to connect x-server гандон") await message.answer("unable to connect x-server гандон")
async def handle_zvetok(message: Message):
result = minutes_until_next_lesson()
await message.answer(result)
def main(): def main():
token = os.getenv("BOT_TOKEN") token = os.getenv("BOT_TOKEN")
@ -499,6 +576,7 @@ def main():
BotCommand(command="size", description="хуй"), BotCommand(command="size", description="хуй"),
BotCommand(command="prices", description="цены x-server"), BotCommand(command="prices", description="цены x-server"),
BotCommand(command="fetch", description="цены (новый источник)"), BotCommand(command="fetch", description="цены (новый источник)"),
BotCommand(command="zvetok", description="Цветянский бля"),
] ]
) )
except Exception: # noqa: WPS440 except Exception: # noqa: WPS440
@ -513,6 +591,7 @@ def main():
dp.message.register(handle_size, Command("size")) dp.message.register(handle_size, Command("size"))
dp.message.register(handle_prices, Command("prices")) dp.message.register(handle_prices, Command("prices"))
dp.message.register(handle_fetch, Command("fetch")) dp.message.register(handle_fetch, Command("fetch"))
dp.message.register(handle_zvetok, Command("zvetok"))