Обновляйте профиль GitHub своими партиями на chess.com с помощью GitHub Action

При навигации по GitHub вы можете попасть на удивительные профили с «живым» содержимым, которое обновляется автоматически, что это за колдовство?

Давайте начнем с самого начала!

Настройка личного профиля

Помимо базового профиля GitHub с прикрепленными репозиториями и (очень крутой) диаграммой вклада, вы можете полностью настроить содержимое в формате markdown, написав файл README.md вашего профиля.

Все, что вам нужно сделать, это создать новый репозиторий с вашим именем пользователя и поместить в него файл README.md.

В моем случае, мое имя пользователя Balastrong, поэтому репозиторий будет Balastrong/Balastrong.

GitHub уже заметил это, добавив этот маленький значок в домашнюю страницу вашего репозитория.

Оживите его с помощью GitHub Actions!

Я уверен, что вы знаете о существовании GitHub Actions. Так вот, их можно использовать для редактирования файлов в вашем репозитории, верно?

Итак, файл, который вы собираетесь редактировать, — это README.md, и он получит некоторое содержимое из интернета, а затем отформатирует и поместит его в ваш файл.

Игры Chess.com!

Теперь, когда у нас есть комбинация профиль + действия, мы можем творить волшебство!

Все, что вам нужно, это использовать это действие: Chess.com Games & Stats [Marketplace], [Repository].

Вы можете найти инструкцию там!
Вкратце, вам просто нужно сделать два основных шага:

1. Установите место для размещения данных в вашем README.md.

Вы можете контролировать, где будут появляться данные, поместив его в свой файл:

<!--START_SECTION:chessStats-->

<!--END_SECTION:chessStats-->
Войти в полноэкранный режим Выйти из полноэкранного режима

2. Настройка действия

GitHub поможет вам настроить новое действие, но в любом случае это просто добавление нового файла в .github/workflows в вашем репозитории и все.

Содержание очень простое:

name: Chess Stats Action

on:
  schedule:
    - cron: '0 0 * * *' # Runs at 00:00 UTC every day
  workflow_dispatch:

jobs:
  update-readme:
    name: Update readme with your chess stats and games
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: Balastrong/chess-stats-action@master
        with:
          CHESS_USERNAME: <Your chess.com Username>
Войти в полноэкранный режим Выйти из полноэкранного режима

Просто замените <Ваше имя пользователя chess.com> и все готово!

С текущим расписанием cron schedule он будет запускаться сам по себе в полночь по UTC, но благодаря workflow_dispatch вы также можете запустить действие вручную в любое время.

Вы можете увидеть живой пример внизу моего профиля: https://github.com/Balastrong/.

Получение игр

Здесь немного дополнительной информации об API, возможно, вам будет интересно!

Chess.com имеет некоторые API, но не совсем полный список игр. Официальным источником информации является их сообщество разработчиков.

По какой-то причине вы можете получить только те игры, которые уже сгруппированы по годам/месяцам, в формате:

https://api.chess.com/pub/player/{username}/games/{YYYY}/{MM}
Войти в полноэкранный режим Выход из полноэкранного режима

Они называют это «архивом».

Вы также можете получить список доступных архивов для игрока:

https://api.chess.com/pub/player/{username}/games/archives
Войти в полноэкранный режим Выйти из полноэкранного режима

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

И… это вроде как работает 🙂


Спасибо, что прочитали мой пост, надеюсь, он показался вам интересным!
Не стесняйтесь следовать за мной, чтобы получать уведомления о выходе новых статей 😉

Леонардо Монтини

Я пишу посты об Open Source и веб-разработке. Мне нравится учиться, делиться своими знаниями и работать над инструментами для разработчиков. Я также веду канал на YouTube под названием DevLeonardo, ссылка в моем профиле! 🙂

Вы также можете следить за мной на GitHub или в Twitter, ссылки можно найти здесь, прямо в моем профиле на GitHub!

Balastrong / Баластронг

Привет, Леонардо слушает 👋

Я разработчик полного стека (в последнее время в основном сфокусирован на фронтенде), и мне нравится работать над инструментами для разработчиков.

Вы можете найти на GitHub мой вклад в публичные проекты, основанные на Javascript/Typescript, но мне также нравятся C# и Scala.

Давайте оставаться на связи!

Разверните, чтобы увидеть мою статистику!

Тип Текущий 1215 895 1115 Лучший 1318 1345 1267 Баластронг Клэшинг123 27/7/2022 Ссылка Блиц carlitodeliz Баластронг 27/7/2022 Ссылка Блиц johanjessan Баластронг 27/7/2022 Ссылка Блиц bparis4542 Баластронг победа
Посмотреть на GitHub

Оцените статью
devanswers.ru
Добавить комментарий