mirror of
https://git.friendi.ca/friendica/friendica-addons.git
synced 2025-07-11 02:48:48 +00:00
jappixmini: include jappix source
This commit is contained in:
parent
61eb1f0d18
commit
302b2820d1
231 changed files with 96082 additions and 2 deletions
103
jappixmini/jappix/php/music-search.php
Normal file
103
jappixmini/jappix/php/music-search.php
Normal file
|
@ -0,0 +1,103 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
|
||||
Jappix - An open social platform
|
||||
This is the Jappix music search script
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
License: AGPL
|
||||
Author: Vanaryon
|
||||
Last revision: 15/01/12
|
||||
|
||||
*/
|
||||
|
||||
// PHP base
|
||||
define('JAPPIX_BASE', '..');
|
||||
|
||||
// Get the needed files
|
||||
require_once('./functions.php');
|
||||
require_once('./read-main.php');
|
||||
require_once('./read-hosts.php');
|
||||
|
||||
// Optimize the page rendering
|
||||
hideErrors();
|
||||
compressThis();
|
||||
|
||||
// Not allowed for a special node
|
||||
if(isStatic() || isUpload())
|
||||
exit;
|
||||
|
||||
// If valid data was sent
|
||||
if((isset($_GET['searchquery']) && !empty($_GET['searchquery'])) && (isset($_GET['location']) && !empty($_GET['location']))) {
|
||||
// Set a XML header
|
||||
header('Content-Type: text/xml; charset=utf-8');
|
||||
|
||||
// Get the values
|
||||
$searchquery = $_GET['searchquery'];
|
||||
$location = $_GET['location'];
|
||||
|
||||
// Jamendo search?
|
||||
if($location == 'jamendo')
|
||||
exit(read_url('http://api.jamendo.com/get2/name+id+duration+url/track/xml/?searchquery='.urlencode($searchquery).'&order=searchweight_desc'));
|
||||
|
||||
// Local music search
|
||||
$xml = '<data>';
|
||||
$searchquery = strtolower($searchquery);
|
||||
|
||||
// Escape the regex special characters
|
||||
$searchquery = escapeRegex($searchquery);
|
||||
|
||||
// Search in the directory
|
||||
$repertory = '../store/music/';
|
||||
$scan = scandir($repertory);
|
||||
|
||||
foreach($scan as $current) {
|
||||
// This file match our query!
|
||||
if(is_file($repertory.$current) && $current && preg_match('/(^|\s|\[)('.$searchquery.')(.+)?(\.(og(g|a)|mp3|wav))$/i', strtolower($current))) {
|
||||
// Get the basic informations
|
||||
$title = preg_replace('/^(.+)(\.)(og(g|a)|mp3|wav)$/i', '$1', $current);
|
||||
$url = $location.'store/music/'.$current;
|
||||
$ext = getFileExt($current);
|
||||
$id = md5($url);
|
||||
|
||||
// Get the MIME type
|
||||
if($ext == 'mp3')
|
||||
$type = 'audio/mpeg';
|
||||
else if($ext == 'wav')
|
||||
$type = 'audio/x-wav';
|
||||
else
|
||||
$type = 'audio/ogg';
|
||||
|
||||
// Get the advanced informations
|
||||
$locked_title = $title;
|
||||
$artist = '';
|
||||
$source = '';
|
||||
|
||||
$title_regex = '/^(([^-]+) - )?([^\[]+)( \[(.+))?$/i';
|
||||
$artist_regex = '/^(.+) - (.+)$/i';
|
||||
$source_regex = '/^(.+) \[(.+)\]$/i';
|
||||
|
||||
if(preg_match($title_regex, $locked_title))
|
||||
$title = preg_replace($title_regex, '$3', $locked_title);
|
||||
|
||||
if(preg_match($artist_regex, $locked_title))
|
||||
$artist = preg_replace($artist_regex, '$1', $locked_title);
|
||||
|
||||
if(preg_match($source_regex, $locked_title))
|
||||
$source = preg_replace($source_regex, '$2', $locked_title);
|
||||
|
||||
// Generate the XML
|
||||
$xml .= '<data><track><name>'.htmlspecialchars($title).'</name><artist>'.htmlspecialchars($artist).'</artist><source>'.htmlspecialchars($source).'</source><id>'.htmlspecialchars($id).'</id><url>'.htmlspecialchars($url).'</url><type>'.$type.'</type></track></data>';
|
||||
}
|
||||
}
|
||||
|
||||
// End
|
||||
$xml .= '</data>';
|
||||
|
||||
// Return the path to the file
|
||||
exit($xml);
|
||||
}
|
||||
|
||||
?>
|
Loading…
Add table
Add a link
Reference in a new issue