$subPrefix = $_REQUEST['subPrefix'];
$server = $_REQUEST['server'];
+// $$$mang this code has been refactored into BookReaderMeta.inc.php for use e.g. by
+// BookReaderPreview.php and BookReaderImages.php. The code below should be
+// taken out and replaced by calls into BookReaderMeta
+
// Check if we're on a dev vhost and point to JSIA in the user's public_html on the datanode
+
// $$$ TODO consolidate this logic
if (strpos($_SERVER["REQUEST_URI"], "/~mang") === 0) { // Serving out of home dir
$server .= ':80/~mang';
+} else if (strpos($_SERVER["REQUEST_URI"], "/~rkumar") === 0) { // Serving out of home dir
+ $server .= ':80/~rkumar';
} else if (strpos($_SERVER["REQUEST_URI"], "/~testflip") === 0) { // Serving out of home dir
$server .= ':80/~testflip';
}
BRFatal("No server specified!");
}
-if (!preg_match("|^/[0-3]/items/{$id}$|", $itemPath)) {
+if (!preg_match("|^/\d+/items/{$id}$|", $itemPath)) {
BRFatal("Bad id!");
}
}
}
+// Single images in the Internet Archive scandata.xml metadata are (somewhat incorrectly)
+// given a "leaf" number. Some of these images from the scanning process should not
+// be displayed in the BookReader (for example colour calibration cards). Since some
+// of the scanned images will not be displayed in the BookReader (those marked with
+// addToAccessFormats false in the scandata.xml) leaf numbers and BookReader page
+// indexes are generally not the same. This function returns the BookReader page
+// index given a scanned leaf number.
+//
+// This function is used, for example, to map between search results (that use the
+// leaf numbers) and the displayed pages in the BookReader.
br.leafNumToIndex = function(leafNum) {
for (var index = 0; index < this.leafMap.length; index++) {
if (this.leafMap[index] == leafNum) {
return "<iframe src='" + this.getEmbedURL() + "' width='480px' height='430px'></iframe>";
}
-br.pageW = [
+// getOpenLibraryJSON
+br.getOpenLibraryJSON = function(callback) {
+ // Try looking up by ocaid first, then by source_record
+
+ var jsonURL = 'http://openlibrary.org/query.json?type=/type/edition&*=&ocaid=' + br.bookId;
+ $.ajax({
+ url: jsonURL,
+ success: function(data) {
+ if (data && data.length > 0) {
+ callback(data[0]);
+ } else {
+ // try sourceid
+ console.log('XXXmang couldnt find via ocaid');
+ jsonURL = 'http://openlibrary.org/query.json?type=/type/edition&*=&source_records=ia:' + br.bookId;
+ $.ajax({
+ url: jsonURL,
+ success: function(data) {
+ if (data && data.length > 0) {
+ callback(data[0]);
+ }
+ },
+ dataType: 'jsonp'
+ });
+ }
+ },
+ dataType: 'jsonp'
+ });
+}
+
+br.pageW = [
<?
$i=0;
foreach ($scanData->pageData->page as $page) {
?>
];
-br.pageH = [
+br.pageH = [
<?
$totalHeight = 0;
$i=0;
$imageStackRegex = "/Single Page (Processed) (${imageGroup}) (${archiveGroup})/";
foreach ($filesData->file as $file) {
- if (strpos($file['name'], $subPrefix) === 0) { // subprefix matches beginning
+ if (strpos($file['name'], $subPrefix) === 0) { // subprefix matches beginning
if (preg_match($imageStackRegex, $file->format, $matches)) {
- return array('imageFormat' => $imageFormats[$matches[2]],
- 'archiveFormat' => $archiveFormats[$matches[3]],
- 'imageStackFile' => $file['name']);
+
+ // Make sure we have a regular image stack
+ $imageFormat = $imageFormats[$matches[2]];
+ if (strpos($file['name'], $subPrefix . '_' . $imageFormat) === 0) {
+ return array('imageFormat' => $imageFormat,
+ 'archiveFormat' => $archiveFormats[$matches[3]],
+ 'imageStackFile' => $file['name']);
+ }
}
}
}