File: //home/httpd/mech_ftp/baretube.com/api/api.json.php
<?php
$validCommands = array("media.data","media.search","media.newest");
$validTypes = array("videos","galleries");
$amount = (int)$_GET['amount'];
if($amount > 1000) { $amount = 1000; }
if($amount == 0) { $amount = 100; }
$offset = (int)$_GET['offset'];
if(!in_array($_GET['command'],$validCommands)) {
$output = array("success"=>false, "error" => "Invalid Command");
echo json_encode($output);
exit();
}
switch($_GET['command']) {
case "media.data":
if(!is_numeric($_GET['id'])) {
$output = array("success"=>false, "error" => "Video ID must be numeric!");
echo json_encode($output);
exit();
}
$_GET['id'] = (int)$_GET['id'];
$result = dbQuery("SELECT content.*, (SELECT content_views.views FROM content_views WHERE content_views.content = content.record_num) AS views, (SELECT images.filename FROM images WHERE images.record_num = content.thumbnail) AS thumbfile FROM content WHERE record_num = '$_GET[id]' AND enabled = 1",true);
$counter = 0;
foreach($result as $row) {
if($row[photos] == 1) {
//photo gallery
$dirname = str_replace('.flv','',$row[orig_filename]);
$subdir = $row[filename][0].'/'.$row[filename][1].'/'.$row[filename][2].'/'.$row[filename][3].'/'.$row[filename][4].'/';
$dirname = $subdir.$dirname;
if(!$row['thumbfile']) {
$sresult = dbQuery("SELECT filename FROM images WHERE record_num = '$row[thumbnail]'",true);
$srow = $sresult[0];
$row[thumbfile] = $srow['filename'];
}
$outputArr[$counter]['type'] = 'gallery';
$outputArr[$counter]['title'] = $row['title'];
$outputArr[$counter]['description'] = $row['description'];
$outputArr[$counter]['keywords'] = $row['keywords'];
$outputArr[$counter]['channels'] = strip_tags(buildChannels($row['record_num']));
$outputArr[$counter]['models'] = strip_tags(buildPornstars($row['record_num']));
$outputArr[$counter]['views'] = $row['views'];
$outputArr[$counter]['url'] = generateUrl('galleries',$row['title'],$row['record_num']);
$outputArr[$counter]['main_thumb'] = "$gallery_url/$row[filename]/thumbs/$row[thumbfile]";
$outputArr[$counter]['id'] = $row[record_num];
} else {
//movie
$dirname = str_replace('.flv', '', $row[orig_filename]);
$subdir = $row[filename][0] . '/' . $row[filename][1] . '/' . $row[filename][2] . '/' . $row[filename][3] . '/' . $row[filename][4] . '/';
$dirname = $subdir . $dirname;
$outputArr[$counter]['type'] = 'video';
$outputArr[$counter]['title'] = $row['title'];
$outputArr[$counter]['description'] = $row['description'];
$outputArr[$counter]['keywords'] = $row['keywords'];
$outputArr[$counter]['channels'] = strip_tags(buildChannels($row['record_num']));
$outputArr[$counter]['models'] = strip_tags(buildPornstars($row['record_num']));
$outputArr[$counter]['length'] = $row['length'];
$outputArr[$counter]['views'] = $row['views'];
$outputArr[$counter]['embed'] = "<iframe src=\"$basehttp/embed/$row[record_num]\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen></iframe>";
$outputArr[$counter]['url'] = generateUrl('video', $row['title'], $row['record_num']);
$outputArr[$counter]['id'] = $row[record_num];
if($row['embed']) {
$outputArr[$counter]['main_thumb'] = "$thumb_url/embedded/$row[record_num].jpg";
} else {
$outputArr[$counter]['main_thumb'] = "$thumb_url/$dirname/$row[orig_filename]-$row[main_thumb].jpg";
}
}
$counter++;
}
$output = array("success" => true, "data" => $outputArr);
echo json_encode($output);
exit();
break;
case "media.search":
$q = mysqli_real_escape_string($dbconn, $_GET['q']);
if(!in_array($_GET['type'],$validTypes)) {
$output = array("success"=>false, "error" => "Invalid media type, can only be 'videos' or 'galleries'");
echo json_encode($output);
exit();
}
if($_GET['type'] == 'galleries') {
$result_count = dbQuery("SELECT content.record_num, (MATCH (title,keywords) AGAINST ('$q' IN BOOLEAN MODE)) as score FROM content WHERE enabled = 1 AND photos = 1 AND MATCH (title,keywords) AGAINST ('$q' IN BOOLEAN MODE) HAVING score > 0",true);
$result = dbQuery("SELECT content.*, (MATCH (title,keywords) AGAINST ('$q' IN BOOLEAN MODE)) as score, (SELECT content_views.views FROM content_views WHERE content_views.content = content.record_num) as views, (SELECT filename FROM images WHERE images.record_num = content.thumbnail) AS thumbfile FROM content WHERE photos = 1 AND enabled = 1 AND MATCH (title,keywords) AGAINST ('$q' IN BOOLEAN MODE) HAVING score > 0 ORDER BY score DESC LIMIT $offset,$amount",true);
}
if($_GET['type'] == 'videos') {
$result_count = dbQuery("SELECT content.record_num, (MATCH (title,keywords) AGAINST ('$q' IN BOOLEAN MODE)) as score FROM content WHERE enabled = 1 AND photos = 0 AND MATCH (title,keywords) AGAINST ('$q' IN BOOLEAN MODE) HAVING score > 0",true);
$result = dbQuery("SELECT content.*, (MATCH (title,keywords) AGAINST ('$q' IN BOOLEAN MODE)) as score, (SELECT content_views.views FROM content_views WHERE content_views.content = content.record_num) as views FROM content WHERE enabled = 1 AND photos = 0 AND MATCH (title,keywords) AGAINST ('$q' IN BOOLEAN MODE) HAVING score > 0 ORDER BY score DESC LIMIT $offset,$amount",true);
}
$counter = 0;
if(is_array($result)) {
foreach($result as $row) {
$outputArr[$counter]['id'] = $row[record_num];
$outputArr[$counter]['title'] = $row['title'];
$outputArr[$counter]['keywords'] = $row['keywords'];
$outputArr[$counter]['channels'] = strip_tags(buildChannels($row['record_num']));
$outputArr[$counter]['models'] = strip_tags(buildPornstars($row['record_num']));
$outputArr[$counter]['length'] = $row['length'];
if($row[photos] == 1) {
$outputArr[$counter]['url'] = generateUrl('galleries',$row['title'],$row['record_num']);
$dirname = str_replace('.flv','',$row[orig_filename]);
$subdir = $row[filename][0].'/'.$row[filename][1].'/'.$row[filename][2].'/'.$row[filename][3].'/'.$row[filename][4].'/';
$dirname = $subdir.$dirname;
if(!$row['thumbfile']) {
$srow = dbRow("SELECT filename FROM images WHERE record_num = '$row[thumbnail]'",true);
$row[thumbfile] = $srow['filename'];
}
$outputArr[$counter]['main_thumb'] = "$gallery_url/$row[filename]/thumbs/$row[thumbfile]";
} else {
$outputArr[$counter]['embed'] = "<iframe src=\"$basehttp/embed/$row[record_num]\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen></iframe>";
$outputArr[$counter]['url'] = generateUrl('video', $row['title'], $row['record_num']);
$dirname = str_replace('.flv', '', $row[orig_filename]);
$subdir = $row[filename][0] . '/' . $row[filename][1] . '/' . $row[filename][2] . '/' . $row[filename][3] . '/' . $row[filename][4] . '/';
$dirname = $subdir . $dirname;
if($row['embed']) {
$outputArr[$counter]['main_thumb'] = "$thumb_url/embedded/$row[record_num].jpg";
} else {
$outputArr[$counter]['main_thumb'] = "$thumb_url/$dirname/$row[orig_filename]-$row[main_thumb].jpg";
}
}
$counter++;
}
}
$output = array("success" => true, "total_results" => mysql_num_rows($result_count), 'data' => $outputArr);
echo json_encode($output);
exit();
break;
case "media.newest":
if(!in_array($_GET['type'],$validTypes)) {
$output = array("success"=>false, "error" => "Invalid media type, can only be 'videos' or 'galleries'");
echo json_encode($output);
exit();
}
if($_GET['type'] == 'galleries') {
$result_count = dbQuery("SELECT content.record_num FROM content WHERE enabled = 1 AND photos = 1",true);
$result = dbQuery("SELECT content.*, (SELECT filename FROM images WHERE images.record_num = content.thumbnail) AS thumbfile FROM content WHERE photos = 1 AND enabled = 1 ORDER BY encoded_date DESC LIMIT $offset,$amount",true);
}
if($_GET['type'] == 'videos') {
$result_count = dbQuery("SELECT content.record_num FROM content WHERE enabled = 1 AND photos = 0",true);
$result = dbQuery("SELECT content.* FROM content WHERE enabled = 1 AND photos = 0 ORDER BY encoded_date DESC LIMIT $offset,$amount",true);
}
$counter = 0;
if(is_array($result)) {
foreach($result as $row) {
$outputArr[$counter]['id'] = $row[record_num];
$outputArr[$counter]['title'] = $row['title'];
$outputArr[$counter]['length'] = $row['length'];
$outputArr[$counter]['keywords'] = $row['keywords'];
$outputArr[$counter]['channels'] = strip_tags(buildChannels($row['record_num']));
$outputArr[$counter]['models'] = strip_tags(buildPornstars($row['record_num']));
if($row[photos] == 1) {
$outputArr[$counter]['url'] = generateUrl('galleries',$row['title'],$row['record_num']);
$dirname = str_replace('.flv','',$row[orig_filename]);
$subdir = $row[filename][0].'/'.$row[filename][1].'/'.$row[filename][2].'/'.$row[filename][3].'/'.$row[filename][4].'/';
$dirname = $subdir.$dirname;
if(!$row['thumbfile']) {
$srow = dbRow("SELECT filename FROM images WHERE record_num = '$row[thumbnail]'",true);
$row[thumbfile] = $srow['filename'];
}
$outputArr[$counter]['main_thumb'] = "$gallery_url/$row[filename]/thumbs/$row[thumbfile]";
} else {
$outputArr[$counter]['embed'] = "<iframe src=\"$basehttp/embed/$row[record_num]\" width=\"640\" height=\"360\" frameborder=\"0\"></iframe>";
$outputArr[$counter]['url'] = generateUrl('video', $row['title'], $row['record_num']);
$dirname = str_replace('.flv', '', $row[orig_filename]);
$subdir = $row[filename][0] . '/' . $row[filename][1] . '/' . $row[filename][2] . '/' . $row[filename][3] . '/' . $row[filename][4] . '/';
$dirname = $subdir . $dirname;
if($row['embed']) {
$outputArr[$counter]['main_thumb'] = "$thumb_url/embedded/$row[record_num].jpg";
} else {
$outputArr[$counter]['main_thumb'] = "$thumb_url/$dirname/$row[orig_filename]-$row[main_thumb].jpg";
}
}
$counter++;
}
}
$output = array("success" => true, "total_results" => count($result_count), 'data' => $outputArr);
echo json_encode($output);
exit();
break;
}
exit();
?>