rating-chgk-info

Client for rating.chgk.info API and CSV tables (documentation in Russian)

Latest on Hackage:0.3.6.4

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Mansur Ziiatdinov
Maintained by gltronred@gmail.com

rating-chgk-info

Hackage BSD3 license

Client for rating.chgk.info API and CSV tables

Документация

Клиент для REST API сайта рейтинга (rating.chgk.info) и функциональности, которой нет в REST API, но которая доступна через экспорт CSV. Также содержит REST-сервер для дополнительной функциональности, доступной через CSV.

Сгенерированные JS-функции для работы с REST API: https://bitbucket.org/gltronred/t-chgk-me/downloads/rating-chgk-info-0.2.1.js

В следующем большом релизе планируется заменить в части типов для REST API списки значений на множества (Set), например, для составов команд и т.п. Это должно повысить безопасность библиотеки (сложнее будет выстрелить себе в ногу), и не должно ухудшить возможности работы.

Установка и запуск

Для работы с библиотекой необходимо добавить зависимость rating-chgk-info.

Запустить пример можно при помощи cabal new-run example1.

Пример использования:

Больше примеров находятся в папке examples

-- Немного наших библиотек
import RatingChgkInfo

-- И немного стандартных библиотек
import Control.Monad (forM, void)
import Control.Monad.IO.Class (liftIO)
import Data.List (nub)
import Data.Time (LocalTime(..),fromGregorian,midnight)

-- Точка входа в приложение
main :: IO ()

-- Функция runRatingApi запускает работу клиента, это позволяет разделять эффекты
main = void $ runRatingApi $ do

  -- Получим список всех очных турниров за 2018 год

  let s2018 = LocalTime (fromGregorian 2018 1 1) midnight
      e2018 = LocalTime (fromGregorian 2019 1 1) midnight

  -- Функция tournaments получает одну страницу турниров, а функция getAllItems
  -- оборачивает подобные функции, чтобы пройтись по всем страницам.
  -- Далее из этого списка выбираются очные турниры 2018 года
  tourns <- filter (\t -> trs_typeName t == Casual &&
                          trs_dateStart t >= s2018 &&
                          trs_dateEnd t <= e2018) <$>
            getAllItems tournaments

  -- Проходимся по полученному списку
  ts <- forM tourns $ \TournamentShort{trs_idtournament = ident} -> do

    -- Получаем результаты турнира
    res <- tournamentResults ident

    -- Возвращаем названия команд-участниц
    pure (map tr_current_name res)

  -- Выводим, сколько уникальных названий было по всем турнирам
  liftIO (print (length (nub ts)))

Changes

Change log

rating-chgk-info uses PVP Versioning.

Unreleased

Added

Changed

Removed

Deprecated

Fixed

Security

0.3.6.4 - 2019-04-09

Added

  • Получение всех составов на турнире (API 3.6.4)
  • Поиск по турнирам (API 3.6.4)
  • Получение списка городов
  • Получение ближайших синхронов в городе
  • Приложение для генерации календарей синхронов в городе (app/calendar-rating)

Changed

  • Поля archive и date_archived_at в турнирах (API 3.6.4)
  • Исправлены версии зависимостей, теперь они совместимы с GHC 8.6
  • Работает с servant 0.16
  • Данные запрашиваются через https

0.3.6.3 - 2019-02-09

Added

  • Функции для работы со спорными и апелляциями (версия API 3.6.3)
  • Поле tournament_in_rating, показывающее, учитывается ли турнир в рейтинге (API 3.6.3)
  • Примеры работы с библиотекой

Changed

  • Каждый идентификатор (игрока, команды, релиза и т.п.) имеет свой тип
  • Модуль RatingChgkInfo экспортирует весь необходимый код

Removed

  • Функция apiIdToInt, поскольку теперь каждый идентификатор имеет свой тип

Fixed

  • Добавлен workaround: на сайте рейтинга для некоторых турниров и заявок утеряны данные о количестве изначально заявленных команд

0.2.1.0

Added

  • Клиентские функции для REST API сайта рейтинга (на 2019-01-13, версия 3.6.2, обновление движка 22-10-2018 01:48)
  • Получение данных о заявках и введённых командах через CSV
  • REST-сервер для заявок

0.0.0

  • Initially created.
comments powered byDisqus