Модуль text_calendar

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

Re: Модуль text_calendar

Сообщение Logrus » Ср янв 01, 2025 6:19 am

https://github.com/sergejey/majordomo-t ... s.php#L576
только про формат записей не забудь
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
CheBuraw
Сообщения: 36
Зарегистрирован: Ср авг 23, 2017 6:29 pm
Благодарил (а): 13 раз
Поблагодарили: 15 раз

Re: Модуль text_calendar

Сообщение CheBuraw » Чт янв 23, 2025 5:17 pm

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. Там конечно все небезопасно и работает он только с одним календарем, но для моих задач этого достаточно.
Пример интерфейса микросервиса CalDAV2iCalПоказать
Снимок.PNG
Снимок.PNG (110.8 КБ) 1077 просмотров
!Не обязательно! Небольшая модификация кода Модуля text_calendarПоказать
По умолчанию загружаемые данные из календаря в модуле не отображают время начала события. Так как для меня это важная информация, то немного скорректировав файл /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 КБ) 1077 просмотров
Ответить