コード例 #1
0
<?php

/**
 * use: php tplNormas_rewrite.php > pagina.txt
 * use: php tplNormas_mergimport.php | php tplNormas_rewrite.php --stdin > pagina.txt
 * tplNormas_rewrite v2 2015-06-23
 */
// CONFIGS:
$normalize = TRUE;
$urlWiki = 'http://xmlfusion.org/wikosol';
// or php://stdin or filename
$P = 'Levantamento_das_pe%C3%A7as_legislativas';
include "MediawikiNavigator.php";
$mn = new MediawikiNavigor($urlWiki);
$mn->wikitext_normalizeConfig['CACHE'] = function ($i, &$p) {
    if (isset($p['tags'])) {
        $translateTag = array('cooperativa' => 'cooperativismo', 'iss' => 'inseção-fiscal', 'licitacoes' => 'licitações', 'catadores' => 'coeleta');
        $p['tags'] = mb_strtolower($p['tags'], 'UTF-8');
        $p['tags'] = join('; ', array_map(function ($s) use(&$translateTag) {
            return isset($translateTag[$s]) ? $translateTag[$s] : $s;
        }, preg_split('#[\\s;,/]+#s', $p['tags'])));
    }
    $p['kx_ano'] = '';
    if (isset($p['#2'])) {
        if (preg_match('~(\\d\\d)[/\\-](\\d\\d)[/\\-](\\d\\d\\d\\d)$~', $p['#2'], $m)) {
            $ano = $p['kx_ano'] = $m[3];
            $p['#2'] = "{$m['1']}/{$m['2']}/{$ano}";
            // normalized
        } elseif (preg_match('~(\\d\\d\\d\\d)$~', $p['#2'], $m)) {
            $ano = $p['kx_ano'] = $m[1];
        }
コード例 #2
0
 /**
  * Undo tokens of wikitex-templates. Normalize parametric templates.
  * @param $sortParams booleam to sort template-parameters, or array with initial params.
  */
 function wikitextTpl_untokenize($sortParams = TRUE, $close = TRUE, $VPARAM_SEP = ' | ')
 {
     $tpls =& $this->wikitext_tpls;
     $this->wikitext = preg_replace_callback('~#_tpl_#([a-z][\\w\\d_\\-]+)#(\\d+)##~is', function ($m) use(&$tpls, $sortParams, $VPARAM_SEP) {
         $idx = $m[2];
         if (isset($tpls[$idx])) {
             return MediawikiNavigor::wikitextTpl_untokenize1Tpl($tpls[$idx], $m[1], $sortParams, $VPARAM_SEP);
         } else {
             return '';
         }
     }, $this->wikitext);
     if ($close) {
         $this->wikitext_tpls = NULL;
     }
     // see
 }
コード例 #3
0
<?php

/**
 * Exports specifyed columns
 * use: php tplNormas_export.php > planilha.tsv
 * tplNormas_export v1 2015-06-23
 */
// CONFIGS:
$normalize = TRUE;
$urlWiki = 'http://xmlfusion.org/wikosol';
$P = 'Levantamento_das_pe%C3%A7as_legislativas';
include "MediawikiNavigator.php";
$mn = new MediawikiNavigor($urlWiki);
$mn->wikitext_normalizeConfig['CACHE'] = function ($i, &$p) {
    // prj	local	autoridade	tipo	Ano	cod	Norma	status	viavel	Nota	Tags	Ementa
    $tituloFull = isset($p['pretitulo']) ? "{$p['pretitulo']} {$p['#1']}" : $p['#1'];
    $p['csv_prj'] = $p['#name'] == 'prjnorma' ? 'x' : '';
    $p['csv_local'] = isset($p['lex_local']) ? $p['lex_local'] : '??';
    $p['csv_autoridade'] = isset($p['lex_autoridade']) ? $p['lex_autoridade'] : '??';
    $p['csv_tipo'] = isset($p['lex_tipo']) ? $p['lex_tipo'] : '??';
    $p['csv_ano'] = isset($p['kx_ano']) ? $p['kx_ano'] : '??';
    $p['csv_cod'] = preg_replace('/[^\\d]+/', '', $tituloFull);
    $p['csv_Norma'] = $tituloFull;
    $p['csv_status'] = isset($p['status']) ? $p['status'] : '??';
    $p['csv_viavel'] = isset($p['viavel']) ? $p['viavel'] : '??';
    $p['csv_Nota'] = isset($p['nota']) ? $p['nota'] : '??';
    $p['csv_Tags'] = isset($p['tags']) ? $p['tags'] : '??';
    $p['csv_Ementa'] = isset($p['ementa']) ? $p['ementa'] : '??';
};
// func
$mn->getByTitle('raw', $P);
コード例 #4
0
 * use: php tplNormas_mergeCSV.php > wikitext.txt
 * tplNormas_export v1 2015-06-23
 */
// alternativa: usar os campos 'csv_' da exportação como chaves para o merge
// CONFIGS:
$normalize = TRUE;
$urlWiki = 'http://xmlfusion.org/wikosol';
// or php://stdin or filename
$P = 'Levantamento_das_pe%C3%A7as_legislativas';
$csvFile = 'data/ecosol-marcoRegulatorio2015-levantamento2.tsv';
$DEBUG = 0;
$MAIN_PARAMS = array('local', 'autoridade', 'ementa', 'tags', 'url-fonte', 'url-transcricao');
$wikitext_pk = array();
$wikitext_err = '';
include "MediawikiNavigator.php";
$mn = new MediawikiNavigor($urlWiki);
$mn->wikitext_normalizeConfig['CACHE'] = function ($i, &$p) use(&$wikitext_pk) {
    $tituloFull = isset($p['pretitulo']) ? "{$p['pretitulo']} {$p['#1']}" : $p['#1'];
    $pk = clean_title($tituloFull, isset($p['kx_ano']) ? $p['kx_ano'] : '');
    if (isset($wikitext_pk[$pk])) {
        file_put_contents('php://stderr', "\n wikitext REPETIU {$tituloFull}\n", FILE_APPEND);
    } else {
        $wikitext_pk[$pk] = $p;
    }
};
// func
$mn->getByTitle('raw', $P);
$mn->wikitextTpl_tokenize(TRUE);
$mn->wikitextTpl_normalize_tpls(TRUE);
// // // // // // // //
// // BEGIN:ANALYSIS