initial
This commit is contained in:
+229
@@ -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
|
||||
)
|
||||
Reference in New Issue
Block a user