|
|
|
|
@ -391,12 +391,26 @@ function downloadMP3_google($filepath, $dir) { |
|
|
|
|
} |
|
|
|
|
$clean_title=Security::remove_XSS($clean_title); |
|
|
|
|
$clean_title=Database::escape_string($clean_title); |
|
|
|
|
$clean_title=str_replace(' ','_', $clean_title);//compound file names |
|
|
|
|
|
|
|
|
|
$clean_text=Security::remove_XSS($clean_text); |
|
|
|
|
$clean_lang=Security::remove_XSS($_POST['lang']); |
|
|
|
|
|
|
|
|
|
$extension='mp3'; |
|
|
|
|
$audio_filename=$clean_title.'.'.$extension; |
|
|
|
|
$audio_title = str_replace('_',' ',$clean_title); |
|
|
|
|
|
|
|
|
|
//prevent duplicates |
|
|
|
|
if (file_exists($filepath.'/'.$clean_title.'.'.$extension)){ |
|
|
|
|
$i = 1; |
|
|
|
|
while (file_exists($filepath.'/'.$clean_title.'_'.$i.'.'.$extension)) $i++; |
|
|
|
|
$audio_filename = $clean_title . '_' . $i . '.'.$extension; |
|
|
|
|
$audio_title = $clean_title . '_' . $i . '.'.$extension; |
|
|
|
|
$audio_title = str_replace('_',' ',$audio_title); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$documentPath = $filepath.'/'.$audio_filename; |
|
|
|
|
|
|
|
|
|
$AudioFilename=$clean_title.'.mp3'; |
|
|
|
|
$documentPath = $filepath.$AudioFilename; |
|
|
|
|
|
|
|
|
|
//prev for a fine unicode, borrowed from main api TODO:clean |
|
|
|
|
// Safe replacements for some non-letter characters (whitout blank spaces) |
|
|
|
|
@ -413,7 +427,6 @@ function downloadMP3_google($filepath, $dir) { |
|
|
|
|
$clean_text = str_replace($search, $replace, $filename); |
|
|
|
|
|
|
|
|
|
//adding the file |
|
|
|
|
if (!file_exists($documentPath)) { |
|
|
|
|
//add new file to disk |
|
|
|
|
file_put_contents($documentPath, file_get_contents("http://translate.google.com/translate_tts?tl=".$clean_lang."&q=".urlencode($clean_text)."")); |
|
|
|
|
//add document to database |
|
|
|
|
@ -421,10 +434,9 @@ function downloadMP3_google($filepath, $dir) { |
|
|
|
|
$groupId=$_SESSION['_gid']; |
|
|
|
|
$file_size = filesize($documentPath); |
|
|
|
|
$relativeUrlPath=$dir; |
|
|
|
|
$doc_id = add_document($_course, $relativeUrlPath.$AudioFilename, 'file', filesize($documentPath), $AudioFilename); |
|
|
|
|
$doc_id = add_document($_course, $relativeUrlPath.$audio_filename, 'file', filesize($documentPath), $audio_title); |
|
|
|
|
api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'DocumentAdded', $_user['user_id'], $groupId, null, null, null, $current_session_id); |
|
|
|
|
Display::display_confirmation_message(get_lang('DocumentCreated')); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -442,20 +454,37 @@ function downloadMP3_pediaphone($filepath, $dir){ |
|
|
|
|
} |
|
|
|
|
global $_course, $_user; |
|
|
|
|
$clean_title=trim($_POST['title']); |
|
|
|
|
$clean_title= Database::escape_string($clean_title); |
|
|
|
|
$clean_text=trim($_POST['text']); |
|
|
|
|
if(empty($clean_title) || empty($clean_text)){ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
$clean_title=Security::remove_XSS($clean_title); |
|
|
|
|
$clean_title=Database::escape_string($clean_title); |
|
|
|
|
$clean_title=str_replace(' ','_', $clean_title);//compound file names |
|
|
|
|
$clean_text=Security::remove_XSS($clean_text); |
|
|
|
|
$clean_lang=Security::remove_XSS($_POST['lang']); |
|
|
|
|
$clean_voices=Security::remove_XSS($_POST['voices']); |
|
|
|
|
$clean_speed=Security::remove_XSS($_POST['speed']); |
|
|
|
|
|
|
|
|
|
$AudioFilename=$clean_title.'.mp3'; |
|
|
|
|
$documentPath = $filepath.$AudioFilename; |
|
|
|
|
$extension='mp3'; |
|
|
|
|
$audio_filename=$clean_title.'.'.$extension; |
|
|
|
|
$audio_title = str_replace('_',' ',$clean_title); |
|
|
|
|
|
|
|
|
|
//prevent duplicates |
|
|
|
|
if (file_exists($filepath.'/'.$clean_title.'.'.$extension)){ |
|
|
|
|
$i = 1; |
|
|
|
|
while (file_exists($filepath.'/'.$clean_title.'_'.$i.'.'.$extension)) $i++; |
|
|
|
|
$audio_filename = $clean_title . '_' . $i . '.'.$extension; |
|
|
|
|
$audio_title = $clean_title . '_' . $i . '.'.$extension; |
|
|
|
|
$audio_title = str_replace('_',' ',$audio_title); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$documentPath = $filepath.'/'.$audio_filename; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//prev for a fine unicode, borrowed from main api TODO:clean |
|
|
|
|
// Safe replacements for some non-letter characters (whitout blank spaces) |
|
|
|
|
$search = array("\0", "\t", "\n", "\r", "\x0B", '/', "\\", '"', "'", '?', '*', '>', '<', '|', ':', '$', '(', ')', '^', '[', ']', '#', '+', '&', '%'); |
|
|
|
|
@ -471,30 +500,44 @@ function downloadMP3_pediaphone($filepath, $dir){ |
|
|
|
|
$clean_text = str_replace($search, $replace, $filename); |
|
|
|
|
|
|
|
|
|
//adding the file |
|
|
|
|
if (!file_exists($documentPath)){ |
|
|
|
|
//add new file to disk |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if($clean_lang=='de'){ |
|
|
|
|
$url_pediaphon='http://www.pediaphon.org/~bischoff/radiopedia/sprich_multivoice.cgi'; |
|
|
|
|
$find_t2v = '/http\:\/\/www\.pediaphon\.org\/\~bischoff\/radiopedia\/mp3\/(.*)\.mp3\"/'; |
|
|
|
|
} |
|
|
|
|
elseif($clean_lang=='en'){ |
|
|
|
|
$url_pediaphon='http://www.pediaphon.org/~bischoff/radiopedia/sprich_multivoice_en.cgi'; |
|
|
|
|
} |
|
|
|
|
elseif($clean_lang=='es'){ |
|
|
|
|
$url_pediaphon='http://www.pediaphon.org/~bischoff/radiopedia/sprich_multivoice_es.cgi'; |
|
|
|
|
else{ |
|
|
|
|
$url_pediaphon='http://www.pediaphon.org/~bischoff/radiopedia/sprich_multivoice_'.$clean_lang.'.cgi';//en, es, fr |
|
|
|
|
$find_t2v = '/http\:\/\/www\.pediaphon\.org\/\~bischoff\/radiopedia\/mp3\/'.$clean_lang.'\/(.*)\.mp3\"/'; |
|
|
|
|
} |
|
|
|
|
elseif($clean_lang=='fr'){ |
|
|
|
|
$url_pediaphon='http://www.pediaphon.org/~bischoff/radiopedia/sprich_multivoice_fr.cgi'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
file_put_contents($documentPath, file_get_contents($url_pediaphon."?stimme=".$clean_voices."&inputtext=".urlencode($clean_text)."&speed=".$clean_speed."&go=Sprich"));///speed |
|
|
|
|
|
|
|
|
|
$data="stimme=".$clean_voices."&inputtext=".$clean_text."&speed=".$clean_speed."&go=go"; |
|
|
|
|
$opts = array('http' => |
|
|
|
|
array( |
|
|
|
|
'method' => 'POST', |
|
|
|
|
'header' =>"Content-Type: application/x-www-form-urlencoded\r\n", |
|
|
|
|
"Content-Length: " . strlen($data) . "\r\n", |
|
|
|
|
'content' => $data |
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
$context = stream_context_create($opts); |
|
|
|
|
$previous_returntext2voice = file_get_contents($url_pediaphon,false,$context); |
|
|
|
|
|
|
|
|
|
//clean file contents |
|
|
|
|
|
|
|
|
|
$search_source=preg_match($find_t2v, $previous_returntext2voice, $hits); |
|
|
|
|
$souce_end=substr($hits[0], 0,-1); |
|
|
|
|
$returntext2voice = file_get_contents($souce_end); |
|
|
|
|
|
|
|
|
|
//save file |
|
|
|
|
file_put_contents($documentPath, $returntext2voice); |
|
|
|
|
|
|
|
|
|
//add document to database |
|
|
|
|
$current_session_id = api_get_session_id(); |
|
|
|
|
$groupId=$_SESSION['_gid']; |
|
|
|
|
$file_size = filesize($documentPath); |
|
|
|
|
$relativeUrlPath=$dir; |
|
|
|
|
$doc_id = add_document($_course, $relativeUrlPath.$AudioFilename, 'file', filesize($documentPath), $AudioFilename); |
|
|
|
|
$doc_id = add_document($_course, $relativeUrlPath.$audio_filename, 'file', filesize($documentPath), $audio_title); |
|
|
|
|
api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'DocumentAdded', $_user['user_id'], $groupId, null, null, null, $current_session_id); |
|
|
|
|
Display::display_confirmation_message(get_lang('DocumentCreated')); |
|
|
|
|
} |
|
|
|
|
} |