Refactor ChannelEndpoints and ScheduleGenerator: consolidate endpoint logic into partial files, remove unused methods, and enhance dependency injection for scheduling. Update ChannelDetail component to streamline imports and improve UI structure.
build / backend (push) Successful in 2m17s
build / frontend (push) Successful in 52s
tests / backend-tests (push) Successful in 2m38s

This commit is contained in:
Leonid Pershin
2026-07-25 20:53:52 +03:00
parent 8484587313
commit 5bc6e144d2
24 changed files with 2546 additions and 2431 deletions
@@ -0,0 +1,33 @@
/** Утилиты форматирования для карточек канала (без React). */
export function formatTime(iso: string | null) {
if (!iso) return '—'
return new Date(iso).toLocaleString([], {
day: '2-digit',
month: '2-digit',
hour: '2-digit',
minute: '2-digit',
})
}
/** Минуты суток → «HH:MM». */
export function formatMinute(minute: number | null) {
if (minute == null) return '—'
const h = Math.floor(minute / 60)
const m = minute % 60
return `${String(h).padStart(2, '0')}:${String(m).padStart(2, '0')}`
}
/** ffmpeg-цвет (0xRRGGBB / имя) → CSS для превью-плашки. */
export function cssColor(value: string): string {
const v = value.trim()
if (v.startsWith('0x')) return `#${v.slice(2)}`
return v
}
/** Ограничивает вероятность появления заставки диапазоном 0..1 (пустой ввод → 0). */
export function clampChance(value: string): number {
const n = Number(value)
if (Number.isNaN(n)) return 0
return Math.min(1, Math.max(0, n))
}