Skip to content

MainRoadPost/puzzle-reminder

Repository files navigation

Puzzle dailies uploader

Пример создания постов в Puzzle через GraphQL

Описание

Пример проверки заполненных пользователем отчетов. Программа запрашивает из Puzzle информацию о заполненных отчетах для пользователя ( без авторизации, по имени пользователя из файла .env ) и показывает всплывающее уведомление, если есть незаполненные дни.

uv run --script ./reminder.py

Изменение кода

Для общения с GraphQL-интерфейсом Puzzle программа использует клиент (модуль puzzle), созданный инструментом для кодогенерации ariadne-codegen. В случае если вам необходимо изменить функционал клиента, не нужно модифицировать вручную код модуля puzzle.

Вместо этого необходимо:

  1. Убедиться, что файл schema.graphql содержит актуальную модель данных.

  2. Изменить файл queries.graphql так, чтобы он содержал необходимые запросы к БД Puzzle.

  3. Выполнить команду для регенерации модуля puzzle:

    uv run ariadne-codegen

    Важно: Запуск ariadne-codegen является обязательным шагом перед первым запуском приложения и после любых изменений в файлах schema.graphql или queries.graphql.

Обновление схемы

Для обновления схемы потребуется установленное приложение cynic-cli, которое можно установить следующей командой (в системе должен быть установлен Rust):

cargo install --git https://github.com/obmarg/cynic.git cynic-cli

После установки cynic-cli выполните в shell команду ./get-schema.sh > schema.graphql, в корне репозитория. Этот скрипт выполнит аутентификацию на сервере Puzzle и скачает актуальную схему GraphQL в файл schema.graphql.

Чтобы скрипт успешно выполнился, необходимо предварительно задать в файле .env переменные:

  • PUZZLE_API — URL GraphQL API сервера Puzzle.
  • PUZZLE_USER_DOMAIN — домен студии, пустой, если домен не используется.
  • PUZZLE_USERNAME — имя пользователя.
  • PUZZLE_PASSWORD — пароль пользователя.

пример файла .env приведен в example.env.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published