static HlidacStatu.Api.V2.CoreApi.Model.Registration Registration() { var jsonGen = new JSchemaGenerator { DefaultRequired = Required.Default }; var genJsonSchema = jsonGen.Generate(typeof(Jednani)).ToString(); HlidacStatu.Api.V2.CoreApi.Model.Registration reg = new HlidacStatu.Api.V2.CoreApi.Model.Registration( "Jednání Rady České televize", DataSetId, "https://www.ceskatelevize.cz/rada-ct/prenos-jednani-po-internetu/", "https://github.com/HlidacStatu/Datasety/tree/master/deMinimis/Jednání%20Rady%20České%20televize", "Jednání, zápisy, materiály a přepis audiozáznamů jednání Rad České televize.", genJsonSchema, betaversion: true, allowWriteAccess: false, orderList: new string[, ] { { "Podle datumu konání", "DatumJednani" }, }, defaultOrderBy: "DatumJednani desc", searchResultTemplate: new ClassicTemplate.ClassicSearchResultTemplate() .AddColumn("Detail", @"<a href=""{{ fn_DatasetItemUrl item.Id }}"">{{item.Titulek}}</a>") .AddColumn("Datum jednání", "{{ fn_FormatDate item.DatumJednani }}") .AddColumn("Délka", "{{item.Delka}} min") .AddColumn("Materiály", @" {{ if item.Zapisy && item.Zapisy.size > 0 }} {{ for doc in item.Zapisy }} {{ doc.Nazev }}, {{ end }} {{end}} {{ if item.Materialy && item.Materialy.size > 0 }} {{ fn_Pluralize item.Materialy.size """" ""jeden projednávaný materiál"" ""{0} projednávané materiály"" ""{0} projednávaných materiálů"" }} {{end}} ") .AddColumn("", @"{{if item.PrepisAudia && item.PrepisAudia.size > 0 }} Přepis audiozáznamu dostupný {{end}}") , detailTemplate: new ClassicTemplate.ClassicDetailTemplate() .AddColumn("ID jednání", @"{{item.Id}}") .AddColumn("Jednání", "{{item.Titulek }}") .AddColumn("Datum jednání", "{{ fn_FormatDate item.DatumJednani }}") .AddColumn("Zápis", @" {{ if item.Zapisy && item.Zapisy.size > 0 }} <ul> {{ for doc in item.Zapisy }} <li> {{ doc.Nazev }} - {{fn_LinkTextDocumentWithHighlighting doc """ + DataSetId + @""" item.Id ""Obsah dokumentu"" highlightingData }} </li> {{ end }} </ul> {{end}} ") .AddColumn("Projednávané materiály", @" {{ if item.Materialy && item.Materialy.size > 0 }} <ul> {{ for doc in item.Materialy }} <li> {{ doc.Nazev }} - {{fn_LinkTextDocumentWithHighlighting doc """ + DataSetId + @""" item.Id ""Obsah dokumentu"" highlightingData }} </li> {{ end }} </ul> {{end}} ") .AddColumn("Odkaz na audio", "<a target='_blank' href='{ { item.Odkaz } }'>{{item.Odkaz }}</a>") .AddColumn("Délka audio záznamu", "{{ item.Delka }} min") .AddColumn(null, @" {{if item.PrepisAudia && item.PrepisAudia.size > 0 }} <b style='font-size:140%;'>Přepis audio záznamu</b> <i class='text-muted'>(vznikl díky velké pomoci od <a href='https://twitter.com/OndrejKlejch'>Ondřeje Klejcha</a> z <a href='https://twitter.com/InfAtEd'>University of Edinburgh</a>.)</i><br/><br/> {{if item.PrepisAudia && item.PrepisAudia.size > 0 }} <audio style='width:99%' id='player' controls src='https://somedata.hlidacstatu.cz/mp3/rada-ceske-televize/{{item.Id}}.mp3' type='audio/mp3'> Váš prohlížeč neumí přehrávat MP3 z prohlížeče. </audio> <b>Stačí kliknout na větu v textu a spustí se audiozáznam z daného místa</b>. <i>V Safari na OSX zlobí posun v souboru, doporučujeme Chrome</i> <script> var pl = document.querySelector('#player'); function skipTo(sec) { pl.pause(); pl.currentTime=0; if (sec < 4) { sec = 0; } else { sec = sec-4;} pl.currentTime=sec; pl.play(); } pl.currentTime= new URLSearchParams(window.location.search).get('t'); pl.pause(); </script> {{end}} </td></tr> <tr><td colspan=2> <pre class='formatted'> {{ for bl in item.PrepisAudia -}} <span title='Začíná v {{ timespan.from_seconds bl.SekundOdZacatku.Value | object.format 'c'}}' class='playme' onclick='javascript:skipTo({{bl.SekundOdZacatku.Value}});' >{{bl.Text}}</span> {{- end}} </pre> </td></tr> {{end}} ") ); return(reg); }
static void InitDS(bool recreate, string apiKey) { var jsonGen = new JSchemaGenerator { DefaultRequired = Required.Default }; var genJsonSchema = jsonGen.Generate(typeof(UOHSData)).ToString(); HlidacStatu.Api.V2.CoreApi.Model.Registration reg = new HlidacStatu.Api.V2.CoreApi.Model.Registration( "Rozhodnutí UOHS", datasetId, "http://www.uohs.cz/cs/verejne-zakazky/sbirky-rozhodnuti/", "https://github.com/HlidacStatu/Datasety/tree/master/Rozhodnuti-UOHS", "Sbírka rozhodnutí Úřadu pro ochranu hospodářské soutěže od roku 1999 v oblastech hospodářská soutěž, veřejné zakázky, veřejná podpora a významná tržní síla.", genJsonSchema, betaversion: false, allowWriteAccess: false, orderList: new string[, ] { { "Podle datumu právní moci", "PravniMoc" }, { "Podle roku", "Rok" }, { "Podle IČ subjektu", "ico" }, }, defaultOrderBy: "PravniMoc desc", searchResultTemplate: new HlidacStatu.Api.V2.CoreApi.Model.Template() { Body = @" <!-- scriban {{ date.now }} --> <table class=""table table-hover""> <thead> <tr> <th>ČJ </th> <th>Instance </th> <th>Nabytí právní moci </th> <th>Účastníci řízení </th> <th>Věc </th> <th>Typ správního řízení </th> </tr> </thead> <tbody> {{ for item in model.Result }} <tr> <td style=""white-space: nowrap;""> <a href=""{{fn_DatasetItemUrl item.Id}}"">{{ fn_ShortenText item.Cj 20 }} </a> </td> <td style=""white-space: nowrap;""> {{item.Instance}} </td> <td> {{fn_FormatDate item.PravniMoc ""dd.MM.yyyy""}} </td> <td> {{ for u in item.Ucastnici}} {{ if (fn_IsNullOrEmpty u.ICO)}} {{ fn_NormalizeText u.Jmeno }} {{else}} <a href=""https://www.hlidacstatu.cz/subjekt/{{u.ICO}}"">{{fn_NormalizeText u.Jmeno}} </a> <br /> {{end #if }} {{ end #for }} </td> <td> {{fn_ShortenText item.Vec 200}} </td> <td>{{item.Typ_spravniho_rizeni}} </td> </tr> {{end }} </tbody> </table> " }, detailTemplate: new HlidacStatu.Api.V2.CoreApi.Model.Template() { Body = @" <!-- scriban {{ date.now }} --> {{this.item = model}} <table class=""table table-hover""> <tbody> <tr> <td>Číslo jednací </td> <td>{{item.Cj}} </td> </tr> <tr> <td>Instance </td> <td>{{item.Instance}} </td> </tr> <tr> <td>Věc </td> <td>{{ fn_HighlightText highlightingData item.Vec ""Vec"" }} </td> </tr> <tr> <td>Účastníci </td> <td> {{for u in item.Ucastnici}} {{ if (fn_IsNullOrEmpty u.ICO) }} {{fn_NormalizeText u.Jmeno}} {{else}} <a href=""https://www.hlidacstatu.cz/subjekt/{{u.ICO}}"">{{fn_NormalizeText u.Jmeno}} </a> <br /> {{end}} {{end}} </td> </tr> <tr> <td>Typ řízení </td> <td>{{item.Typ_spravniho_rizeni}} </td> </tr> <tr> <td>Typ rozhodnutí </td> <td>{{item.Typ_spravniho_rizeni}} </td> </tr> <tr> <td>Nabytí právní moci </td> <td>{{fn_FormatDate item.PravniMoc ""dd.MM.yyyy""}} </td> </tr> <tr> <td>Související řízení </td> <td> {{for u in item.SouvisejiciUrl}} <a href=""{{u}}"">{{u}} </a> <br /> {{end}} </td> </tr> <tr> <td>Zdroj na UOHS </td> <td> <a href=""{{item.Url}}"" target=""_blank"">{{item.Url}} </a> </td> </tr> {{ if item.Rozhodnuti}} <tr> <td>Rozhodnutí </td> <td> <pre> {{ fn_HighlightText highlightingData item.Rozhodnuti.PlainText ""Rozhodnuti.PlainText"" }} </pre> </td> </tr> {{end}} </tbody> </table> " } ); try { if (recreate) { Configuration configuration = new Configuration(); configuration.AddDefaultHeader("Authorization", apiKey); if (debug) { System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true; configuration.BasePath = "https://local.hlidacstatu.cz"; } HlidacStatu.Api.V2.CoreApi.DatasetyApi datasetyApi = new HlidacStatu.Api.V2.CoreApi.DatasetyApi(configuration); datasetyApi.ApiV2DatasetyDelete(reg.DatasetId); } if (debug) { System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true; ds = HlidacStatu.Api.V2.Dataset.Typed.Dataset <UOHSData> .OpenDataset(apiKey, datasetId, "https://local.hlidacstatu.cz"); } else { ds = HlidacStatu.Api.V2.Dataset.Typed.Dataset <UOHSData> .OpenDataset(apiKey, datasetId); } } catch (HlidacStatu.Api.V2.CoreApi.Client.ApiException e) { ds = HlidacStatu.Api.V2.Dataset.Typed.Dataset <UOHSData> .CreateDataset(apiKey, reg); } catch (Exception e) { throw; } }
static void Main(string[] parameters) { var args = new Devmasters.Args(parameters); logger.Info($"Starting with args {string.Join(' ',parameters)}"); apiKey = args["/apikey"]; force = args.Exists("/force"); var jsonGen = new JSchemaGenerator { DefaultRequired = Required.Default }; var genJsonSchema = jsonGen.Generate(typeof(majitele)).ToString(); HlidacStatu.Api.V2.CoreApi.Model.Registration reg = new HlidacStatu.Api.V2.CoreApi.Model.Registration( "Skuteční majitelé firem", DatasetNameId, "https://esm.justice.cz/", "https://github.com/HlidacStatu/Datasety/tree/master/SkutecniMajitele", "Evidence skutečných majitelů firem podle zákona č. 37/2021 Sb.", genJsonSchema, betaversion: true, allowWriteAccess: false, orderList: new string[, ] { { "Podle datumu zápisu", "datum_zapis" }, { "Podle IČ subjektu", "ico" }, }, defaultOrderBy: "datum_zapis desc", searchResultTemplate: new HlidacStatu.Api.V2.CoreApi.Model.Template() { Body = @" <!-- scriban {{ date.now }} --> <table class=""table table-hover""> <thead> <tr> <th>Detail</th> <th>Subjekt</th> <th>Skutečný majitel</th> </tr> </thead> <tbody> {{ for item in model.Result }} <tr> <td ><a href=""{{ fn_DatasetItemUrl item.id }}"">{{item.id}}</a></td> <td >{{fn_RenderCompanyWithLink item.ico}}</td> <td > {{ for sk in item.skutecni_majitele }} {{ if !(fn_IsNullOrEmpty sk.osobaId) }} {{fn_RenderPersonWithLink2 sk.osobaId}}, {{else }} {{sk.osoba_jmeno}} {{sk.osoba_prijmeni}}, {{ end }} {{end }} </td> </tr> {{ end }} </tbody></table> " }, detailTemplate: new HlidacStatu.Api.V2.CoreApi.Model.Template() { Body = @" <!-- scriban {{ date.now }} --> {{this.item = model}} <table class=""table table-hover""><tbody> <tr><td>IČ</td><td ><a href=""{{ fn_DatasetItemUrl item.id }}"">{{item.id}}</a></td></tr> <tr><td>Subjekt</td><td >{{fn_RenderCompanyWithLink item.ico}}<br/> {{fn_RenderCompanyInformations item.ico 3}}</td></tr> <tr><td>Skutečný majitel</td><td > {{ for sk in item.skutecni_majitele }} <dl> <dt> {{ if !(fn_IsNullOrEmpty sk.osobaId) }} {{fn_RenderPersonWithLink2 sk.osobaId}} {{else }} {{sk.osoba_jmeno}} {{sk.osoba_prijmeni}} {{end}} ({{sk.udaj_typ_nazev}}) </dt> <dd> {{if !(fn_IsNullOrEmpty sk.podil_na_prospechu_hodnota) }} Podíl na prospěchu ze společnosti: {{sk.podil_na_prospechu_hodnota}} {{if sk.podil_na_prospechu_typ==""PROCENTA""}}%{{else}}({{sk.podil_na_prospechu_typ}}){{end}} <br/> {{end}} {{if !(fn_IsNullOrEmpty sk.podil_na_hlasovani_hodnota) }} Podíl na hlasovacích právech: {{sk.podil_na_hlasovani_hodnota}} {{if sk.podil_na_hlasovani_typ==""PROCENTA""}}%{{else}}({{sk.podil_na_hlasovani_typ}}){{end}} <br/> {{end}} </dd> </dl> {{end }} </td></tr> </table> " } ); try { if (args.Exists("/new")) { Configuration configuration = new Configuration(); configuration.AddDefaultHeader("Authorization", apiKey); HlidacStatu.Api.V2.CoreApi.DatasetyApi datasetyApi = new HlidacStatu.Api.V2.CoreApi.DatasetyApi(configuration); datasetyApi.ApiV2DatasetyDelete(reg.DatasetId); } ds = HlidacStatu.Api.V2.Dataset.Typed.Dataset <majitele> .OpenDataset(apiKey, DatasetNameId); } catch (HlidacStatu.Api.V2.CoreApi.Client.ApiException e) { ds = HlidacStatu.Api.V2.Dataset.Typed.Dataset <majitele> .CreateDataset(apiKey, reg); } catch (Exception e) { throw; } var wc = new System.Net.WebClient(); var package_list = Newtonsoft.Json.Linq.JObject.Parse( wc.DownloadString("https://dataor.justice.cz/api/3/action/package_list") ); var onlyCurrYears = package_list["result"] .ToArray() .Select(m => m.Value <string>()) .Where(m => m.EndsWith($"-{DateTime.Now.Year}") && m.Contains("-full-")) //.Where(m => m == "as-full-ostrava-2021") //DEBUG ; Devmasters.Batch.Manager.DoActionForAll <string>(onlyCurrYears, name => { ProcessXML(args, name); return(new Devmasters.Batch.ActionOutputData()); }, Devmasters.Batch.Manager.DefaultOutputWriter, Devmasters.Batch.Manager.DefaultProgressWriter, !System.Diagnostics.Debugger.IsAttached, maxDegreeOfParallelism: 2, prefix: "Get XMLS "); }
static void CreateDataset(Dictionary <string, string> args) { var jsonGen = new JSchemaGenerator { DefaultRequired = Required.Default }; var genJsonSchema = jsonGen.Generate(typeof(Nemocnice)).ToString(); HlidacStatu.Api.V2.CoreApi.Model.Registration reg = new HlidacStatu.Api.V2.CoreApi.Model.Registration( "Online dispečink intenzivní péče – volné kapacity nemocnic", "kapacity-jedn-nemocnic", "https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19", "", "Všechna data jsou přehledně zobrazena na https://www.hlidacstatu.cz/kapacitanemocnic", genJsonSchema, betaversion: false, allowWriteAccess: false, searchResultTemplate: new HlidacStatu.Api.V2.CoreApi.Model.Template("", @"<br/> <br/> <br/> <br/> <p style=""font-size:160%;font-weight:bold;""> Všechna data jsou přehledně zobrazena na <a href=""https://www.hlidacstatu.cz/kapacitanemocnic?utm_source=dataset&utm_medium=link&utm_campaign=kapacitanemocnic"">https://www.hlidacstatu.cz/kapacitanemocnic</a> </p> <br/> <br/> Zde jsou uložena v databázi a jsou tak snadno dostupná pro veřejnost přes <a href=""https://www.hlidacstatu.cz/api/v2/swagger/index#/Datasety"">API, aktuální a ve strojově čitelné podobě</a>. <br/> <br/> Originální data v Excelu jsou ke stažení na <a href=""https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19"">https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19</a>, část ""<i>COVID‑19: Online dispečink intenzivní péče – volné kapacity </i>"" <br/> "), detailTemplate: new HlidacStatu.Api.V2.CoreApi.Model.Template("", @"<br/> <br/> <br/> <br/> <p style=""font-size:160%;font-weight:bold;""> Všechna data jsou přehledně zobrazena na <a href=""https://www.hlidacstatu.cz/kapacitanemocnic?utm_source=dataset&utm_medium=link&utm_campaign=kapacitanemocnic"">https://www.hlidacstatu.cz/kapacitanemocnic</a> </p> <br/> <br/> Zde jsou uložena v databázi a jsou tak snadno dostupná pro veřejnost přes <a href=""https://www.hlidacstatu.cz/api/v2/swagger/index#/Datasety"">API, aktuální a ve strojově čitelné podobě</a>. <br/> <br/> Originální data v Excelu jsou ke stažení na <a href=""https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19"">https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19</a>, část ""<i>COVID‑19: Online dispečink intenzivní péče – volné kapacity </i>"" <br/> ") ); try { ds = HlidacStatu.Api.V2.Dataset.Typed.Dataset <Nemocnice> .OpenDataset(args["/apikey"], "kapacity-jedn-nemocnic"); if (ds == null) { ds = HlidacStatu.Api.V2.Dataset.Typed.Dataset <Nemocnice> .CreateDataset(args["/apikey"], reg); } } catch (ApiException e) { ds = HlidacStatu.Api.V2.Dataset.Typed.Dataset <Nemocnice> .CreateDataset(args["/apikey"], reg); } catch (Exception e) { throw; } }