<?php
/*/
*
* Convertor for screenplay scripts to Atlantis Theatre Language
* Created by Wolcano
* (c) Platon SDG 2002
*
/*/
$input_file = "php://stdin";
$output_file = "php://stdout";
$in = file($input_file);
$out = fopen($output_file, "w");
$read_speed = 8; //chars_per_second
$ignore_words = array( "CUT TO:", "CREDIT SEQUENCE:",
"FADE TO BLACK", "FADE IN:", "DISSOLVE TO:");
$actor_name = "^ ([^ ].*)";
$speech_desc = "^ \(([^ ][^\)]*)\)?";
$speech_desc_cont = "^ ([^ ][^\)]*)";
$speech = "^ ([^ ].*)";
$speech_cont = $speech;
$sit_desc = "^ ([^ ].*)";
$camera_move = "^ ([^ ].*)";
function proceed_line($fp, $s) {
if (strlen($s) == 0)
return '';
global $read_speed;
$sz = strlen($s);
fwrite($fp, $s . "\n");
fwrite($fp, '<' . (int) ($sz / $read_speed) . ">\n");
return '';
}
$in_speech_desc = false;
$in_speech = false;
$in_sit_desc = false;
$in_oth = false;
for($i = 0; $i < sizeof($in); $i++) {
// NAME OF ACTOR
if (ereg($actor_name, $in[$i], $regs)) {
$last_actor = trim($regs[1]);
proceed_line($out, $line);
//$line = "<$last_actor>";
continue;
}
// SPEECH DESCRIPTION
if ($in_speech_desc) {
if (ereg($speech_desc_cont, $in[$i], $regs)) {
$line .= ' ' . trim($regs[1]);
continue;
}
else {
/*
proceed_line($out, $line);
$line = '';
*/
$in_speech_desc = false;
}
}
else {
if (ereg($speech_desc, $in[$i], $regs)) {
$in_speech_desc = true;
/*
proceed_line($out, $line);
//*/
//$line = '--sposob--' . trim($regs[1]);
$line = '(' . trim($regs[1]) . ')';
continue;
}
}
// DIRECT SPEECH OF AN ACTOR
if ($in_speech) {
if (ereg($speech_cont, $in[$i], $regs)) {
$line .= ' ' . trim($regs[1]);
continue;
}
else {
proceed_line($out, "<$last_actor>" . $line);
$line = '';
$in_speech = false;
}
}
else {
if (ereg($speech, $in[$i], $regs)) {
$in_speech = true;
//$line .= '--speech--'. trim($regs[1]);
$line .= ': ' . trim($regs[1]);
continue;
}
}
// SITUATION DESCRIPTION
if ($in_sit_desc) {
if (ereg($sit_desc, $in[$i], $regs)) {
$line .= ' ' . trim($regs[1]);
continue;
}
else {
proceed_line($out, $line);
$line = '';
$in_sit_desc = false;
}
}
else {
if (ereg($sit_desc, $in[$i], $regs)) {
$in_sit_desc = true;
//$line .= '--desc--'. trim($regs[1]);
$line .= ''. trim($regs[1]);
continue;
}
}
}
//proceed_line($out, $line);
fflush($out);
fclose($out);
?>
Platon Group <platon@platon.org> http://platon.org/
|