source: spip-zone/_plugins_/extraire_documents/trunk/extraire/defaut/10_tika_server.php @ 106441

Last change on this file since 106441 was 106441, checked in by rastapopoulos@…, 2 years ago

On refait l'indentation parce que c'était n'importe quoi

File size: 2.5 KB
Line 
1<?php
2
3/**
4 * Tester si cette méthode d'extraction est disponible
5 **/
6function extraire_defaut_10_tika_server_test_dist($mime) {
7        include_spip('inc/distant');
8        include_spip('inc/config');
9
10        $url_serveur = (lire_config('extrairedoc_config/url_serveur')!='') ? lire_config('extrairedoc_config/url_serveur') : 'localhost';
11        $port = (lire_config('extrairedoc_config/port')!='') ? lire_config('extrairedoc_config/port') : 9998;
12        // On cherche si le serveur Tika est bien lancé en local (valeurs peut-être à configurer…)
13        $tika_version = recuperer_page($url_serveur.':'.$port.'/version');
14       
15        if (
16                strpos($tika_version, 'Apache Tika') !== false
17                // pas de image/truc pour l'instant avec Tika,
18                // sinon par défaut on va chercher à extraire des centaines ou des milliers d'images suivant les sites…
19                and strpos($mime, 'image') !== 0
20        ) {
21                return true;
22        }
23        else {
24                return false;
25        }
26}
27
28/**
29 * Extraire le contenu pour le mime type pdf
30 *
31 *
32 * @param $fichier le fichier à traiter
33 * @return Scontenu le contenu brut
34 **/
35function extraire_defaut_10_tika_server_extraire_dist($fichier, $infos) {
36        $infos = array('contenu' => false, 'metadata' => false);
37        $contenu = '';
38        include_spip('inc/config');
39       
40        $url_serveur = (lire_config('extrairedoc_config/url_serveur')!='') ? lire_config('extrairedoc_config/url_serveur') : 'localhost';
41        $port = (lire_config('extrairedoc_config/port')!='') ? lire_config('extrairedoc_config/port') : 9998;
42       
43        // Bespoin de charger composer
44        if (!class_exists('Composer\\Autoload\\ClassLoader')) {
45                include_spip('lib/Composer/Autoload/ClassLoader');
46        }
47       
48        $loader = new \Composer\Autoload\ClassLoader();
49       
50        // On définit le bon chemin pour le namespace de la librairie nécessaire
51        $loader->addPsr4('Vaites\\ApacheTika\\', _DIR_PLUGIN_EXTRAIREDOC . 'lib/vaites/php-apache-tika/src');
52        $loader->register();
53       
54        // On récupère le client pour discuter avec Tika
55        $client = \Vaites\ApacheTika\Client::make($url_serveur, $port);
56       
57        // On tente de récupérer le texte brut du fichier
58        try {
59                set_time_limit (0);
60                $contenu = $client->getText(_DIR_RACINE . $fichier);
61                $metadata = (array) $client->getMetadata(_DIR_RACINE . $fichier);
62                $meta = (array) $metadata['meta'];
63        }
64        catch (Exception $e) {
65                //Pour toute exception on s'arrete et on retourne un contenu vide
66                //Les cas de figure sont entre autre les fichiers mal formés ou signés
67                return '';
68        }
69       
70        //Libérer les ressources
71        unset($client);
72        unset($loader);
73       
74        // Si on a trouvé du texte
75        if ($contenu) {
76                $infos['contenu'] = $contenu;
77                $infos['titre'] = $metadata['title'];
78        }
79       
80        return $infos;
81}
Note: See TracBrowser for help on using the repository browser.