Automatically Generate XML Files
Implement xml-generator.php that will automatically generate XML files from the database based on an ID passed in a get query. This allows new calls to be added using new MP3s without having to create a new XML file by hand everytime. This is the first step to a full web implementation.
This commit is contained in:
parent
e2563a973f
commit
b7fb4c8ced
6 changed files with 31 additions and 13 deletions
10
add-call.php
10
add-call.php
|
@ -1,12 +1,12 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
if(count($argv) != 4) {
|
if(count($argv) != 4) {
|
||||||
die("Usage: php ./add-call 15555555555 '* * * * *' http://domain.com/file.xml\n");
|
die("Usage: php ./add-call 15555555555 '* * * * *' http://domain.com/file.mp3\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
$phone = $argv[1];
|
$phone = $argv[1];
|
||||||
$schedule = $argv[2];
|
$schedule = $argv[2];
|
||||||
$xml = $argv[3];
|
$mp3 = $argv[3];
|
||||||
|
|
||||||
if(preg_match('/^\d{11}$/', $phone) != 1) {
|
if(preg_match('/^\d{11}$/', $phone) != 1) {
|
||||||
die("Phone should be all numbers with no symbols. ex: 15555555555\n");
|
die("Phone should be all numbers with no symbols. ex: 15555555555\n");
|
||||||
|
@ -16,8 +16,8 @@ if(count(split(' ', $schedule)) != 5) {
|
||||||
die("Schedule requires a properly formed cron schedule.\n");
|
die("Schedule requires a properly formed cron schedule.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!filter_var($xml, FILTER_VALIDATE_URL)) {
|
if(!filter_var($mp3, FILTER_VALIDATE_URL)) {
|
||||||
die("XML must be a vaild url.\n");
|
die("MP3 must be a vaild url.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -27,7 +27,7 @@ try {
|
||||||
die("PDOException (connect): " . $e->getMessage() . "\n");
|
die("PDOException (connect): " . $e->getMessage() . "\n");
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$db->exec("INSERT INTO calls (phone, schedule, xml) VALUES($phone, '$schedule', '$xml')");
|
$db->exec("INSERT INTO calls (phone, schedule, mp3) VALUES($phone, '$schedule', '$mp3')");
|
||||||
} catch(PDOException $e) {
|
} catch(PDOException $e) {
|
||||||
die("PDOException (query): " . $e->getMessage() . "\n");
|
die("PDOException (query): " . $e->getMessage() . "\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ $client = new Services_Twilio(
|
||||||
$settings['twilio']['token']
|
$settings['twilio']['token']
|
||||||
);
|
);
|
||||||
|
|
||||||
$result = $db->query('SELECT * FROM calls');
|
$result = $db->query('SELECT id, schedule, phone FROM calls');
|
||||||
|
|
||||||
foreach($result as $row) {
|
foreach($result as $row) {
|
||||||
$crontab->add_job(
|
$crontab->add_job(
|
||||||
|
@ -25,7 +25,7 @@ foreach($result as $row) {
|
||||||
$call = $client->account->calls->create(
|
$call = $client->account->calls->create(
|
||||||
$settings['application']['from'],
|
$settings['application']['from'],
|
||||||
$row['phone'],
|
$row['phone'],
|
||||||
$row['xml']
|
$settings['application']['generator'] . '?id=' . $row['id']
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
|
@ -3,8 +3,9 @@
|
||||||
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
|
||||||
$db->exec('create table calls (
|
$db->exec('create table calls (
|
||||||
id integer PRIMARY KEY,
|
id integer PRIMARY KEY,
|
||||||
phone integer,
|
phone integer,
|
||||||
schedule varchar(50),
|
schedule varchar(50),
|
||||||
xml varchar(255)
|
mp3 varchar(255)
|
||||||
);');
|
);'
|
||||||
|
);
|
||||||
|
|
0
files/.gitinclude
Normal file
0
files/.gitinclude
Normal file
|
@ -1,3 +0,0 @@
|
||||||
<Response>
|
|
||||||
<Play>http://www.atomaka.com/song-caller/golden-girls.mp3</Play>
|
|
||||||
</Response>
|
|
20
xml-generator.php
Normal file
20
xml-generator.php
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$id = isset($_GET['id']) ? $_GET['id'] : 'bad';
|
||||||
|
|
||||||
|
if(!filter_var($id, FILTER_VALIDATE_INT)) {
|
||||||
|
die("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
$db = new PDO('sqlite:db/songcaller.db');
|
||||||
|
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
|
||||||
|
$result = $db->query("SELECT mp3 FROM calls WHERE id=$id LIMIT 1");
|
||||||
|
|
||||||
|
$row = $result->fetch();
|
||||||
|
|
||||||
|
header('Content-Type: text/xml');
|
||||||
|
?>
|
||||||
|
<Response>
|
||||||
|
<Play><?php echo $row['mp3']; ?></Play>
|
||||||
|
</Response>
|
Loading…
Reference in a new issue