This commit is contained in:
2026-07-09 23:34:34 +03:00
commit 73c4fc37f7
33 changed files with 2505 additions and 0 deletions
+229
View File
@@ -0,0 +1,229 @@
from aiogram.types import (
ReplyKeyboardMarkup,
KeyboardButton,
InlineKeyboardMarkup,
InlineKeyboardButton,
)
from aiogram.types import KeyboardButton, ReplyKeyboardMarkup
import calendar
from datetime import date
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
from aiogram.utils.keyboard import InlineKeyboardBuilder
def main_keyboard():
return ReplyKeyboardMarkup(
keyboard=[
[
KeyboardButton(text="📅 Расписание"),
KeyboardButton(text="🔍 Сменить группу")
],
[
KeyboardButton(text="✉️ Поддержка")
]
],
resize_keyboard=True
)
def start_keyboard():
return ReplyKeyboardMarkup(
keyboard=[
[
KeyboardButton(text="🔍 Выбрать группу")
]
],
resize_keyboard=True
)
def date_keyboard():
kb = InlineKeyboardBuilder()
kb.button(
text="📅 Сегодня",
callback_data="date:today"
)
kb.button(
text="🗓 Календарь",
callback_data="date:calendar"
)
kb.adjust(2)
return kb.as_markup()
def groups_keyboard(groups):
keyboard = []
for group in groups:
keyboard.append(
[
InlineKeyboardButton(
text=f"{group['groupName']} (курс {group['course']})",
callback_data=f"select_group:{group['groupID']}"
)
]
)
return InlineKeyboardMarkup(
inline_keyboard=keyboard
)
def calendar_keyboard(year: int, month: int):
kb = []
months = [
"",
"Январь",
"Февраль",
"Март",
"Апрель",
"Май",
"Июнь",
"Июль",
"Август",
"Сентябрь",
"Октябрь",
"Ноябрь",
"Декабрь",
]
kb.append([
InlineKeyboardButton(
text=f"{months[month]} {year}",
callback_data="ignore"
)
])
kb.append([
InlineKeyboardButton(text="Пн", callback_data="ignore"),
InlineKeyboardButton(text="Вт", callback_data="ignore"),
InlineKeyboardButton(text="Ср", callback_data="ignore"),
InlineKeyboardButton(text="Чт", callback_data="ignore"),
InlineKeyboardButton(text="Пт", callback_data="ignore"),
InlineKeyboardButton(text="Сб", callback_data="ignore"),
InlineKeyboardButton(text="Вс", callback_data="ignore"),
])
cal = calendar.monthcalendar(year, month)
for week in cal:
row = []
for day in week:
if day == 0:
row.append(
InlineKeyboardButton(
text=" ",
callback_data="ignore"
)
)
else:
row.append(
InlineKeyboardButton(
text=str(day),
callback_data=f"calendar:{year}:{month}:{day}"
)
)
kb.append(row)
prev_month = month - 1
prev_year = year
if prev_month == 0:
prev_month = 12
prev_year -= 1
next_month = month + 1
next_year = year
if next_month == 13:
next_month = 1
next_year += 1
kb.append([
InlineKeyboardButton(
text="⬅️",
callback_data=f"month:{prev_year}:{prev_month}"
),
InlineKeyboardButton(
text="🏠 Сегодня",
callback_data="calendar_today"
),
InlineKeyboardButton(
text="➡️",
callback_data=f"month:{next_year}:{next_month}"
),
])
return InlineKeyboardMarkup(
inline_keyboard=kb
)
def subgroup_keyboard():
kb = InlineKeyboardBuilder()
kb.button(text="Общая", callback_data="sub:0")
for i in range(1, 5):
kb.button(text=f"{i}А", callback_data=f"sub:{i}А")
kb.button(text=f"{i}Б", callback_data=f"sub:{i}Б")
kb.adjust(1, 2, 2, 2, 2)
return kb.as_markup()
def support_keyboard():
return ReplyKeyboardMarkup(
keyboard=[
[
KeyboardButton(
text="✉️ Поддержка"
)
]
],
resize_keyboard=True
)
def ticket_keyboard(ticket_id: int):
return InlineKeyboardMarkup(
inline_keyboard=[
[
InlineKeyboardButton(
text="💬 Ответить",
callback_data=f"reply_ticket:{ticket_id}"
),
InlineKeyboardButton(
text="✅ Закрыть",
callback_data=f"close_ticket:{ticket_id}"
)
]
]
)
def phone_keyboard():
return ReplyKeyboardMarkup(
keyboard=[
[
KeyboardButton(
text="📱 Отправить телефон",
request_contact=True
)
]
],
resize_keyboard=True,
one_time_keyboard=True
)