Compare commits

...

2 Commits

Author SHA1 Message Date
3a2679040e Retrofit test changes from graph branch 2025-07-07 23:19:49 +02:00
a50cb8a3eb Take some changes from graph branch 2025-07-07 23:13:40 +02:00
6 changed files with 79 additions and 97 deletions

View File

@@ -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"]]

View File

@@ -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))

View File

@@ -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))))

View File

@@ -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)))

View File

@@ -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))))

View File

@@ -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))))))