Пример #1
0
        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}}&nbsp;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);
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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 ");
        }
Пример #4
0
        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;
            }
        }