Commit 336f506e authored by Hugo Trentesaux's avatar Hugo Trentesaux
Browse files

Init

parents
# wwgqljl
Client GraphQL pour WotWizard expérimental écrit en julia. Prévisualisation disponible à l'adresse https://wwtmp.coinduf.eu/.
## Installation
```julia
pkg> add HTTP, JSON, Plots # after ] for package mode
```
## Utilisation
```julia
include("./main.jl") # en attendant mieux
```
\ No newline at end of file
using HTTP, JSON
using Plots
GQL_URL = "https://wwgql.coinduf.eu/"
HEADER = ["Content-Type" => "application/x-www-form-urlencoded"]
"""
effectue les requêtes graphQL avec les conventions de wotwizard
"""
function graphQLrequest(body)
r = HTTP.request("POST", GQL_URL, HEADER, "graphQL=$body")
return JSON.parse(String(r.body))
end
# exemple de requête
# r = HTTP.request("POST", "https://wwgql.coinduf.eu/", ["Content-Type" => "application/x-www-form-urlencoded"], "graphQL={version}")
# JSON.parse(String(r.body))
# requête du numéro de version
v = graphQLrequest("{version}")
print("wotwizard version : ")
println(v["data"]["version"])
# requête pour l'évoltion du nombre de membres
print("requête du nombre de membre... ")
m = graphQLrequest("""
{
membersCount(start:0,end:null)
{
number,
block { utc0 }
}
lossCount(start:0,end:null)
{
number
}
}
""")
println("fait")
# extraction des données dans un vecteur
n = map(x -> x["number"], m["data"]["membersCount"])
l = map(x -> x["number"], m["data"]["lossCount"])
t = map(x -> x["block"]["utc0"], m["data"]["membersCount"])
# choix du backend
# plotly() # affichage interactif dans le navigateur
gr() # affichage rapide en julia
# affichage de la figure
plot(size=(1200,720), thickness_scaling=1.2, legend=:topleft)
plot!(t,n, label="membres actifs")
plot!(t,l, label="comptes ayant perdu le statut de membre")
plot!(t,n+l, label="total")
title!("Évolution du nombre de membres de la ğ1")
xaxis!("temps utc0")
yaxis!("nombre de membres")
# savefig("membre.png")
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment