source: cpc/trunk/project/lib/task/loadDocumentsTask.class.php @ 1367

Last change on this file since 1367 was 1367, checked in by roux, 11 years ago

intégration texteslois, manquent plus que les députés

File size: 2.9 KB
Line 
1<?php
2
3class loadDocumentsTask extends sfBaseTask {
4  protected function configure() {
5    $this->namespace = 'load';
6    $this->name = 'Documents';
7    $this->briefDescription = 'Load Documents data';
8    $this->addOption('env', null, sfCommandOption::PARAMETER_OPTIONAL, 'Changes the environment this task is run in', 'test');
9    $this->addOption('app', null, sfCommandOption::PARAMETER_OPTIONAL, 'Changes the environment this task is run in', 'frontend');
10  }
11
12  protected function execute($arguments = array(), $options = array()) {
13    $dir = dirname(__FILE__).'/../../batch/documents/out/';
14    $manager = new sfDatabaseManager($this->configuration);
15
16    if (is_dir($dir)) {
17      if ($dh = opendir($dir)) {
18        while (($file = readdir($dh)) != false) {
19          if ($file == ".." || $file == "." || $file == ".svn") continue;
20          foreach(file($dir.$file) as $line) {
21            $json = json_decode($line);
22            if (!$json )
23            {
24              echo "ERROR json : $dir$file\n";
25              continue;
26            }
27            if (!$json->source)
28              {echo "ERROR source : $dir$file\n"; continue;}
29            if (!$json->legislature)
30              {echo "ERROR legislature : $dir$file\n"; continue;}
31            if (!$json->id)
32              {echo "ERROR id : $dir$file\n"; continue;}
33            if (!$json->numero)
34              {echo "ERROR numero : $dir$file\n"; continue;}
35            if(!$json->date_depot)
36              {echo "ERROR date_depot : $dir$file\n"; continue;}
37            if (!$json->dossier)
38              {echo "ERROR dossier : $dir$file\n"; continue;}
39            if (!$json->type)
40              {echo "ERROR type : $dir$file\n"; continue;}
41            $doc = Doctrine::getTable('Texteloi')->find($json->id);
42            if (!$doc) {
43              $doc = new Texteloi();
44              $doc->id = $json->id;
45              $doc->source = $json->source;
46              $doc->legislature = $json->legislature;
47              $doc->numero = $json->numero;
48              if ($json->annexe != "")
49                $doc->annexe = $json->annexe;
50              $doc->date = $json->date_depot;
51              $doc->type = $json->type;
52              $doc->save();
53            }
54            if ($json->date_publi)
55              $doc->date = $json->date_publi;
56            $doc->setDossier($json->dossier);
57            if ($json->type_details)
58              $doc->type_details = $json->type_details;
59            if ($json->titre)
60              $doc->titre = $json->titre;
61            if ($json->categorie)
62              $doc->categorie = $json->categorie;
63            if ($json->auteurs)
64              $doc->setAuteurs($json->auteurs);
65            if ($json->motscles)
66              foreach (explode('.', $json->motscles) as $tag)
67                if (strlen($tag) < 100)
68                  $doc->addTag($tag);
69            if ($json->contenu)
70              $doc->setContenu($json->contenu);
71            $doc->save();
72            $doc->free();
73            echo "$dir$file DONE\n";
74          }
75          unlink($dir.$file);
76        }
77        closedir($dh);
78      }
79    }
80  }
81}
Note: See TracBrowser for help on using the repository browser.