При навигации по 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 архивов, этого достаточно).
И… это вроде как работает 🙂
Спасибо, что прочитали мой пост, надеюсь, он показался вам интересным!
Не стесняйтесь следовать за мной, чтобы получать уведомления о выходе новых статей 😉

Леонардо Монтини
Вы также можете следить за мной на GitHub или в Twitter, ссылки можно найти здесь, прямо в моем профиле на GitHub!
Balastrong / Баластронг
Привет, Леонардо слушает 👋
Я разработчик полного стека (в последнее время в основном сфокусирован на фронтенде), и мне нравится работать над инструментами для разработчиков.
Вы можете найти на GitHub мой вклад в публичные проекты, основанные на Javascript/Typescript, но мне также нравятся C# и Scala.
Давайте оставаться на связи!