rating-chgk-info: Client for rating.chgk.info API and CSV tables (documentation in Russian)
Клиент для REST API сайта рейтинга (rating.chgk.info) и функциональности, которой нет в REST API, но которая доступна через экспорт CSV. Также содержит REST-сервер для дополнительной функциональности, доступной через CSV
Документация по типам параметров и возвращаемых значений находится в RatingChgkInfo.Types
Документация по функциям для работы с REST API находится в RatingChgkInfo.Api
Документация по функциям для работы с CSV находится в RatingChgkInfo.NoApi
Примеры работы с библиотекой находятся в папке examples
В следующем большом релизе планируется заменить в части типов для REST API списки значений на множества (Set), например, для составов команд и т.п. Это должно повысить безопасность библиотеки, и не должно ухудшить возможности работы.
Пример использования:
-- Наша библиотека
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 ()
main = void $ runRatingApi $ do
-- Получим список всех очных турниров
--
-- Функция tournaments получает одну страницу турниров, а функция getAllItems
-- оборачивает подобные функции, чтобы пройтись по всем страницам.
-- Далее из этого списка выбираются очные турниры 2018 года
let s2018 = LocalTime (fromGregorian 2018 1 1) midnight
e2018 = LocalTime (fromGregorian 2019 1 1) midnight
tourns <- filter (\t -> trs_typeName t == Casual &&
trs_dateStart t >= s2018 &&
trs_dateEnd t <= e2018) <$>
getAllItems tournaments
-- Проходимся по полученному списку
ts <- forM tourns $ \t -> do
let ident = trs_idtournament t
-- Получаем результаты турнира
res <- tournamentResults ident
-- Возвращаем названия команд-участниц
pure (map tr_current_name res)
-- Выводим, сколько уникальных названий было по всем турнирам
liftIO (print (length (nub ts)))
[Skip to Readme]
Modules
[Index] [Quick Jump]
Downloads
- rating-chgk-info-0.3.6.5.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.3.6.3, 0.3.6.4, 0.3.6.5 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | aeson (>=1.4), base-noprelude (>=4.11), bytestring (>=0.10), cassava (>=0.5), containers (>=0.5), directory, http-client (>=0.5), http-client-tls (>=0.3), iconv (>=0.4), lens (>=4.17), network (>=2.8), optparse-generic (>=1.3), rating-chgk-info, relude (>=0.4.0), servant (>=0.16), servant-client (>=0.16), servant-js (>=0.9), servant-server (>=0.16), servant-swagger (>=1.1), swagger2 (>=2.2), tagsoup (>=0.14), text (>=1.2), time (>=1.8), vector (>=0.12), wai (>=3.2), warp (>=3.2), wreq (>=0.5) [details] |
| Tested with | ghc ==8.4.3 |
| License | BSD-3-Clause |
| Copyright | 2018-2019 Mansur Ziiatdinov |
| Author | Mansur Ziiatdinov |
| Maintainer | gltronred@gmail.com |
| Category | Utility |
| Uploaded | by MZiatdinov at 2019-07-08T15:23:04Z |
| Distributions | |
| Executables | calendar-rating, extra-rating-api, example2, example1 |
| Downloads | 1664 total (3 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs available [build log] Last success reported on 2019-07-08 [all 1 reports] |