Compare commits

...

2 Commits

Author SHA1 Message Date
ee6245d77a Uncommited changes
Some checks failed
Compile and test using leiningen / Run tests (push) Has been cancelled
2026-01-17 01:54:59 +01:00
bd1dc3190c Join data and riot-config. Since date. 2026-01-17 01:54:19 +01:00
5 changed files with 497 additions and 471 deletions

View File

@@ -1,7 +1,7 @@
(ns riot.commands (ns riot.commands
#_{:clj-kondo/ignore [:refer-all]} #_{:clj-kondo/ignore [:refer-all]}
(:require [riot.core :refer :all] (:require [riot.core :refer :all]
[riot.data :refer :all] [riot.riot-data :refer :all]
[riot.riot-api :refer :all] [riot.riot-api :refer :all]
[clojure.pprint :as pp] [clojure.pprint :as pp]
[clojure.string :as s] [clojure.string :as s]
@@ -42,6 +42,10 @@
(System/exit 1)))))) ;; If not playing, return 1 (System/exit 1)))))) ;; If not playing, return 1
(comment (comment
(reset! debug true)
(some? (is-playing? "Walid Georgey" "EUW"))
(cmd-check-playing "Walid Georgey" "EUW") ;; This kills the REPL (cmd-check-playing "Walid Georgey" "EUW") ;; This kills the REPL
(cmd-check-playing "Walid Georgey" "EUW" :continuous true :max 2) ;; Infinite loop if max is nil (cmd-check-playing "Walid Georgey" "EUW" :continuous true :max 2) ;; Infinite loop if max is nil
) )
@@ -63,17 +67,20 @@
(print "CSV")) (print "CSV"))
(defn get-matches (defn get-matches
[player-name player-tag & {:keys [lol tft since] [player-name player-tag & {:keys [lol tft since max]
:or {lol true :or {lol true
tft true tft true
;since nil since "today"
max 10
} }
:as params}] :as params}]
(cond-> [] (let [millis (process-time-literal since)]
lol (concat (map get-lol-match-data (when @debug (println "Parsed date:" millis))
(get-lol-matches (lol-get-uuid player-name player-tag) :count 10))) (cond-> []
tft (concat (map get-tft-match-data lol (concat (map get-lol-match-data
(get-tft-matches (tft-get-uuid player-name player-tag) :count 10))))) (get-lol-matches (lol-get-uuid player-name player-tag) :count max :startTime millis)))
tft (concat (map get-tft-match-data
(get-tft-matches (tft-get-uuid player-name player-tag) :count max :startTime millis))))))
(comment (comment
(get-matches "Walid Georgey" "EUW") (get-matches "Walid Georgey" "EUW")
@@ -81,11 +88,12 @@
(defn cmd-show-matches (defn cmd-show-matches
[player-name player-tag & {:keys [lol tft format since] [player-name player-tag & {:keys [lol tft format since max]
:or {lol true :or {lol true
tft true tft true
format :table format :table
;since (- (/ (System/currentTimeMillis) 1000) (* 60 60 24)) since "today"
max 10
} }
:as params}] :as params}]
(when @debug (when @debug
@@ -100,5 +108,5 @@
(comment (comment
(set-riot-api-key :RIOT_DEV_KEY "RGAPI-9fcdee6d-620f-443e-959f-b43fc445f51b") (set-riot-api-key :RIOT_DEV_KEY "RGAPI-9fcdee6d-620f-443e-959f-b43fc445f51b")
(cmd-show-matches "Walid Georgey" "EUW") (cmd-show-matches "Walid Georgey" "EUW" :since "yesterday" :max 2)
) )

View File

@@ -24,7 +24,7 @@
[KEYS default-key key] [KEYS default-key key]
(if-let [value (get-key-from-env key)] (if-let [value (get-key-from-env key)]
(reset! (key KEYS) value) (reset! (key KEYS) value)
(if-let [value_dev (get-key-from-env key)] (if-let [value_dev (get-key-from-env default-key)]
(reset! (default-key KEYS) value_dev) (reset! (default-key KEYS) value_dev)
nil))) nil)))

View File

@@ -1,6 +1,5 @@
(ns riot.riot-api (ns riot.riot-api
(:require [riot.core :refer :all] (:require [riot.core :refer :all]))
[riot.riot-config :refer :all]))
;; ;;
@@ -14,6 +13,465 @@
;; Maps with keys and supported endpoints are in a separated file (riot-data.clj) ;; Maps with keys and supported endpoints are in a separated file (riot-data.clj)
;; ;;
;;
;; API KEYS
;;
(def RIOT-KEYS {:RIOT_DEV_KEY (atom nil)
:RIOT_LOL_KEY (atom nil)
:RIOT_TFT_KEY (atom nil)})
;;
;; KNOWN ENDPOINTS
;;
;; Each endpoint has a URL with path params (denoted as keywords, with ':') and
;; some informative metadata about parameters and some logical grouping.
;;
;; For now, metadata is optional and it is not used in the core, but is very
;; usefull for programmers like you.
(def ENDPOINTS
{;; account v1
:account-by-puuid
{:uri "https://europe.api.riotgames.com/riot/account/v1/accounts/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["account"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:lol-account-by-riot-id
{:uri "https://europe.api.riotgames.com/riot/account/v1/accounts/by-riot-id/:player-name/:player-tag"
:api-key :RIOT_LOL_KEY
:groups ["lol" "account"]
:path-params {:player-name {:required true :type :string}
:player-tag {:required true :type :string}}
:query-params {}
:header-params {}}
:account-active-shards
{:uri "https://europe.api.riotgames.com/riot/account/v1/active-shards/by-game/:game/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["account"]
:path-params {:game {:required true :type :string}
:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; LOL status v4
:lol-status
{:uri "https://euw1.api.riotgames.com/lol/status/v4/platform-data"
:api-key :RIOT_LOL_KEY
:groups ["lol" "status"]
:path-params {}
:query-params {}
:header-params {}}
;; champion-mastery-v4
:champion-mastery-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:champion-mastery-by-puuid-and-champion
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid/by-champion/:championId"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}
:championId {:required true :type :string}}
:query-params {}
:header-params {}}
:champion-mastery-by-puuid-top
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid/top"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}}
:query-params {:count {:required false :type :int :default 3}}
:header-params {}}
;; champion v3
:champion-rotations
{:uri "https://euw1.api.riotgames.com/lol/platform/v3/champion-rotations"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion"]
:path-params {}
:query-params {}
:header-params {}}
;; summoner v4
:summoner-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/summoner/v4/summoners/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "summoner"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; leage v4
:league-challenger-by-queue
{:uri "https://euw1.api.riotgames.com/lol/league/v4/challengerleagues/by-queue/:queue"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:queue {:required true :type :string}}
:query-params {}
:header-params {}}
:league-all-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/league/v4/entries/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:league-all-queue-tier-division
{:uri "https://euw1.api.riotgames.com/lol/league/v4/entries/:queue/:tier/:division"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:queue {:required true :type :string}
:tier {:required true :type :string}
:division {:required true :type :string}}
:query-params {:page {:required false :type :int :default 1}}
:header-params {}}
:league-grandmaster-by-queue
{:uri "https://euw1.api.riotgames.com/lol/league/v4/grandmasterleagues/by-queue/:queue"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:queue {:required true :type :string}}
:query-params {}
:header-params {}}
:league-by-id
{:uri "https://euw1.api.riotgames.com/lol/league/v4/leagues/:league-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:league-id {:required true :type :string}}
:query-params {}
:header-params {}}
:league-by-queue
{:uri "https://euw1.api.riotgames.com/lol/league/v4/masterleagues/by-queue/:queue"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:queue {:required true :type :string}}
:query-params {}
:header-params {}}
;; league-exp v4
:league-exp-by-queue-tier-division
{:uri "https://euw1.api.riotgames.com/lol/league-exp/v4/entries/:queue/:tier/:division"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:queue {:required true :type :string}
:tier {:required true :type :string}
:division {:required true :type :string}}
:query-params {:page {:required false :type :int :default 1}}
:header-params {}}
;; clash v1
:clash-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/clash/v1/players/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "clash"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:clash-by-team
{:uri "https://euw1.api.riotgames.com/lol/clash/v1/teams/:team-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "clash"]
:path-params {:team-id {:required true :type :string}}
:query-params {}
:header-params {}}
:clash-tournaments
{:uri "https://euw1.api.riotgames.com/lol/clash/v1/tournaments"
:api-key :RIOT_LOL_KEY
:groups ["lol" "clash"]
:path-params {}
:query-params {}
:header-params {}}
:clash-tournaments-by-team
{:uri "https://euw1.api.riotgames.com/lol/clash/v1/tournaments/by-team/:team-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "clash"]
:path-params {:team-id {:required true :type :string}}
:query-params {}
:header-params {}}
:clash-tournaments-by-tournament
{:uri "https://euw1.api.riotgames.com/lol/clash/v1/tournaments/:tournament-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "clash"]
:path-params {:tournament-id {:required true :type :int}}
:query-params {}
:header-params {}}
;; Match v5
:lol-matches-by-puuid
{:uri "https://europe.api.riotgames.com/lol/match/v5/matches/by-puuid/:puuid/ids"
:api-key :RIOT_LOL_KEY
:groups ["lol" "match"]
:path-params {:puuid {:required true :type :string}}
:query-params {:startTime {:required false :type :long}
:endTime {:required false :type :long}
:queue {:required false :type :int}
:type {:required false :type :string}
:start {:required false :type :int :default 0}
:count {:required false :type :int :default 20 :min 0 :max 100}}
:header-params {}}
:lol-match-replays-by-puuid
{:uri "https://europe.api.riotgames.com/lol/match/v5/matches/by-puuid/:puuid/replays"
:api-key :RIOT_LOL_KEY
:groups ["lol" "match"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:lol-match-by-id
{:uri "https://europe.api.riotgames.com/lol/match/v5/matches/:match-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "match"]
:path-params {:match-id {:required true :type :string}}
:query-params {}
:header-params {}}
:lol-match-timeline-by-id
{:uri "https://europe.api.riotgames.com/lol/match/v5/matches/:match-id/timeline"
:api-key :RIOT_LOL_KEY
:groups ["lol" "match"]
:path-params {:match-id {:required true :type :string}}
:query-params {}
:header-params {}}
;; LOL challenges v1
:lol-challenges-config
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/challenges/config"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {}
:query-params {}
:header-params {}}
:lol-challenge-config-by-id
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/challenges/:challenge-id/config"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {:challenge-id {:required true :type :long}}
:query-params {}
:header-params {}}
:lol-challenges-percentiles
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/challenges/percentiles"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {}
:query-params {}
:header-params {}}
:lol-challenges-percentiles-by-id
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/challenges/:challenge-id/percentiles"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {:challenge-id {:required true :type :long}}
:query-params {}
:header-params {}}
:lol-challenge-leaderboard
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/challenges/:challenge-id/leaderboards/by-level/:level"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {:challenge-id {:required true :type :long}
:level {:required true :type #{"NONE" "IRON" "BRONZE" "SILVER" "GOLD" "PLATINUM" "DIAMOND" "MASTER" "GRANDMASTER" "CHALLENGER" "HIGHEST_NOT_LEADERBOARD_ONLY" "HIGHEST" "LOWEST"}}}
:query-params {:limit {:required false :type :int}}
:header-params {}}
:lol-challenge-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/player-data/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; LOL champion mastery v4
:lol-champion-mastery-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:lol-champion-mastery-by-puuid-champion
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid/by-champion/:champion-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}
:champion-id {:required true :type :int}}
:query-params {}
:header-params {}}
:lol-champion-mastery-by-puuid-top
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid/top"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}}
:query-params {:count {:required false :type :int :default 3}}
:header-params {}}
:lol-champion-mastery-scores-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/scores/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; spectator v5
:lol-spectator
{:uri "https://euw1.api.riotgames.com/lol/spectator/v5/active-games/by-summoner/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "spectator"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;;
;; TFT
;;
;; account v1
:tft-account-by-riot-id
{:uri "https://europe.api.riotgames.com/riot/account/v1/accounts/by-riot-id/:player-name/:player-tag"
:api-key :RIOT_TFT_KEY
:groups ["tft" "account"]
:path-params {:player-name {:required true :type :string}
:player-tag {:required true :type :string}}
:query-params {}
:header-params {}}
;; tft status v1
:tft-status
{:uri "https://euw1.api.riotgames.com/tft/status/v1/platform-data"
:api-key :RIOT_TFT_KEY
:groups ["tft" "status"]
:path-params {}
:query-params {}
:header-params {}}
;; TFT summoner v1
:tft-summoner-by-puuid
{:uri "https://euw1.api.riotgames.com/tft/summoner/v1/summoners/by-puuid/:puuid"
:api-key :RIOT_TFT_KEY
:groups ["tft" "summoner"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; TFT match v1
:tft-matches-by-puuid
{:uri "https://europe.api.riotgames.com/tft/match/v1/matches/by-puuid/:puuid/ids"
:api-key :RIOT_TFT_KEY
:groups ["tft" "match"]
:path-params {:puuid {:required true :type :string}}
:query-params {:startTime {:required false :type :long}
:endTime {:required false :type :long}
:queue {:required false :type :int}
:type {:required false :type :string}
:start {:required false :type :int :default 0}
:count {:required false :type :int :default 20 :min 0 :max 100}}
:header-params {}}
:tft-match-by-id
{:uri "https://europe.api.riotgames.com/tft/match/v1/matches/:match-id"
:api-key :RIOT_TFT_KEY
:groups ["tft" "match"]
:path-params {:match-id {:required true :type :string}}
:query-params {}
:header-params {}}
;; TFT espectator v5
:tft-spectator
{:uri "https://euw1.api.riotgames.com/lol/spectator/tft/v5/active-games/by-puuid/:puuid"
:api-key :RIOT_TFT_KEY
:groups ["tft" "spectator"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; TFT league v1
:tft-league-by-puuid
{:uri "https://euw1.api.riotgames.com/tft/league/v1/by-puuid/:puuid"
:api-key :RIOT_TFT_KEY
:groups ["tft" "spectator"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:tft-league-challenger
{:uri "https://euw1.api.riotgames.com/tft/league/v1/challenger"
:api-key :RIOT_TFT_KEY
:groups ["tft" "spectator"]
:path-params {}
:query-params {:ranked {:required false :type #{"RANKED_TFT" "RANKED_TFT_DOUBLE_UP"}}}
:header-params {}}
:tft-league-by-tier-division
{:uri "https://euw1.api.riotgames.com/tft/league/v1/entries/:tier/:division"
:api-key :RIOT_TFT_KEY
:groups ["tft" "league"]
:path-params {:tier {:required true :type :string}
:division {:required true :type :string}}
:query-params {:queue {:required false :type #{"RANKED_TFT" "RANKED_TFT_DOUBLE_UP"} :default "RANKED_TFT"}
:page {:required false :type int :default 1}}
:header-params {}}
:tft-league-grandmaster-by-queue
{:uri "https://euw1.api.riotgames.com/tft/league/v1/grandmaster"
:api-key :RIOT_TFT_KEY
:groups ["tft" "league"]
:path-params {}
:query-params {:queue {:required false :type #{"RANKED_TFT" "RANKED_TFT_DOUBLE_UP"} :default "RANKED_TFT"}}
:header-params {}}
:tft-league-master-by-queue
{:uri "https://euw1.api.riotgames.com/tft/league/v1/master"
:api-key :RIOT_TFT_KEY
:groups ["tft" "league"]
:path-params {}
:query-params {:queue {:required false :type #{"RANKED_TFT" "RANKED_TFT_DOUBLE_UP"} :default "RANKED_TFT"}}
:header-params {}}
:tft-league-top-rated-ladders
{:uri "https://euw1.api.riotgames.com/tft/league/v1/rated-ladders/:queue/top"
:api-key :RIOT_TFT_KEY
:groups ["tft" "league"]
:path-params {:queue {:required true :type :string}}
:query-params {}
:header-params {}}
;; END OF ENDPOINT DEFINITIONS
})
;;
;; MAIN API FUNCTIONS
;;
; Not needed, but useful ; Not needed, but useful
(def get-riot-api-key (partial get-api-key RIOT-KEYS :RIOT_DEV_KEY)) (def get-riot-api-key (partial get-api-key RIOT-KEYS :RIOT_DEV_KEY))

View File

@@ -1,454 +0,0 @@
(ns riot.riot-config)
;;
;; API KEYS
;;
(def RIOT-KEYS {:RIOT_DEV_KEY (atom nil)
:RIOT_LOL_KEY (atom nil)
:RIOT_TFT_KEY (atom nil)})
;;
;; KNOWN ENDPOINTS
;;
;; Each endpoint has a URL with path params (denoted as keywords, with ':') and
;; some informative metadata about parameters and some logical grouping.
;;
;; For now, metadata is optional and it is not used in the core, but is very
;; usefull for programmers like you.
(def ENDPOINTS
{;; account v1
:account-by-puuid
{:uri "https://europe.api.riotgames.com/riot/account/v1/accounts/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["account"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:lol-account-by-riot-id
{:uri "https://europe.api.riotgames.com/riot/account/v1/accounts/by-riot-id/:player-name/:player-tag"
:api-key :RIOT_LOL_KEY
:groups ["lol" "account"]
:path-params {:player-name {:required true :type :string}
:player-tag {:required true :type :string}}
:query-params {}
:header-params {}}
:account-active-shards
{:uri "https://europe.api.riotgames.com/riot/account/v1/active-shards/by-game/:game/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["account"]
:path-params {:game {:required true :type :string}
:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; LOL status v4
:lol-status
{:uri "https://euw1.api.riotgames.com/lol/status/v4/platform-data"
:api-key :RIOT_LOL_KEY
:groups ["lol" "status"]
:path-params {}
:query-params {}
:header-params {}}
;; champion-mastery-v4
:champion-mastery-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:champion-mastery-by-puuid-and-champion
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid/by-champion/:championId"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}
:championId {:required true :type :string}}
:query-params {}
:header-params {}}
:champion-mastery-by-puuid-top
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid/top"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}}
:query-params {:count {:required false :type :int :default 3}}
:header-params {}}
;; champion v3
:champion-rotations
{:uri "https://euw1.api.riotgames.com/lol/platform/v3/champion-rotations"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion"]
:path-params {}
:query-params {}
:header-params {}}
;; summoner v4
:summoner-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/summoner/v4/summoners/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "summoner"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; leage v4
:league-challenger-by-queue
{:uri "https://euw1.api.riotgames.com/lol/league/v4/challengerleagues/by-queue/:queue"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:queue {:required true :type :string}}
:query-params {}
:header-params {}}
:league-all-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/league/v4/entries/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:league-all-queue-tier-division
{:uri "https://euw1.api.riotgames.com/lol/league/v4/entries/:queue/:tier/:division"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:queue {:required true :type :string}
:tier {:required true :type :string}
:division {:required true :type :string}}
:query-params {:page {:required false :type :int :default 1}}
:header-params {}}
:league-grandmaster-by-queue
{:uri "https://euw1.api.riotgames.com/lol/league/v4/grandmasterleagues/by-queue/:queue"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:queue {:required true :type :string}}
:query-params {}
:header-params {}}
:league-by-id
{:uri "https://euw1.api.riotgames.com/lol/league/v4/leagues/:league-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:league-id {:required true :type :string}}
:query-params {}
:header-params {}}
:league-by-queue
{:uri "https://euw1.api.riotgames.com/lol/league/v4/masterleagues/by-queue/:queue"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:queue {:required true :type :string}}
:query-params {}
:header-params {}}
;; league-exp v4
:league-exp-by-queue-tier-division
{:uri "https://euw1.api.riotgames.com/lol/league-exp/v4/entries/:queue/:tier/:division"
:api-key :RIOT_LOL_KEY
:groups ["lol" "league"]
:path-params {:queue {:required true :type :string}
:tier {:required true :type :string}
:division {:required true :type :string}}
:query-params {:page {:required false :type :int :default 1}}
:header-params {}}
;; clash v1
:clash-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/clash/v1/players/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "clash"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:clash-by-team
{:uri "https://euw1.api.riotgames.com/lol/clash/v1/teams/:team-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "clash"]
:path-params {:team-id {:required true :type :string}}
:query-params {}
:header-params {}}
:clash-tournaments
{:uri "https://euw1.api.riotgames.com/lol/clash/v1/tournaments"
:api-key :RIOT_LOL_KEY
:groups ["lol" "clash"]
:path-params {}
:query-params {}
:header-params {}}
:clash-tournaments-by-team
{:uri "https://euw1.api.riotgames.com/lol/clash/v1/tournaments/by-team/:team-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "clash"]
:path-params {:team-id {:required true :type :string}}
:query-params {}
:header-params {}}
:clash-tournaments-by-tournament
{:uri "https://euw1.api.riotgames.com/lol/clash/v1/tournaments/:tournament-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "clash"]
:path-params {:tournament-id {:required true :type :int}}
:query-params {}
:header-params {}}
;; Match v5
:lol-matches-by-puuid
{:uri "https://europe.api.riotgames.com/lol/match/v5/matches/by-puuid/:puuid/ids"
:api-key :RIOT_LOL_KEY
:groups ["lol" "match"]
:path-params {:puuid {:required true :type :string}}
:query-params {:startTime {:required false :type :long}
:endTime {:required false :type :long}
:queue {:required false :type :int}
:type {:required false :type :string}
:start {:required false :type :int :default 0}
:count {:required false :type :int :default 20 :min 0 :max 100}}
:header-params {}}
:lol-match-replays-by-puuid
{:uri "https://europe.api.riotgames.com/lol/match/v5/matches/by-puuid/:puuid/replays"
:api-key :RIOT_LOL_KEY
:groups ["lol" "match"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:lol-match-by-id
{:uri "https://europe.api.riotgames.com/lol/match/v5/matches/:match-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "match"]
:path-params {:match-id {:required true :type :string}}
:query-params {}
:header-params {}}
:lol-match-timeline-by-id
{:uri "https://europe.api.riotgames.com/lol/match/v5/matches/:match-id/timeline"
:api-key :RIOT_LOL_KEY
:groups ["lol" "match"]
:path-params {:match-id {:required true :type :string}}
:query-params {}
:header-params {}}
;; LOL challenges v1
:lol-challenges-config
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/challenges/config"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {}
:query-params {}
:header-params {}}
:lol-challenge-config-by-id
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/challenges/:challenge-id/config"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {:challenge-id {:required true :type :long}}
:query-params {}
:header-params {}}
:lol-challenges-percentiles
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/challenges/percentiles"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {}
:query-params {}
:header-params {}}
:lol-challenges-percentiles-by-id
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/challenges/:challenge-id/percentiles"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {:challenge-id {:required true :type :long}}
:query-params {}
:header-params {}}
:lol-challenge-leaderboard
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/challenges/:challenge-id/leaderboards/by-level/:level"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {:challenge-id {:required true :type :long}
:level {:required true :type #{"NONE" "IRON" "BRONZE" "SILVER" "GOLD" "PLATINUM" "DIAMOND" "MASTER" "GRANDMASTER" "CHALLENGER" "HIGHEST_NOT_LEADERBOARD_ONLY" "HIGHEST" "LOWEST"}}}
:query-params {:limit {:required false :type :int}}
:header-params {}}
:lol-challenge-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/challenges/v1/player-data/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "challenges"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; LOL champion mastery v4
:lol-champion-mastery-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:lol-champion-mastery-by-puuid-champion
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid/by-champion/:champion-id"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}
:champion-id {:required true :type :int}}
:query-params {}
:header-params {}}
:lol-champion-mastery-by-puuid-top
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-puuid/:puuid/top"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}}
:query-params {:count {:required false :type :int :default 3}}
:header-params {}}
:lol-champion-mastery-scores-by-puuid
{:uri "https://euw1.api.riotgames.com/lol/champion-mastery/v4/scores/by-puuid/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "champion-mastery"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; spectator v5
:lol-spectator
{:uri "https://euw1.api.riotgames.com/lol/spectator/v5/active-games/by-summoner/:puuid"
:api-key :RIOT_LOL_KEY
:groups ["lol" "spectator"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;;
;; TFT
;;
;; account v1
:tft-account-by-riot-id
{:uri "https://europe.api.riotgames.com/riot/account/v1/accounts/by-riot-id/:player-name/:player-tag"
:api-key :RIOT_TFT_KEY
:groups ["tft" "account"]
:path-params {:player-name {:required true :type :string}
:player-tag {:required true :type :string}}
:query-params {}
:header-params {}}
;; tft status v1
:tft-status
{:uri "https://euw1.api.riotgames.com/tft/status/v1/platform-data"
:api-key :RIOT_TFT_KEY
:groups ["tft" "status"]
:path-params {}
:query-params {}
:header-params {}}
;; TFT summoner v1
:tft-summoner-by-puuid
{:uri "https://euw1.api.riotgames.com/tft/summoner/v1/summoners/by-puuid/:puuid"
:api-key :RIOT_TFT_KEY
:groups ["tft" "summoner"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; TFT match v1
:tft-matches-by-puuid
{:uri "https://europe.api.riotgames.com/tft/match/v1/matches/by-puuid/:puuid/ids"
:api-key :RIOT_TFT_KEY
:groups ["tft" "match"]
:path-params {:puuid {:required true :type :string}}
:query-params {:startTime {:required false :type :long}
:endTime {:required false :type :long}
:queue {:required false :type :int}
:type {:required false :type :string}
:start {:required false :type :int :default 0}
:count {:required false :type :int :default 20 :min 0 :max 100}}
:header-params {}}
:tft-match-by-id
{:uri "https://europe.api.riotgames.com/tft/match/v1/matches/:match-id"
:api-key :RIOT_TFT_KEY
:groups ["tft" "match"]
:path-params {:match-id {:required true :type :string}}
:query-params {}
:header-params {}}
;; TFT espectator v5
:tft-spectator
{:uri "https://euw1.api.riotgames.com/lol/spectator/tft/v5/active-games/by-puuid/:puuid"
:api-key :RIOT_TFT_KEY
:groups ["tft" "spectator"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
;; TFT league v1
:tft-league-by-puuid
{:uri "https://euw1.api.riotgames.com/tft/league/v1/by-puuid/:puuid"
:api-key :RIOT_TFT_KEY
:groups ["tft" "spectator"]
:path-params {:puuid {:required true :type :string}}
:query-params {}
:header-params {}}
:tft-league-challenger
{:uri "https://euw1.api.riotgames.com/tft/league/v1/challenger"
:api-key :RIOT_TFT_KEY
:groups ["tft" "spectator"]
:path-params {}
:query-params {:ranked {:required false :type #{"RANKED_TFT" "RANKED_TFT_DOUBLE_UP"}}}
:header-params {}}
:tft-league-by-tier-division
{:uri "https://euw1.api.riotgames.com/tft/league/v1/entries/:tier/:division"
:api-key :RIOT_TFT_KEY
:groups ["tft" "league"]
:path-params {:tier {:required true :type :string}
:division {:required true :type :string}}
:query-params {:queue {:required false :type #{"RANKED_TFT" "RANKED_TFT_DOUBLE_UP"} :default "RANKED_TFT"}
:page {:required false :type int :default 1}}
:header-params {}}
:tft-league-grandmaster-by-queue
{:uri "https://euw1.api.riotgames.com/tft/league/v1/grandmaster"
:api-key :RIOT_TFT_KEY
:groups ["tft" "league"]
:path-params {}
:query-params {:queue {:required false :type #{"RANKED_TFT" "RANKED_TFT_DOUBLE_UP"} :default "RANKED_TFT"}}
:header-params {}}
:tft-league-master-by-queue
{:uri "https://euw1.api.riotgames.com/tft/league/v1/master"
:api-key :RIOT_TFT_KEY
:groups ["tft" "league"]
:path-params {}
:query-params {:queue {:required false :type #{"RANKED_TFT" "RANKED_TFT_DOUBLE_UP"} :default "RANKED_TFT"}}
:header-params {}}
:tft-league-top-rated-ladders
{:uri "https://euw1.api.riotgames.com/tft/league/v1/rated-ladders/:queue/top"
:api-key :RIOT_TFT_KEY
:groups ["tft" "league"]
:path-params {:queue {:required true :type :string}}
:query-params {}
:header-params {}}
;; END OF ENDPOINT DEFINITIONS
})

View File

@@ -1,8 +1,10 @@
(ns riot.data (ns riot.riot-data
(:require [riot.core :refer :all] (:require [riot.core :refer :all]
[riot.riot-api :refer :all] [riot.riot-api :refer :all]
[clojure.string :as s] [clojure.string :as s]
[tick.core :as t])) [tick.core :as t]
[timewords.core :as tw])
(:import [java.util Date]))
;; ;;
;; High functions to work with RIOT API. ;; High functions to work with RIOT API.
@@ -11,7 +13,7 @@
;; of riot-api's functions ;; of riot-api's functions
(declare format-millis format-duration) (declare format-millis format-duration process-time-literal)
;; Get matches list ;; Get matches list
@@ -223,4 +225,16 @@
) )
(defn process-time-literal
[str-time]
(let [udate (tw/parse str-time)]
(when udate
(t/long (t/instant udate)))))
(comment
(t/long (t/instant (tw/parse "Now")))
(process-time-literal "Today")
)
;; ;;