cf7 Telegram: ошибка 400 при отправке сообщения

Симптомы: При отправке сообщения из контактной формы, сообщение не отправляется в бота, а в логах появляется ошибка вида:

Изучив чуть плагин, нашел непосредственную функцию отправки сообщения, и чуть её дополнил:

Ошибка стала чуть вняетнее:

{«ok»:false,»error_code»:400,»description»:»Bad Request: can’t parse entities: Can’t find end of the entity starting at byte offset 289″}

Но ни сколько не понятнее… Стал рыть дальше. Отправка в wordpress осуществляется функцией:

Проверив аргументы, выяснил, что попадает внутрь именно то что нужно. Видимо портит данные, что-то глубже внутри функционала wordpress. Проверил концепцию заменив вызов этой функции своим велосипедом:

И оно заработало.. Ну так и оставил..

Ubuntu: устранение уязвимости OpenSSH cve-2023-48795

Вообще, если дистрибутив LTS, то просто выполнив:

Уязвимость уже будет теоретически будет устранена, НО! дополнительно можно (на будущее) отключить вообще протоколы ChaCha20-Poly1305 и Encrypt-then-MAC в ssh, которые собственно и эксплуатируются для этой уязвимости:

Теперь если выполнить:

Можно увидеть список используемых алгоритмов для соединения, и соотвественно узнать, что эти протоколы исчезли из списка доступных

Grafana: Аннотации

Продолжаю попытки нормально пометить на графике дневное и ночное время. Описание предыдущих попыток можно почитать здесь. На этот раз, попробуем при помощи аннотаций. Основная идея: при помощи аннтотаций, на графике возможно помечать и подписывать определенные промежутки данных на графике. Аннотации можно добавлять из вне при помощи специального API.

Создадим ключ API:

Далее, необходимо узнать id дашборда (гаходится как orgId в url) и id панели дашборда, чтобы таргетировать аннотацию.

Далее наваяем небольшой скрипт на PHP, который положим в крон и будем выполнять ночью:

В результате на графике получим нечто подобное:

Получение времени захода и восхода солнца

Задача: получить время захода и восхода солнца в текущую дату..

Решение:

Яндекс предоставляет эту информацию в формате json по ссылке вида https://yandex.ru/time/sync.json?geo=21, где 21 — код города в сервисах Яндекса. Список на всякий случай здесь. Один нюанс — нет возможности получить данные на определённую дату.. Да и зависеть от Яндекса, так себе идея. Сегодня сервис работает, через год нет.

Второй вариант: по ссылке вида https://api.sunrise-sunset.org/json?lat=36.7201600&lng=-4.4203400&date=2024-01-22, мы можем получить восход/заход в любую указанную дату. А так как дней всего у нас 365 в году, то вполне возможно просто выкачать эти данные и разместить их у себя например в формате <день_года>.json

Grafana: использование выпадающего меню на дашборде

Задача: необходимо строить график в зависимости от выбранного значения в выпадающем списке.

Решение: в Grafana для этого есть штатный функционал.

Заходим в меню «Dashboard Settings» (шестренка) -> Variables (переменные). Создаём новую переменную:

  • name — имя переменной, для использования в дальнейших запросах
  • label — заголовок перед выпадающим меню
  • Query — запрос из которого идёт выборка в поле выбора. Причем поле обозначенное как __text будет использоваться как наименование поля выбора, а __value как его значение.

После сохранения, идём в редактирования панели дашборда и меняем запрос на вида:

, где:

  • ${division:text} — текст выбранного (Например «Кудыкинский муниципыальный район»
  • $division — значение выбранного (Например «13432»)

В результате получаем чудную картину:

1 15 16 17 18 19 292