From 47aaf852798acb30f32f3e3ae7ca0fe28e9ac18e Mon Sep 17 00:00:00 2001 From: Matias Linares Date: Sun, 14 Oct 2018 18:28:06 -0300 Subject: Add script to get all endpoints for documentation. Also the first endpoints.md with all the implemented methods --- scripts/load-docs.p6 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100755 scripts/load-docs.p6 (limited to 'scripts/load-docs.p6') diff --git a/scripts/load-docs.p6 b/scripts/load-docs.p6 new file mode 100755 index 0000000..d3a1f81 --- /dev/null +++ b/scripts/load-docs.p6 @@ -0,0 +1,51 @@ +#!/usr/bin/env perl6 +use v6; +use HTTP::UserAgent; +use JSON::Fast; + +sub get-api-docs { + my $url = "https://matrix.org/docs/api/client-server/json/api-docs.json"; + my $ua = HTTP::UserAgent.new; + + my $res = $ua.get($url); + die "Cannot get response $res" unless $res.is-success; + + my $data = from-json($res.content); + + my %tags; + + for $data -> $path { + $path.kv.map: -> $p, $methods { + for $methods.kv -> $method, $description { + for $description -> $tag { + unless %tags{$tag}:exists { + %tags{$tag} = Array.new; + } + %tags{$tag}.push("{$method.uc} - $p"); + } + } + } + } + + %tags +} + +sub MAIN(:$spec?) { + my %tags = get-api-docs; + for %tags.sort -> $pair { + my $tag = $pair.key; + my $methods = $pair.value; + say qq:to/EOF/; + # $tag + EOF + + for $methods.Seq -> $m { + my Str $method = $m; + if $spec { + $method = $m.subst(/unstable/, $spec) + } + say "- [ ] " ~ $method; + } + say ""; + } +} -- cgit v1.2.3-70-g09d2