125 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
function telnet_send($command) {
 | 
						|
  $fp = stream_socket_client($_ENV['MAIN_PORT_5000_TCP'], $errno, $errstr, 5);
 | 
						|
  if (!$fp) {
 | 
						|
    return("<b><u>TELNET FAILURE:</u> $errstr ($errno)</b><br>");
 | 
						|
  }
 | 
						|
  fwrite($fp, "$command\nquit\n");
 | 
						|
  $eat = '';
 | 
						|
  while (!feof($fp)) {
 | 
						|
    $eat .= fgets($fp, 1024);
 | 
						|
  }
 | 
						|
  fclose($fp);
 | 
						|
  return $eat;
 | 
						|
}  
 | 
						|
 | 
						|
function cache_get($name) {
 | 
						|
  $cache_file = "$name.cache";
 | 
						|
  if (file_exists($cache_file) && (filemtime($cache_file) > (time() - 5 ))) {
 | 
						|
    return json_decode(file_get_contents($cache_file));
 | 
						|
  }
 | 
						|
  return false;
 | 
						|
}
 | 
						|
function cache_set($name, $value) {
 | 
						|
  $cache_file = "$name.cache";
 | 
						|
  file_put_contents($cache_file, json_encode($value), LOCK_EX);
 | 
						|
}
 | 
						|
function get_infos() {
 | 
						|
  $infos = array();
 | 
						|
  $metadata = get_metadata();
 | 
						|
  $infos['current'] = array_shift($metadata);
 | 
						|
  //include_once('getid3/getid3/getid3.php');
 | 
						|
  //$getID3 = new getID3;
 | 
						|
  $infos['history'] = $metadata;
 | 
						|
  return $infos;
 | 
						|
}
 | 
						|
function get_metadata() {
 | 
						|
  $entries = cache_get('metadata');
 | 
						|
  if ($entries) {
 | 
						|
    foreach ($entries as $key => $value) {
 | 
						|
      $entries[$key] = (array)$value;
 | 
						|
    }
 | 
						|
  } else {
 | 
						|
    $lines = explode("\n", trim(telnet_send("dodsorfas(dot)main.metadata")));
 | 
						|
    $entries_assoc = [];
 | 
						|
    $entry_number = 0;
 | 
						|
    foreach ($lines as $line) {
 | 
						|
      if (in_array(trim($line), array('END', 'Bye!'))) {
 | 
						|
	continue;
 | 
						|
      }
 | 
						|
      $match = preg_match('/^---\ ([0-9]*)\ ---/', $line, $search);
 | 
						|
      if ($match) {
 | 
						|
	if ($entry_number) {
 | 
						|
	  $entries_assoc[$entry_number] = $entry;
 | 
						|
	}
 | 
						|
	$entry_number = intval($search[1]);
 | 
						|
	$entry = array();
 | 
						|
      } else {
 | 
						|
	$value = explode('=', $line, 2);
 | 
						|
	$entry[$value[0]] = trim(trim($value[1]), '"');
 | 
						|
      }
 | 
						|
    }
 | 
						|
    $entries_assoc[$entry_number] = $entry;
 | 
						|
    $entries = array();
 | 
						|
    for ($i = 1; $i < sizeof($entries_assoc); $i++) {
 | 
						|
      $entry = $entries_assoc[$i];
 | 
						|
      $pos = strrpos($entry['title'], '(');
 | 
						|
      $entry['left_title'] = trim(substr($entry['title'], 0, $pos));
 | 
						|
      $entry['right_title'] = substr(trim(substr($entry['title'], $pos)), 1, -1);
 | 
						|
      if (preg_match('/(LIVE de copains- radio Salut c\'est cool)/', $entry['title'])) {
 | 
						|
	$entry['live'] = 1;
 | 
						|
	$entry['mode'] = 'live';
 | 
						|
	$entry['artist'] = 'Copains de salut c\'est cool';
 | 
						|
      } else if (preg_match('/(LIVE de SCC - radio Salut c\'est cool)/', $entry['title'])) {
 | 
						|
	$entry['live'] = 1;
 | 
						|
	$entry['mode'] = 'live';
 | 
						|
	$entry['live_artist'] = 'scc';
 | 
						|
	//$entry['artist'] = 'salut c\'est cool';
 | 
						|
      } else {
 | 
						|
	$mode = explode(' - ', $entry['right_title']);
 | 
						|
	$entry['live'] = 0;
 | 
						|
	if ($mode[0]) {
 | 
						|
	  $entry['mode'] = $mode[0];
 | 
						|
	}
 | 
						|
      }
 | 
						|
      if (empty($entry['full_title'])) {
 | 
						|
	if ($entry['artist'] && $entry['left_title']) {
 | 
						|
	  $entry['full_title'] = sprintf('%s - %s', $entry['artist'], $entry['left_title']);
 | 
						|
	} else {
 | 
						|
	  $entry['full_title'] = $entry['left_title'];
 | 
						|
	}
 | 
						|
      }
 | 
						|
      if (empty($entry['full_title'])) {
 | 
						|
	//$entry['full_title'] = 'Morceau sans nom';
 | 
						|
        $entry['full_title'] = basename($entry['filename']);
 | 
						|
      }
 | 
						|
      /*if ($entry['live_artist'] == 'scc') {
 | 
						|
	if (empty($entry['full_title'])) {
 | 
						|
	  $entry['full_title'] = 'salut c\'est cool en live';
 | 
						|
	} else {
 | 
						|
	  $entry['full_title'] = sprintf('salut c\'est cool en live (%s)', $entry['full_title']);
 | 
						|
	}
 | 
						|
	}*/
 | 
						|
      $entries[] = $entry;
 | 
						|
    }
 | 
						|
    cache_set('metadata', $entries);
 | 
						|
  }
 | 
						|
  return $entries;
 | 
						|
}
 | 
						|
function cool_print($data, $format) {
 | 
						|
  switch ($format) {
 | 
						|
  case 'json':
 | 
						|
    echo(json_encode($data));
 | 
						|
    break;
 | 
						|
  case 'jsonp':
 | 
						|
    printf("%s(%s);", $_GET['callback'], json_encode($data));
 | 
						|
    break;
 | 
						|
  case 'debug':
 | 
						|
    echo '<pre>';
 | 
						|
    print_r($data);
 | 
						|
    echo '</pre>';
 | 
						|
    break;
 | 
						|
  }
 | 
						|
}
 | 
						|
?>
 |