diff --git a/bot/bun.lockb b/bot/bun.lockb
index 5e92a01..95e1269 100755
Binary files a/bot/bun.lockb and b/bot/bun.lockb differ
diff --git a/bot/src/commands/hears/daySchedule.ts b/bot/src/commands/hears/daySchedule.ts
index adc3f8d..dd57059 100644
--- a/bot/src/commands/hears/daySchedule.ts
+++ b/bot/src/commands/hears/daySchedule.ts
@@ -32,11 +32,15 @@ export class DayScheduleCommand extends AbstractHearsCommand {
await ctx.reply(`🤩 На ${ctx.message.text.toLowerCase()} нет занятий`)
return
}
- await ctx.reply([
- `Расписание ${ctx.user.group!.display} на ${ctx.message.text.toLowerCase()}`,
- lessonsToMessage(lessons),
- null,
- '❤️🔥 ПОДДЕРЖАТЬ МАТЕРИАЛЬНО!!'
- ].join('\n'), { parse_mode: 'HTML', disable_web_page_preview: true })
+
+ const messagesContent = lessonsToMessage(lessons)
+ for (let i = 0; i < messagesContent.length; i++) {
+ let content = ''
+ if (i === 0) content = `Расписание ${ctx.user.group!.display} на ${ctx.message.text.toLowerCase()}\n`
+ content += (messagesContent + '\n\n'
+ + '❤️🔥 ПОДДЕРЖАТЬ МАТЕРИАЛЬНО!!')
+
+ await ctx.reply(content, { parse_mode: 'HTML', disable_web_page_preview: true })
+ }
}
}
\ No newline at end of file
diff --git a/bot/src/keeper/helpers.ts b/bot/src/keeper/helpers.ts
index c4498b7..c5c8f70 100644
--- a/bot/src/keeper/helpers.ts
+++ b/bot/src/keeper/helpers.ts
@@ -83,7 +83,7 @@ export const lessonToMessage = (lesson: Lesson | LessonGroups, groups?: Group[])
return items.join(' | ')
}
-export const lessonsToMessage = (lessons: Lesson[], groups?: Group[]): string => {
+export const lessonsToMessage = (lessons: Lesson[], groups?: Group[]): string[] => {
const daysLessons = lessons
.sort((a, b) => a.date.getTime() - b.date.getTime())
.reduce((acc, lesson) => {
@@ -126,7 +126,20 @@ export const lessonsToMessage = (lessons: Lesson[], groups?: Group[]): string =>
return lines.join('\n')
})
- return days.join('\n\n')
+ let messages: string[] = []
+
+ for (const dayString of days) {
+ let lastMessage = messages.at(-1) || ''
+
+ const newMessageContent = lastMessage + '\n\n' + dayString
+ if (newMessageContent.length > 3840) {
+ messages.push(dayString)
+ } else {
+ messages[messages.length - 1] = newMessageContent.trim()
+ }
+ }
+
+ return messages
}
export const weekToHuman = (weekStart: Date, from = getWeekStart(), incrementDay = false): string => {