Skip to content

Instantly share code, notes, and snippets.

@jangaraj
Last active March 4, 2017 17:08
Show Gist options
  • Select an option

  • Save jangaraj/870c735867d9d4c3aa4f336810f6cb77 to your computer and use it in GitHub Desktop.

Select an option

Save jangaraj/870c735867d9d4c3aa4f336810f6cb77 to your computer and use it in GitHub Desktop.
metais.py
#!/usr/bin/env python
import json, requests
debug = 0
'''
Examples:
# time ./metais.py > /tmp/metais.stats
real 16m57.925s
user 6m4.204s
sys 0m5.232s
# wc -l /tmp/metais.stats
5228 /tmp/metais.stats2
# grep ^0 /tmp/metais.stats | wc -l
1627
# cat /tmp/metais.stats | awk -F'::' '{SUM +=$1} END {print SUM}'
26702
# cat /tmp/metais.stats | sort -rn | head
152::Zápis správy na centrálnu elektronickú úradnú tabuľu::Počet elektronických volaní služby za merané obdobie - 1 mesiac.::74230052-2b51-421c-9ac2-ae0a5cc087dc::sluzba_is_165::Úrad vlády Slovenskej republiky
152::Prijatie správy s elektronickým dokumentom alebo elektronickým dokumentom podpísaným elektronickým podpisom::Počet elektronických volaní služby za merané obdobie - 1 mesiac.::07de6dfa-955e-4b1d-80b5-6c220191ba49::sluzba_is_1369::Úrad vlády Slovenskej republiky
152::Odoslanie elektronického dokumentu::Počet elektronických volaní služby za merané obdobie - 1 mesiac.::dc9f493d-d7cf-4aaa-ba0e-5553b48aa57e::sluzba_is_34004::Úrad vlády Slovenskej republiky
# cat /tmp/metais.stats | awk -F'::' '{map[$6] += $1} END { for (i in map) { print map[i], i } }' | sort -rn
4862 Mesto Košice
4259 DataCentrum elektronizácie územnej samosprávy Slovenska
3516 Generálna prokuratúra Slovenskej republiky
3323 Úrad vlády Slovenskej republiky
2875 Ministerstvo financií Slovenskej republiky
1909 Ministerstvo práce, sociálnych vecí a rodiny Slovenskej republiky
1680 Úrad geodézie, kartografie a katastra Slovenskej republiky
1090 Ministerstvo spravodlivosti Slovenskej republiky
997 Ministerstvo vnútra Slovenskej republiky
716 Najvyšší kontrolný úrad Slovenskej republiky
426 Ministerstvo školstva, vedy, výskumu a športu Slovenskej republiky
305 Ministerstvo zahraničných vecí a európskych záležitostí Slovenskej republiky
296 Štatistický úrad Slovenskej republiky
278 Kancelária Ústavného súdu Slovenskej republiky
170 Úrad podpredsedu vlády Slovenskej republiky pre investície a informatizáciu
# application services list
# https://metais.finance.gov.sk/monitoring/param-value/overview/list?page=1&perPageSize=10000&serviceType=AS
# end services list
# https://metais.finance.gov.sk/monitoring/param-value/overview/list?page=1&perPageSize=10000&serviceType=KS
# datapoint url
# https://metais.finance.gov.sk/monitoring/param-value/list?entityRef=d6ce4942-58cf-4044-86fd-63a177720665&parameterTypeId=7&intervalStart=2016-03-31&intervalEnd=2016-07-31&sortAttr=intervalStart&sortAsc=true&perPageSize=100000
'''
resp = requests.get(url="https://metais.finance.gov.sk/monitoring/param-value/overview/list?page=1&perPageSize=10000&serviceType=AS")
as_data = json.loads(resp.text)
if debug:
print("%i aplikacnych sluzieb" % len(as_data['results']))
resp = requests.get(url="https://metais.finance.gov.sk/monitoring/param-value/overview/list?page=1&perPageSize=10000&serviceType=KS")
ks_data = json.loads(resp.text)
if debug:
print("%i koncovych sluzieb" % len(ks_data['results']))
services = as_data['results'] + ks_data['results']
if debug:
print("%i sluzieb celkovo" % len(services))
cache = {}
for service in services:
if debug:
print service["name"].encode('utf-8')
if service["type"] == "AS":
category = "c_typ_parametra_kategoria.1"
else:
category = "c_typ_parametra_kategoria.2"
if category not in cache:
params_url = "https://metais.finance.gov.sk/monitoring/paramtypes?category=" + category
resp = requests.get(url=params_url)
cache[category] = json.loads(resp.text)["results"]
for param in cache[category]:
if debug:
print param["description"].encode('utf-8')
data_url = "https://metais.finance.gov.sk/monitoring/param-value/list?entityRef=" + service["uuid"] + "&parameterTypeId=" + str(param["id"]) + "&intervalStart=2016-01-01&intervalEnd=2018-07-31&sortAttr=intervalStart&sortAsc=true&perPageSize=100000"
resp = requests.get(url=data_url)
data = json.loads(resp.text)
print("%i::%s::%s::%s::%s::%s" % (len(data["results"]), service["name"].encode('utf-8'), param["description"].encode('utf-8'), service["uuid"].encode('utf-8'), service["code"].encode('utf-8'), service["poName"].encode('utf-8')))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment