Страница 2 из 2

Re: Модуль text_calendar

Добавлено: Ср янв 01, 2025 6:19 am
Logrus
https://github.com/sergejey/majordomo-t ... s.php#L576
только про формат записей не забудь

Re: Модуль text_calendar

Добавлено: Чт янв 23, 2025 5:17 pm
CheBuraw
Logrus писал(а): Ср янв 01, 2025 6:19 am https://github.com/sergejey/majordomo-t ... s.php#L576
только про формат записей не забудь
Спасибо за то что отозвались. Я поковырялся и решил пойти иным путем :)
В данном модуле есть возможность подгружать данные из внешнего календаря, указав путь до него. Для Яндекса это проблем не вызвало, там можно получить открытую ссылку, а вот mail.ru тут замудрил и так просто нельзя получить ссылку на *.ics файл календаря.
По закону подлости мой основной рабочий календарь на mail.ru.
При помощи нейросетки решил замутить микросервис для Docker который бы по ссылке, логина и паролю на mail.ru забирал будущие (те что будут после момента синхронизации) события и паковал их в файл calendar.ics
Теперь мне не требуется городить огород с записью в БД, все отрабатывает штатным функционалом модуля text_calendar.
Если кому потребуется данный микросервис (для установки в Docker), то я его выложил на GitHUB. Там конечно все небезопасно и работает он только с одним календарем, но для моих задач этого достаточно.
Пример интерфейса микросервиса CalDAV2iCalSPOILER_SHOW
Снимок.PNG
Снимок.PNG (110.8 КБ) 2970 просмотров
!Не обязательно! Небольшая модификация кода Модуля text_calendarSPOILER_SHOW
По умолчанию загружаемые данные из календаря в модуле не отображают время начала события. Так как для меня это важная информация, то немного скорректировав файл /var/www/modules/text_calendar/text_calendar.class.php
исходный фрагмент:

Код: Выделить всё

            if (isset($result[0])) {
                foreach ($result as $item) {
                   $events[] = $item->summary;
                }
            }
скорректированный фрагмент:

Код: Выделить всё

            if (isset($result[0])) {
                foreach ($result as $item) {
                   $dtstart = new DateTime($item->dtstart);
 //                   $events[] = $item->summary;
                  $events[] = " " . $dtstart->format('H:i') . " | " . $item->summary;
                }
            }
И в модуле теперь это выглядит так:
модуль.PNG
модуль.PNG (31.23 КБ) 2970 просмотров