Перейти к основному содержимому

Google Календарь (ежедневная сводка)

Описание

Руководство пользователя

Подключите один или несколько календарей Google к своему серверу: бот каждый день публикует сводку предстоящих событий и может показывать интерактивную панель, где каждый подписывается на напоминание за день до события в личных сообщениях.

Что это делает​

  • Публикует ежедневную сводку событий на следующие 30 дней в выбранном вами канале и в выбранное время.
  • Показывает интерактивную панель событий: постраничный просмотр, автоматическое обновление и счётчик до следующего обновления.
  • Отправляет напоминание за день в личном сообщении участникам, которые подписались на событие через панель.
  • Отслеживает несколько календарей одновременно: публичные (читаются без входа в аккаунт) или приватные (читаются через подключённый аккаунт Google).
  • Учитывает часовой пояс, который вы задали для сервера.

Что нужно подготовить на стороне Google​

Вам не нужно ничего создавать в Google: ни проекта Google Cloud, ни ключа API, ни идентификатора OAuth. Всё это предоставляет TennoCore. В зависимости от типа календаря вам понадобится лишь следующее:

Публичный календарь​

  1. ID календаря. На компьютере откройте calendar.google.com → наведите курсор на календарь в разделе «Мои календари» → меню ⋮ → Настройки и доступ → раздел Интеграция календаря → скопируйте Идентификатор календаря.
  2. Календарь должен быть сделан публичным: та же страница → Разрешения на доступ → Сделать общедоступным. Без этого бот не сможет его прочитать.

Вместо ID также принимается ссылка Google, содержащая cid=.

Приватный календарь​

  1. Участник (чаще всего вы сами) должен подключить свой аккаунт Google: кнопка Подключить мой аккаунт Google в панели управления или /agenda connect в Discord. Google покажет код, который нужно ввести на отдельной странице. Запрашиваемое разрешение — только чтение календарей.
  2. После подключения аккаунта выберите его как владельца и выберите календарь из предложенного списка. Публичным такой календарь быть не обязан.
примечание

Приватный календарь читается с помощью токена того аккаунта, который дал разрешение. Если этот участник отключит свой аккаунт, привязанные к нему приватные календари перестанут читаться.

Быстрый старт (админ)​

  1. Задайте часовой пояс: /agenda timezone tz:Europe/Moscow.
  2. Добавьте календарь: /agenda calendrier ajouter_public calendar_id:<ID> (или сделайте это через панель управления).
  3. Выберите канал и время: /agenda digest config_responses channel:#календарь hour:9.
  4. Проверьте результат: /agenda digest tester.
  5. Включите ежедневную отправку: /agenda digest enable_module.

Команды​

Аккаунт Google (для всех)​

КомандаОписание
/agenda connectПодключить ваш аккаунт Google (код вводится на странице Google).
/agenda meПосмотреть состояние вашего подключения к Google.
/agenda disconnectОтключиться и удалить ваши токены Google.
/agenda my_eventsВаши 5 ближайших событий, приватным ответом.
/agenda publishОпубликовать интерактивную панель событий.
/agenda digest testerНемедленно опубликовать тестовую сводку.

Параметры /agenda publish: channel (иначе текущий канал), days (окно от 1 до 60 дней, по умолчанию 30), refresh_every (автообновление от 30 до 3600 секунд, по умолчанию 300).

Отслеживаемые календари​

КомандаОписание
/agenda calendrier listerПоказать календари, отслеживаемые этим сервером.
/agenda calendrier ajouter_publicДобавить публичный календарь (ID или ссылка с cid=), с необязательной подписью. (Администратор)
/agenda calendrier ajouter_priveДобавить приватный календарь, используя аккаунт Google подключённого участника. (Администратор)
/agenda calendrier retirerУбрать отслеживаемый календарь (ID подставляется автоматически). (Администратор)

Ежедневная сводка​

КомандаОписание
/agenda digest config_responsesВыбрать канал и местное время отправки (0–23). (Администратор)
/agenda digest enable_moduleВключить ежедневную отправку. (Администратор)
/agenda digest desactiverОтключить ежедневную отправку. (Администратор)
/agenda timezoneЗадать часовой пояс сервера в формате IANA. (Администратор)

Настройки в панели управления​

Панель управления → категория Инструменты и персонал → Планирование Google Calendar.

  • Настройка сводки: канал публикации, время отправки (0–23), часовой пояс (Europe/Paris, UTC, America/New_York) и переключатель включения.
  • Приватные календари: список подключённых аккаунтов Google (с их адресами электронной почты), кнопка для подключения ещё одного и кнопка для отключения.
  • Календари: список отслеживаемых календарей со значком, обозначающим публичный или приватный, с ID и аккаунтом-владельцем. Добавление через окно, где вы сначала выбираете тип:
    • Публичный: вы вставляете ID (раскрывающаяся подсказка объясняет, где его найти).
    • Приватный: вы выбираете подключённый аккаунт, а затем календарь из списка этого аккаунта.
    • В обоих случаях можно задать отображаемое название.
  • Предпросмотр событий (30 дней): 10 ближайших событий, сгруппированных по дням, со ссылкой на Google Calendar.
  • Проверить сводку: немедленно публикует сводку в настроенном канале.

Количество отслеживаемых календарей ограничено: 3 для сервера без премиума (значение по умолчанию, может быть изменено командой TennoCore).

Полезно знать​

  • Сводка проверяется каждые 5 минут и публикуется только один раз в день, в течение выбранного вами часа. Если бот недоступен весь этот час, сводка за день просто пропускается — позже она не будет отправлена.
  • Сводка всегда охватывает 30 дней и показывает 25 событий на странице.
  • Без настроенного календаря /agenda publish отказывается публиковать и предлагает сначала добавить календарь.
  • Панель событий временная: её кнопки перестают отвечать через четверть часа без взаимодействия, и автообновление прекращается вместе с ними. Для постоянного отображения используйте ежедневную сводку, а не панель.
  • Кнопки Обновить сейчас, Напомнить за день и Больше не напоминать доступны только участнику, запустившему команду: остальные получат отказ. Поэтому каждому нужно опубликовать свою панель, чтобы подписаться, либо воспользоваться панелью сводки.
  • Напоминания за день приходят в личных сообщениях: участник, закрывший личные сообщения, их не получит. Они проверяются каждую минуту.
  • Часовой пояс управляет и временем отправки, и отображением дат. Панель управления предлагает только три пояса; /agenda timezone принимает любое название IANA (Europe/Brussels, America/Sao_Paulo и так далее).
  • Боту нужны права Отправлять сообщения и Встраивать ссылки в канале сводки.
  • /agenda disconnect удаляет ваши токены Google на стороне TennoCore. Публичные календари сервера продолжат работать, а приватные, зависевшие от вашего аккаунта, — нет.