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

Last change on this file since 3934 was 3934, checked in by kent1, 10 years ago

Si on a une "queue" dans les streams on le met de coté pour que cela nous serve plus tard

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