Пример #1
0
        static void Main(string[] arguments)
        {
            dsc = new HlidacStatu.Api.Dataset.Connector.DatasetConnector(
                System.Configuration.ConfigurationManager.AppSettings["apikey"]
                );

            args = arguments
                   .Select(m => m.Split('='))
                   .ToDictionary(m => m[0].ToLower(), v => v.Length == 1 ? "" : v[1]);

            if (args.ContainsKey("/debug"))
            {
                Parse.parallel = false;
            }

            int?from = null;

            if (args.ContainsKey("/from"))
            {
                from = int.Parse(args["/from"]);
            }

            //create dataset
            var dsDef = new HlidacStatu.Api.Dataset.Connector.Dataset <jednani>(
                "Jednání vlády ČR", Parse.datasetname, "https://apps.odok.cz/zvlady", "Databáze \"Jednání vlády\" zobrazuje a umožňuje prohledávat veřejnosti programy jednání vlády, záznamy, usnesení a uveřejňované materiály pro jednání vlády, nepodléhají-li režimu utajení.",
                "https://github.com/HlidacStatu/Datasety/tree/master/jednani-vlady",
                true, false,
                new string[, ] {
                { "Datum jednání", "datum" }
            },
                new Template()
            {
                Body = @"
<!-- scriban {{ date.now }} --> 
<table class='table table-hover'>
                        <thead>
                            <tr>
<th style='min-width:120px'>Detail</th>
<th style='min-width:120px'>Datum jednání</th>
<th>Obsah bodu</th>
</tr>
</thead>
<tbody>
{{ for item in model.Result }}
<tr>
<td ><a href='{{ fn_DatasetItemUrl item.Id }}'>{{ item.bod }}</a></td>
<td>{{ fn_FormatDate item.datum 'dd. MM. yyyy' }}</td>
<td >{{ item.vec }}</td>
</tr>
{{ end }}

</tbody></table>
"
            },
                new Template()
            {
                Body = @"
{{this.item = model}}

<table class=""table table-hover""><tbody>

<tr><td>Datum jednání</td><td >{{ item.datum }}</td></tr>
<tr><td>Bod jednání</td><td >{{ item.bod }}</a></td></tr>

{{ if !(fn_IsNullOrEmpty item.cisloJednaci)  }}
   <tr><td>Číslo jednací</td><td >{{ item.cisloJednaci }}</td></tr>
{{end }}

<tr><td>Obsah projednáváného bodu</td><td >{{ item.vec }}</td></tr>


{{ if item.dokumenty.size > 0  }}

   <tr><td>Projednávané dokumenty</td><td >
<ul>
{{ for doc in item.dokumenty }}

   <li> 
      {{ doc.jmeno }} - 
      {{fn_LinkTextDocumentWithHighlighting doc ""jednani-vlady"" item.Id ""Obsah dokumentu"" highlightingData }}
   </li>

{{ end }}
</ul>
<div class=""text-muted small"">Vláda uveřejňuje dokumenty obvykle ve dvou formátech (DOC a PDF). Pro úplnost zpracováváme obě verze souboru, i když jsou obvykle shodné</div>
</td></tr>


{{end }}

{{ if item.souvisejici.size > 0  }}

   <tr><td>Související usnesení a dokumenty</td><td >
<ul>
{{ for doc in item.souvisejici }}

   <li> 

      Toto usnesení {{ doc.zmena }} 
      {{ if fn_IsNullOrEmpty doc.usneseniCislo }}
           {{ doc.usneseni }}
      {{ else }}
          <a href=""https://www.hlidacstatu.cz/data/Hledat/jednani-vlady?Q=cisloJednaci.keyword:{{ string.replace doc.usneseniCislo ""/20"" ""%2F"" }}"">
          {{ doc.usneseni }}</a>
      {{ end }}
   </li>

{{ end }}
</ul>
</td></tr>


{{end }}


</table>

"
            }
                );

            //dsc.DeleteDataset(dsDef).Wait();
            if (!dsc.DatasetExists(dsDef).Result)
            {
                dsc.CreateDataset(dsDef).Wait();
            }

            //Parse.ParseUsneseni(new DateTime(2019,8,26), "624");
            //var js = Parse.ParseAgenda("2020-03-16");
            //IEnumerable<jednani> js = new jednani[] { };
            //js = Parse.ParseAgenda("2020-02-17");
            ///var ids = js.Select(m => m.Id).Distinct().ToArray();
            //if (ids.Count() != js.Count())
            //{
            //    System.Diagnostics.Debugger.Break();
            //}

            Parse.DownloadAllData(dsc, from);
        }
