Added isbn image fetcher
This commit is contained in:
parent
21a7910e24
commit
06d62d4304
39
isbnImage.php
Normal file
39
isbnImage.php
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<?php
|
||||||
|
function cache_get($isbn){
|
||||||
|
if(!file_exists("2/isbnCacheImg.json")) return false;
|
||||||
|
$data = json_decode(file_get_contents("2/isbnCacheImg.json"),true);
|
||||||
|
if(!$data) return false;
|
||||||
|
$res = $data[$isbn];
|
||||||
|
if(!$res) return false;
|
||||||
|
if($res["time"] + $GLOBALS["imageISBNCache"] < time()) return false;
|
||||||
|
return $res["url"];
|
||||||
|
}
|
||||||
|
function cache_set($isbn,$url){
|
||||||
|
if(file_exists("2/isbnCacheImg.json")){
|
||||||
|
$data = json_decode(file_get_contents("2/isbnCacheImg.json"),true)?:[];
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$data = [];
|
||||||
|
}
|
||||||
|
$data[$isbn] = ["time"=>time(),"url"=>$url];
|
||||||
|
file_put_contents("2/isbnCacheImg.json", json_encode($data));
|
||||||
|
}
|
||||||
|
function isbnImage($isbn){
|
||||||
|
$url = cache_get($isbn);
|
||||||
|
if($url) return $url;
|
||||||
|
$curlSES=curl_init();
|
||||||
|
curl_setopt($curlSES,CURLOPT_URL,"https://www.googleapis.com/books/v1/volumes?q=isbn:".urlencode($isbn));
|
||||||
|
curl_setopt($curlSES,CURLOPT_RETURNTRANSFER,true);
|
||||||
|
curl_setopt($curlSES,CURLOPT_HEADER, false);
|
||||||
|
$result=curl_exec($curlSES);
|
||||||
|
curl_close($curlSES);
|
||||||
|
$data=json_decode($result,true);
|
||||||
|
if(!$data) return "books.png";
|
||||||
|
$images=$data["items"][0]["volumeInfo"]["imageLinks"];
|
||||||
|
$lak = array_keys($images);
|
||||||
|
$le = $lak[count($lak)-1];
|
||||||
|
$url = $images[$le]?: "books.png";
|
||||||
|
cache_set($isbn,$url);
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
?>
|
Reference in New Issue
Block a user