Compare commits
2 Commits
e9064f9b61
...
v1.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 3a2679040e | |||
| a50cb8a3eb |
@@ -13,8 +13,7 @@
|
||||
[cli-matic/cli-matic "0.5.4"]
|
||||
[buddy/buddy-core "1.12.0-430"]
|
||||
[org.clojure/tools.namespace "1.5.0"]
|
||||
[lt.tokenmill/timewords "0.5.0"]
|
||||
[com.hypirion/clj-xchart "0.2.0"]]
|
||||
[lt.tokenmill/timewords "0.5.0"]]
|
||||
|
||||
:plugins [[io.taylorwood/lein-native-image "0.3.1"]]
|
||||
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
(get-puuid-from-params (get-lol-api-key) [] :name "Errepunto" :tag "4595")
|
||||
|
||||
(get-puuid-from-params (get-tft-api-key) [] :puuid "annlAfxhJnTwlwRgQZYbGeQpD3jWb-ju7vVKEW_g-EIJf6xQT0eeb-0obARVekrksf8n9XCjcxyHHQ")
|
||||
(get-puuid-from-params (get-tft-api-key) [] :name "Errepunto" :tag "4595")
|
||||
)
|
||||
(get-puuid-from-params (get-tft-api-key) [] :name "Errepunto" :tag "4595"))
|
||||
|
||||
|
||||
|
||||
@@ -55,8 +54,7 @@
|
||||
|
||||
(comment
|
||||
(cmd-active :_arguments ["annlAfxhJnTwlwRgQZYbGeQpD3jWb-ju7vVKEW_g-EIJf6xQT0eeb-0obARVekrksf8n9XCjcxyHHQ"])
|
||||
(cmd-active :_arguments ["Errepunto" "4595"])
|
||||
)
|
||||
(cmd-active :_arguments ["Errepunto" "4595"]))
|
||||
|
||||
|
||||
|
||||
@@ -138,7 +136,7 @@
|
||||
(take count)
|
||||
(format-dates-cond format-dates format-durations date-format)
|
||||
(filter-columns show-columns)
|
||||
(map )
|
||||
(map)
|
||||
(format-map output))))
|
||||
(catch [:status 401] _
|
||||
(U/exit! "Invalid API key" 3))
|
||||
@@ -177,8 +175,7 @@
|
||||
(catch [:status 429] _
|
||||
(U/exit! "Rate limit exceeded, please wait some minutes and try again" 4))
|
||||
(catch [:status 503] _
|
||||
(U/exit! "Server timeout, please wait some minutes and try again" 6))
|
||||
))
|
||||
(U/exit! "Server timeout, please wait some minutes and try again" 6))))
|
||||
|
||||
|
||||
;; More info: https://github.com/l3nz/cli-matic/blob/master/README.md
|
||||
@@ -223,8 +220,8 @@
|
||||
:type :string :default nil
|
||||
:as "Summoner tagline"}]
|
||||
:runs cmd-active}
|
||||
{:command "timeline" :short "t"
|
||||
:description ["Gets times from last played matches"
|
||||
{:command "last" :short "l"
|
||||
:description ["Gets time info from last matches."
|
||||
"You can search by PUUID or name and tagline, but not both."
|
||||
""
|
||||
"You can set the PUUID passing only one argument or using -p param."
|
||||
@@ -292,7 +289,7 @@
|
||||
:as ["Ending date (not included) in 'yyyy-MM-dd' format."
|
||||
"Other valid values: today, yesterday, tomorrow"]}]
|
||||
:runs cmd-timeline}
|
||||
{:command "bulk" :short "b"
|
||||
{:command "timeline" :short "t"
|
||||
:description ["Get info from LOL and TFT matches in a time range."
|
||||
"Warning: it can take several minutes to obtain all data, due to api restrictions."
|
||||
"You can search by PUUID or name and tagline, but not both."
|
||||
@@ -386,5 +383,4 @@
|
||||
; Launch manually
|
||||
(-main)
|
||||
|
||||
(old-main)
|
||||
)
|
||||
(old-main))
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
;; Core functions to get data from server
|
||||
|
||||
(ns riot.core
|
||||
(:import [java.time Instant LocalDateTime ZoneId]
|
||||
[java.net URLEncoder])
|
||||
(:require [clj-http.client :as client]
|
||||
[buddy.core.crypto :as crypto]
|
||||
[buddy.core.codecs :as codecs])
|
||||
@@ -35,7 +33,7 @@
|
||||
|
||||
;;;; API KEYS
|
||||
|
||||
(def DEV_KEY "RGAPI-e068aea3-5828-48e2-9500-259ef96c8c4f")
|
||||
(def DEV_KEY "RGAPI-fc8c6d88-2c13-4a43-b53f-3465bb564acc")
|
||||
(def LOL_KEY "jXL+gA3LIeBPBvrOhLOYSZCiURC7eOtwMXahkxtwpdj6JDtT5NMu25zMz+UY2+9MuHBADjUJh46jSanrV5OBag==")
|
||||
(def TFT_KEY (encrypt-data DEV_KEY secret-key iv))
|
||||
|
||||
@@ -109,8 +107,7 @@
|
||||
(get-in riot.test-examples/response-lol-match [:info :participants 3])
|
||||
|
||||
(get-player-info riot.test-examples/response-lol-match riot.test-examples/example-lol-puuid)
|
||||
(winner? riot.test-examples/response-lol-match riot.test-examples/example-lol-puuid)
|
||||
)
|
||||
(winner? riot.test-examples/response-lol-match riot.test-examples/example-lol-puuid))
|
||||
|
||||
|
||||
(defn with-winner-status
|
||||
@@ -120,8 +117,7 @@
|
||||
|
||||
|
||||
(comment
|
||||
(with-winner-status riot.test-examples/matches-example riot.test-examples/example-lol-puuid)
|
||||
)
|
||||
(with-winner-status riot.test-examples/matches-example riot.test-examples/example-lol-puuid))
|
||||
|
||||
|
||||
;; json adapters
|
||||
@@ -223,7 +219,7 @@
|
||||
|
||||
|
||||
(defn date-to-seconds
|
||||
([] (date-to-seconds (java.util.Date. )))
|
||||
([] (date-to-seconds (java.util.Date.)))
|
||||
([d]
|
||||
(when (some? d) (quot (.getTime d) 1000))))
|
||||
|
||||
|
||||
@@ -31,14 +31,18 @@
|
||||
(java.util.Date/from (.toInstant (.atZone (.atStartOfDay localdate) (ZoneId/systemDefault))))))
|
||||
|
||||
(defn parse-localdate
|
||||
"Parse a yyyy-MM-dd date to java.util.Date"
|
||||
"Parse a yyyy-MM-dd date to java.time.LocalDate"
|
||||
[s]
|
||||
(java.time.LocalDate/parse s (DateTimeFormatter/ofPattern DEFAULT_DATE_FORMAT))
|
||||
)
|
||||
(java.time.LocalDate/parse s (DateTimeFormatter/ofPattern DEFAULT_DATE_FORMAT)))
|
||||
|
||||
(defn parse-date
|
||||
(defn parse-date-str
|
||||
[s]
|
||||
(localdate-to-date(parse-localdate s)))
|
||||
(localdate-to-date (parse-localdate s)))
|
||||
|
||||
|
||||
(defn parse-date-epoch
|
||||
[millis]
|
||||
(localdate-to-date (unix-to-datetime millis)))
|
||||
|
||||
|
||||
(defn format-datetime
|
||||
@@ -66,7 +70,7 @@
|
||||
(when (some? seconds)
|
||||
(if (< seconds 3600)
|
||||
(format "%02d:%02d" (quot seconds 60) (rem seconds 60))
|
||||
(format "%02d:%02d:%02d" (quot seconds 3600) ( - ( quot seconds 60) 60) (rem seconds 60)))))
|
||||
(format "%02d:%02d:%02d" (quot seconds 3600) (- (quot seconds 60) 60) (rem seconds 60)))))
|
||||
|
||||
|
||||
|
||||
@@ -98,8 +102,7 @@
|
||||
(map #(update % :start (fn [x] (format-datetime-millis x datetime-format))))
|
||||
(map #(update % :end (fn [x] (format-datetime-millis x datetime-format))))))
|
||||
(comment
|
||||
(with-parsed-dates riot.test-examples/matches-example)
|
||||
)
|
||||
(with-parsed-dates riot.test-examples/matches-example))
|
||||
|
||||
|
||||
|
||||
@@ -116,8 +119,7 @@
|
||||
:or {datetime-format DEFAULT_DATE_TIME_FORMAT}}]
|
||||
(-> matches
|
||||
(with-parsed-durations)
|
||||
(with-parsed-dates :datetime-format datetime-format)
|
||||
))
|
||||
(with-parsed-dates :datetime-format datetime-format)))
|
||||
|
||||
|
||||
;;; Export to other formats
|
||||
@@ -139,8 +141,7 @@
|
||||
|
||||
(comment
|
||||
(println (as-json (with-parsed-dates-durations riot.test-examples/matches-example
|
||||
:pretty false)))
|
||||
)
|
||||
:pretty false))))
|
||||
|
||||
|
||||
|
||||
@@ -151,8 +152,7 @@
|
||||
|
||||
(comment
|
||||
(as-ascii-table riot.test-examples/matches-example)
|
||||
(as-ascii-table (with-parsed-dates-durations riot.test-examples/matches-example))
|
||||
)
|
||||
(as-ascii-table (with-parsed-dates-durations riot.test-examples/matches-example)))
|
||||
|
||||
|
||||
|
||||
@@ -166,9 +166,8 @@
|
||||
(map #(clojure.string/join separator %)
|
||||
(map vals matches))))))
|
||||
|
||||
(comment
|
||||
(comment
|
||||
(as-csv riot.test-examples/matches-example)
|
||||
(as-csv riot.test-examples/matches-example2)
|
||||
(as-csv (with-parsed-dates-durations riot.test-examples/matches-example))
|
||||
(as-csv (with-parsed-dates-durations riot.test-examples/matches-example2))
|
||||
)
|
||||
(as-csv (with-parsed-dates-durations riot.test-examples/matches-example2)))
|
||||
|
||||
@@ -126,8 +126,7 @@
|
||||
(testing "Some dates"
|
||||
(is (nil? (date-to-seconds nil)))
|
||||
(is (some? (date-to-seconds)))
|
||||
(is (= 1738364400 (date-to-seconds (java.util.Date. 125 1 1)))))
|
||||
)
|
||||
(is (= 1738364400 (date-to-seconds (java.util.Date. 125 1 1))))))
|
||||
|
||||
|
||||
;; Get parameter for querying data
|
||||
@@ -230,8 +229,7 @@
|
||||
(is (not res) (str "Oh, well, the player is playing: " res))))
|
||||
(testing "Include current"
|
||||
(let [res (is-playing? example-lol-puuid example-tft-puuid)]
|
||||
(is (not res) (str "Oh, well, the player is playing: " res)))))
|
||||
)
|
||||
(is (not res) (str "Oh, well, the player is playing: " res))))))
|
||||
|
||||
|
||||
(deftest test-get-matches-batch-lol
|
||||
@@ -241,7 +239,7 @@
|
||||
(is (= nil (get-matches-batch-lol example-lol-puuid nil)))
|
||||
(is (= nil (get-matches-batch-lol nil (get-lol-api-key)))))
|
||||
(testing "Get LOL matches"
|
||||
(is (= 10 (count (get-matches-batch-lol example-lol-puuid (get-lol-api-key):count 5 :max-batches 2))))))
|
||||
(is (= 10 (count (get-matches-batch-lol example-lol-puuid (get-lol-api-key) :count 5 :max-batches 2))))))
|
||||
|
||||
(deftest test-get-matches-batch-tft
|
||||
(println "* Get tft matches batch *")
|
||||
@@ -298,5 +296,4 @@
|
||||
(get-matches-info-batch example-lol-puuid example-tft-puuid)
|
||||
(catch [:status 404] {:keys [request-time headers body] :as excp}
|
||||
(println "NOT Found 404")
|
||||
(pp/pprint excp)))
|
||||
)
|
||||
(pp/pprint excp))))
|
||||
|
||||
@@ -58,8 +58,7 @@
|
||||
(testing "Long durations"
|
||||
(is (= "01:00:00" (format-duration-seconds 3600)))
|
||||
(is (= "01:00:01" (format-duration-seconds 3601)))
|
||||
(is (= "01:01:01" (format-duration-seconds 3661))))
|
||||
)
|
||||
(is (= "01:01:01" (format-duration-seconds 3661)))))
|
||||
|
||||
|
||||
;; Epoch in millis for today at 00:00:00 hours. Difficult to test
|
||||
@@ -77,8 +76,7 @@
|
||||
(is (match-today? {:start (+ 5000 (today-millis))})))
|
||||
(testing "End date today"
|
||||
(is (match-today? {:end (today-millis)}))
|
||||
(is (match-today? {:end (+ 5000 (today-millis))})))
|
||||
)
|
||||
(is (match-today? {:end (+ 5000 (today-millis))}))))
|
||||
|
||||
|
||||
;; Parse dates inside a lis of matches
|
||||
@@ -90,8 +88,7 @@
|
||||
(is (= '({:a "AAA" :b 2 :start nil, :end nil}) (with-parsed-dates '({:a "AAA" :b 2})))))
|
||||
(testing "Valid list"
|
||||
(is (= '({:start "2025-06-11 19:00:54", :end nil, :duration 1288, :active true, :game-type "lol", :id "EUW1_111111"})
|
||||
(with-parsed-dates (take 1 matches-example))))
|
||||
))
|
||||
(with-parsed-dates (take 1 matches-example))))))
|
||||
|
||||
|
||||
;; Parse durations
|
||||
@@ -103,8 +100,7 @@
|
||||
(is (= '({:a "AAA" :b 2 :duration nil}) (with-parsed-durations '({:a "AAA" :b 2})))))
|
||||
(testing "Valid list"
|
||||
(is (= '({:start 1749661254854, :end nil, :duration "21:28", :active true, :game-type "lol", :id "EUW1_111111"})
|
||||
(with-parsed-durations (take 1 matches-example)))))
|
||||
)
|
||||
(with-parsed-durations (take 1 matches-example))))))
|
||||
|
||||
|
||||
;; Parse dates and durations
|
||||
@@ -118,7 +114,6 @@
|
||||
(with-parsed-dates-durations '({:a "AAA" :b 2})))))
|
||||
(testing "Valid list"
|
||||
(is (= '({:start "2025-06-11 19:00:54", :end nil, :duration "21:28", :active true, :game-type "lol", :id "EUW1_111111"})
|
||||
(with-parsed-dates-durations (take 1 matches-example)))))
|
||||
)
|
||||
(with-parsed-dates-durations (take 1 matches-example))))))
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user