Пример #2
0
        static void Main(string[] arguments)
        {
            dsc = new HlidacStatu.Api.Dataset.Connector.DatasetConnector(
                System.Configuration.ConfigurationManager.AppSettings["apikey"]
                );

            args = arguments
                   .Select(m => m.Split('='))
                   .ToDictionary(m => m[0].ToLower(), v => v.Length == 1 ? "" : v[1]);

            if (args.ContainsKey("/?") || args.ContainsKey("/h"))
            {
                Console.WriteLine("Tiskove konference vlady downloader");
                Console.WriteLine("[/h] [/daysback=] [/from=yyyy-MM-dd]");
                return;
            }

            if (args.ContainsKey("/debug"))
            {
                Parse.parallel = false;
            }

            DateTime?from = null;

            if (args.ContainsKey("/daysback"))
            {
                var db = int.Parse(args["/daysback"]);
                from = DateTime.Now.Date.AddDays(-1 * db);
            }
            if (args.ContainsKey("/from"))
            {
                from = DateTime.ParseExact(args["/from"], "yyyy-MM-dd", System.Globalization.CultureInfo.GetCultureInfo("en-US"), System.Globalization.DateTimeStyles.AssumeLocal);
            }

            //create dataset
            var dsDef = new HlidacStatu.Api.Dataset.Connector.Dataset <zapis>(
                "Tiskové konference vlády ČR", Parse.datasetname, startUrl, "Zápisy z tiskových konferencí vlády ČR.",
                "https://github.com/HlidacStatu/Datasety/tree/master/Tiskove-konference-vlady-CR",
                true, false,
                new string[, ] {
                { "Datum jednání", "datum" }
            },
                new Template()
            {
                Body = @"<table class='table table-hover' >
  <tbody>
    {{for item in model.Result }}           
    <tr>
      <td style='white-space: nowrap;'>                    
        <a href='{{fn_DatasetItemUrl item.Id}}' >Kompletní přepis
        </a>
      </td>
      <td style='white-space: nowrap;' >
        {{ fn_FormatDate item.datum 'd. MMMM yyy'}}                
      </td>
      <td  >
        {{item.nazev}}
      </td>
      <td  >
        {{item.nazev}}
      </td>
<td>{{fn_Pluralize item.vstupy 'přepis není dostupný' 'jeden vstup' '{0} vstupy' '{0} vstupů'  }}</td>
        <td>
            {{string.to_long item.celkovyPocetSlov | math.divided_by 200 | fn_Pluralize 'do minuty' 'minuta' '{0} minuty' '{0} minut' }}
        </td>
    </tr>
{{end}}
  </tbody>
</table>"
            },
                new Template()
            {
                Body = @"
{{this.item = model}}

Pripravuje se

"
            }
                );

            //dsc.DeleteDataset(dsDef).Wait();
            if (!dsc.DatasetExists(dsDef).Result)
            {
                dsc.CreateDataset(dsDef).Wait();
            }

            Parse.DownloadAllData(dsc, from);
        }
