source: plugins_spip/spip2liquidsoap/genie/liquidsoap_stats.php @ 3930

Last change on this file since 3930 was 3930, checked in by kent1, 9 years ago

On rétabli l'enregistrement de la programmation

File size: 2.2 KB
Line 
1<?php
2/**
3 * La fonction de remplissage à effectuer pour remplir les statistiques
4 */
5
6function genie_liquidsoap_stats_dist($last){
7        $cfg = @unserialize($GLOBALS['meta']['liquidsoap_streams']);
8        spip_log('LIQUID : liquidsoap_stats','liquidsoap');
9        if(is_array($cfg)){
10                foreach ($cfg as $stream){
11                        /**
12                         * On recherche un stream du type store_metadata
13                         */
14                        if (strstr($stream['type'], 'store_metadata')){
15                                $stream_data = $stream;
16                                $stream_data['type_final'] = 'store_metadata';
17                                break;
18                        }
19                        if (strstr($stream['type'],'output.icecast')){
20                                $stream_data = $stream;
21                                $stream_data['type_final'] = 'output';
22                        }
23                }
24                if($stream_data && ($stream_data['type_final'] == 'store_metadata')){
25                        include_spip('classes/savonet');
26
27                        /**
28                         * La config du serveur
29                         */
30                        $config = lire_config('liquidsoap',array());
31                        $hostname = $config['serveur'] ? $config['serveur'] : '127.0.0.1';
32                        $port = $config['port'] ? $config['port'] : '1234';
33
34                        $sav = new savonet($hostname,$port);
35
36                        $sav->connect();
37                        if($sav->is_connected() == 1){
38                                include_spip('inc/documents');
39                                $metadatas = $sav->get_full_metadata($stream_data['name']);
40                                $on_air_max = sql_getfetsel('on_air','spip_liquidsoap_stats','','','on_air DESC');
41                                foreach($metadatas as $key => $val){
42                                        if(str_replace('/','-',$val['on_air']) > $on_air_max){
43                                                if($id_document = sql_getfetsel('id_document','spip_documents','fichier='.sql_quote($val['initial_uri']))){
44                                                        spip_log('on joue le document distant : '.$id_document,'liquidsoap');
45                                                }else{
46                                                        $fichier = str_replace($GLOBALS['meta']['adresse_site'],'',$val['initial_uri']);
47                                                        if (strpos($fichier, '/') === 0)
48                                                                $fichier = substr($fichier, 1);
49                                                        $fichier = set_spip_doc($fichier);
50                                                        $id_document = sql_getfetsel('id_document','spip_documents','fichier='.sql_quote($fichier));
51                                                }
52                                                if($id_document > 0){
53                                                        $infos = array(
54                                                                'id_document' => $id_document,
55                                                                'title' => $val['title'],
56                                                                'artist' => $val['artist'],
57                                                                'initial_uri' => $val['initial_uri'],
58                                                                'source' => $val['source'],
59                                                                'on_air' => str_replace('/','-',$val['on_air']),
60                                                        );
61                                                        sql_insertq('spip_liquidsoap_stats',$infos);
62                                                }
63                                        }
64                                }
65                        }
66                }
67        }
68        return 1;
69}
70
71?>
Note: See TracBrowser for help on using the repository browser.