Completed
Push — master ( 6051f2...6377da )
by Dispositif
02:48
created

WstatWorker::getTemplateData()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 17
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 11
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 17
rs 9.9
1
<?php
2
///**
3
// * This file is part of dispositif/wikibot application
4
// * 2019 : Philippe M. <[email protected]>
5
// * For the full copyright and MIT license information, please view the LICENSE file.
6
// */
7
//
8
//declare(strict_types=1);
9
//
10
//namespace App\Application;
11
//
12
//use App\Domain\IsbnFacade;
13
//use App\Domain\Utils\TemplateParser;
14
//use App\Infrastructure\CorpusAdapter;
15
//use App\Infrastructure\MessageAdapter;
16
//use App\Infrastructure\WstatImport;
17
//use GuzzleHttp\Client;
18
//use Symfony\Component\Console\Style\SymfonyStyle;
19
//use Throwable;
20
//
21
///**
22
// * DESACTIVED : The template from Wstat are not consistent (\n and multiples spaces trim)
23
// *
24
// * Class WstatWorker
25
// *
26
// * @package App\Application
27
// */
28
//class WstatWorker extends FileWorker
29
//{
30
//    public function run(?SymfonyStyle $io = null)
31
//    {
32
//        $corp = new CorpusAdapter();
33
//        echo 'WORKER '.__CLASS__."\n";
34
//        echo "To exit press CTRL+C\n";
35
//
36
//        $wstat = new WstatImport(
37
//            new Client(['timeout' => 10]), [
38
//            'title' => 'Ouvrage',
39
//            'query' => 'inclusions',
40
//            'param' => 'isbn',
41
//            'start' => 50000,
42
//            'limit' => 500,
43
//        ], 1000
44
//        );
45
//        $datas = $wstat->getData();
46
//
47
//        // TODO : data -> getISBN -> sql
48
//        // todo generator?
49
//        foreach ($datas as $data) {
50
//            if (empty($data['template'])) {
51
//                continue;
52
//            }
53
//            $tpData = $this->getTemplateData($data['template']);
54
//
55
//            if (!empty($tpData['isbn'])) {
56
//                // todo ISBN validator
57
//                $this->saveIsbn($data['title'], $tpData['isbn']);
58
//            }
59
//            if (!empty($tpData['isbn2'])) {
60
//                $this->saveIsbn($data['title'], $tpData['isbn2']);
61
//            }
62
//        }
63
//
64
//        // TODO data title/template -> SQL
65
//        // TODO entity+doctrine ?
66
//        exit;
67
//    }
68
//
69
//    private function getTemplateData(string $string): array
70
//    {
71
//        try {
72
//            $tpData = TemplateParser::parseDataFromTemplate('ouvrage', $string);
73
//        } catch (Throwable $e) {
74
//            echo sprintf(
75
//                "EXCEPTION %s %s %s on string %s \n",
76
//                $e->getMessage(),
77
//                $e->getFile(),
78
//                $e->getLine(),
79
//                $string
80
//            );
81
//            // TODO log?
82
//            $tpData = [];
83
//        }
84
//
85
//        return $tpData;
86
//    }
87
//
88
//    public function saveISBN(string $page, string $isbn): void
89
//    {
90
//        $isbnMachine = new IsbnFacade($isbn);
91
//        // validate ISBN
92
//        if (!$isbnMachine->isValid()) {
93
//            echo sprintf("Notice : ISBN %s not valid \n", $isbn);
94
//
95
//            return;
96
//        }
97
//
98
//        $data = ['page' => $page, 'isbn' => $isbn];
99
//        $msg = json_encode($data);
100
//
101
//        (new MessageAdapter())->amqpMsg('isbnRequest', $msg);
102
//        echo "Queue isbnRequest: $page, $isbn \n";
103
//        sleep(1);
104
//    }
105
//
106
//    public function process($io)
107
//    {
108
//        $name = $io->ask('Continue ?');
109
//        echo time()."\n";
110
//    }
111
//}
112