Пример #3
0
        static void Main(string[] arguments)
        {
            dsc = new HlidacStatu.Api.Dataset.Connector.DatasetConnector(apikey);

            //dsc.SetDeveleperUrl("http://local.hlidacstatu.cz/api/v1/");
            args = arguments
                   .Select(m => m.Split('='))
                   .ToDictionary(m => m[0].ToLower(), v => v.Length == 1 ? "" : v[1]);

            if (args.ContainsKey("/debug"))
            {
                Parse.parallel = false;
            }

            int?from = null;

            if (args.ContainsKey("/from"))
            {
                from = int.Parse(args["/from"]);
            }

            //create dataset
            var dsDef = new HlidacStatu.Api.Dataset.Connector.Dataset <jednani>(
                "Jednání výborů PSP", Parse.datasetname, "https://www.psp.cz/sqw/hp.sqw?k=194", "Databáze neutajených jednání výborů Poslanecké sněmovny Parlamentu České republiky. Zápisy, audio záznamy, usnesení a další dokumenty, které nepodléhají režimu utajení.",
                "https://github.com/HlidacStatu/Datasety/tree/master/Vybory-PSP",
                true, true,
                new string[, ] {
                { "Datum jednání", "datum" }, { "Výboru", "vybor" }
            },
                new Template()
            {
                Body = @"

<!-- scriban {{ date.now }} --> 
<table class='table table-hover'>
                        <thead>
                            <tr>
<th style='min-width:120px'>Jednání</th>
<th style='min-width:120px'>Výbor</th>
<th style='min-width:120px'>Datum jednání</th>
</tr>
</thead>
<tbody>
{{ for item in model.Result }}
<tr>
<td ><a href='{{ fn_DatasetItemUrl item.Id }}'>č. {{ item.cisloJednani }}</a></td>
<td >{{ item.vybor }}</td>
<td>{{ fn_FormatDate item.datum 'dd. MM. yyyy' }}</td>
</tr>
{{ end }}

</tbody></table>

"
            },
                new Template()
            {
                Body = @"
{{this.item = model}}

<table class='table table-hover'><tbody>

<tr><td>Datum jednání</td><td >{{ fn_FormatDate item.datum 'd. MMMM yyyy' }}</td></tr>
<tr><td>Číslo jednání</td><td >{{ item.cisloJednani }}</a></td></tr>

{{ if !(fn_IsNullOrEmpty item.vec)  }}
   <tr><td>Téma</td><td >{{ item.vec }}</td></tr>
{{end }}

{{ if item.dokumenty.size > 0  }}

  {{ zapis = ''
     for doc in item.dokumenty
        if (string.contains doc.typ 'Zápis')
           zapis = zapis + doc.DocumentPlainText
        end  
     end

     if ( (fn_IsNullOrEmpty zapis) == false )
     }}
   <tr><td style='vertical-align:top;'>Zápis z jednání</td>
   <td>
      <div class='panel-body'>                                                                       
      <pre style='font-size:90%;background:none;line-height:1.6em;'>
        {{ fn_HighlightText highlightingData zapis 'dokumenty.DocumentPlainText' | string.replace '\n' '\n\n' }}                                                                                                                                                                                                                                                                  
      </pre>
      </div>
   </td></tr>
    {{
     end 
  }}


   <tr><td>Projednávané dokumenty</td><td>
<ul>
{{ for doc in item.dokumenty }}

   <li> 
      {{ doc.jmeno }} - 
      {{fn_LinkTextDocumentWithHighlighting doc 'Vybory-PSP' item.Id 'Obsah dokumentu' highlightingData }}
   </li>

{{ end }}
</ul>
</td></tr>


{{end }}

{{ if item.audio.size > 0  }}

   <tr><td>Zvukové záznamy</td><td >
    <ul>
    {{ for doc in item.audio }}

       <li> 

      
          <a href='{{ doc.DocumentUrl }}'>
              {{ doc.jmeno }}</a>
          {{ end }}
       </li>

    {{ end }}
    </ul>
    </td></tr>
{{end }}

</table>
"
            }
                );

            //dsc.DeleteDataset(dsDef).Wait();
            if (!dsc.DatasetExists(dsDef).Result)
            {
                dsc.CreateDataset(dsDef).Wait();
            }

            //download vybory
            Parse.InitVybory();
            //int idVyboru = 500;
            foreach (var idVyboru in Parse.Vybory.Keys)
            {
                Parse.Vybor(dsc, idVyboru);
            }
        }