-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopenlibraryapi.php
More file actions
executable file
·135 lines (117 loc) · 2.67 KB
/
openlibraryapi.php
File metadata and controls
executable file
·135 lines (117 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php
/**
* Use the Open Library API to return details stored by the service for use.
*
* @Author Adam Matthews
* @Date 16/2/2013 (13/3/13)
*
* Contact Email: am559@kent.ac.uk
*
* Usage: $book = new OpenLibrary();
* $book->getTitle()
*
*/
class OpenLibrary{
protected $ol;
protected $isbn;
function __construct($book_isbn){
}
/**
* Set the ISBN to initiate the call to OL
**/
function setISBN($book_isbn){
$result = file_get_contents('http://openlibrary.org/api/books?bibkeys=ISBN:'.$book_isbn.'&format=json&jscmd=data');
$this->ol = json_decode($result, TRUE);
$this->isbn = $book_isbn;
}
/*
* Functions for returning publisher details
*/
/**
* Return publisher name
* @Author Adam Matthews
* @Date 16/2/13
*/
public function getPublisherName(){
//@TODO This doesnt work yet - fix it.
Return $this->ol["ISBN:".$this->isbn]["publishers"][0]["name"];
}
/**
* Return publish date.
* @Author Adam Matthews
* @Date 4/2/13
*/
public function getPublishDate(){
return $this->ol["ISBN:".$this->isbn]["publish_date"];
}
/*
* Functions for returning identifiers
*/
/**
* Return OpenLibrary ID
* @Author Adam Matthews
* @Date 16/2/13
*/
public function getOpenLibraryID(){
Return $this->ol["ISBN:".$this->isbn]["identifiers"]["openlibrary"][0];
}
/**
* Return ISBN 13
* @Author Adam Matthews
* @Date 16/2/13
*/
public function getISBN_13(){
Return $this->ol["ISBN:".$this->isbn]["identifiers"]["isbn_13"][0];
}
/**
* Return ISBN 10
* @Author Adam Matthews
* @Date 16/2/13
*/
public function getISBN_10(){
Return $this->ol["ISBN:".$this->isbn]["identifiers"]["isbn_10"][0];
}
/*
* Functions for returning title and author and cover details
*/
/**
* Return Book title
* @Author Adam Matthews
* @Date 4/2/13
*/
public function getTitle(){
return $this->ol["ISBN:".$this->isbn]["title"];
}
/**
* Return Book sub title
* @Author Adam Matthews
* @Date 4/2/13
*/
public function getSubTitle(){
return $this->ol["ISBN:".$this->isbn]["subtitle"];
}
/**
* Return Book Large Cover URL.
* @Author Adam Matthews
* @Date 4/2/13
*/
public function getCover($size){
if($size == "small")
return $this->ol["ISBN:".$this->isbn]["cover"]["small"];
if($size == "medium")
return $this->ol["ISBN:".$this->isbn]["cover"]["medium"];
if($size == "large")
return $this->ol["ISBN:".$this->isbn]["cover"]["large"];
//if no matching size specified return an error
return "Please use small, medium or large for getCover()";
}
/**
* Return Author name
* @Author Adam Matthews
* @Date 16/2/13
*/
public function getAuthorName(){
return $this->ol["ISBN:".$this->isbn]["authors"][o]["name"];
}
}
?>