Fixed checking if book info is already in the database
This commit is contained in:
4117
packt.html
4117
packt.html
File diff suppressed because one or more lines are too long
23
packt.php
23
packt.php
@@ -34,8 +34,6 @@ function c($url, $post = [])
|
||||
$server_output = curl_exec($ch);
|
||||
strlen($server_output);
|
||||
|
||||
// $info = curl_getinfo($ch);
|
||||
|
||||
|
||||
curl_close($ch);
|
||||
|
||||
@@ -50,6 +48,11 @@ function resolveBookUrl($bookUrl)
|
||||
return 'https://www.packtpub.com/' . str_replace('https://www.packtpub.com/', '', $bookUrl);
|
||||
}
|
||||
|
||||
function truncateBookUrl($bookUrl)
|
||||
{
|
||||
return str_replace('https://www.packtpub.com', '', $bookUrl);
|
||||
}
|
||||
|
||||
function getBookInfo($bookUrl)
|
||||
{
|
||||
|
||||
@@ -99,32 +102,30 @@ $booksData = [];
|
||||
$books = $document->find('.product-line.unseen');
|
||||
|
||||
|
||||
|
||||
$db = new SQLite3('data.db');
|
||||
foreach ($books as $book) {
|
||||
|
||||
|
||||
$bookData = [];
|
||||
$bookData['title'] = str_replace(["\r\n"], '', trim($book->first('.title::text')));
|
||||
$bookData['nid'] = (int)$book->attr('nid');
|
||||
|
||||
$bookData['pdf'] = $book->first('a[href$=pdf]::attr(href)');
|
||||
$bookData['epub'] = $book->first('a[href$=epub]::attr(href)');
|
||||
$bookData['mobi'] = $book->first('a[href$=mobi]::attr(href)');
|
||||
$bookData['code'] = $book->first('a[href*=code_download]::attr(href)');
|
||||
$bookData['pdf'] = truncateBookUrl($book->first('a[href$=pdf]::attr(href)'));
|
||||
$bookData['epub'] = truncateBookUrl($book->first('a[href$=epub]::attr(href)'));
|
||||
$bookData['mobi'] = truncateBookUrl($book->first('a[href$=mobi]::attr(href)'));
|
||||
$bookData['code'] = truncateBookUrl($book->first('a[href*=code_download]::attr(href)'));
|
||||
$bookData['isbn'] = $book->first('div[isbn]::attr(isbn)');
|
||||
$bookData['img'] = $book->first('img[class*=imagecache]::attr(src)');
|
||||
$bookData['url'] = $book->first('div[class*=product-thumbnail]')->first('a::attr(href)');
|
||||
$bookData['url'] = truncateBookUrl($book->first('div[class*=product-thumbnail]')->first('a::attr(href)'));
|
||||
|
||||
|
||||
$stmt = $db->prepare('SELECT id FROM book WHERE nid = :nid');
|
||||
$stmt->bindValue(':nid', $bookData['nid'], SQLITE3_INTEGER);
|
||||
$result = $stmt->execute();
|
||||
|
||||
if ($result->numColumns() > 0) {
|
||||
$resultData = $result->fetchArray(SQLITE3_ASSOC);
|
||||
if (!$resultData) {
|
||||
|
||||
|
||||
} else {
|
||||
$bookData['info'] = getBookInfo($bookData['url']);
|
||||
$stmt = $db->prepare('REPLACE INTO book (nid, title, isbn, img, url, datepublished, numberofpages, reviewCount, ratingValue, category, pdf, epub, mobi, code)
|
||||
VALUES (:nid, :title, :isbn, :img, :url, :datepublished, :numberofpages, :reviewCount, :ratingValue, :category, :pdf, :epub, :mobi, :code)');
|
||||
|
||||
Reference in New Issue
Block a user