98 lines
4.2 KiB
JavaScript
98 lines
4.2 KiB
JavaScript
class TPDF {
|
|
|
|
static display() {
|
|
console.log(TPDF.xhr.responseText);
|
|
|
|
if (TPDF.xhr.readyState == 4 && TPDF.xhr.status == 200) {
|
|
TPDF.output.removeChild(TPDF.output.childNodes[0]);
|
|
var results = JSON.parse(TPDF.xhr.responseText);
|
|
|
|
for (var i in results['books']) {
|
|
var dtAuthors = document.createElement('dt');
|
|
dtAuthors.appendChild(document.createTextNode('Authors'));
|
|
var dtPublisher = document.createElement('dt');
|
|
dtPublisher.appendChild(document.createTextNode('Publisher'));
|
|
var dtYear = document.createElement('dt');
|
|
dtYear.appendChild(document.createTextNode('Year'));
|
|
var dtPages = document.createElement('dt');
|
|
dtPages.appendChild(document.createTextNode('Pages'));
|
|
var dtISBN = document.createElement('dt');
|
|
dtISBN.appendChild(document.createTextNode('ISBN'));
|
|
var dtId = document.createElement('dt');
|
|
dtId.appendChild(document.createTextNode('ID'));
|
|
|
|
var ddAuthors = document.createElement('dd');
|
|
var authorsString = '';
|
|
for (var j in results['books'][i]['authors']) {
|
|
authorsString += results['books'][i]['authors'][j];
|
|
if (j < results['books'][i]['authors'].length - 1) authorsString += ', ';
|
|
}
|
|
ddAuthors.appendChild(document.createTextNode(authorsString));
|
|
|
|
var ddPublisher = document.createElement('dd');
|
|
ddPublisher.appendChild(document.createTextNode(results['books'][i]['publisher']));
|
|
var ddYear = document.createElement('dd');
|
|
ddYear.appendChild(document.createTextNode(results['books'][i]['year']));
|
|
var ddPages = document.createElement('dd');
|
|
ddPages.appendChild(document.createTextNode(results['books'][i]['page']));
|
|
var ddISBN = document.createElement('dd');
|
|
ddISBN.appendChild(document.createTextNode(results['books'][i]['isbn']));
|
|
var ddId = document.createElement('dd');
|
|
ddId.appendChild(document.createTextNode(results['books'][i]['id']));
|
|
|
|
|
|
var bookElement = document.createElement('section');
|
|
var titleElement = document.createElement('h2');
|
|
var coverElement = document.createElement('img');
|
|
|
|
var dlElement = document.createElement('dl');
|
|
var authorsElement = document.createElement('ul');
|
|
|
|
dlElement.appendChild(dtAuthors);
|
|
dlElement.appendChild(ddAuthors);
|
|
dlElement.appendChild(dtPublisher);
|
|
dlElement.appendChild(ddPublisher);
|
|
dlElement.appendChild(dtYear);
|
|
dlElement.appendChild(ddYear);
|
|
dlElement.appendChild(dtPages);
|
|
dlElement.appendChild(ddPages);
|
|
dlElement.appendChild(dtISBN);
|
|
dlElement.appendChild(ddISBN);
|
|
dlElement.appendChild(dtId);
|
|
dlElement.appendChild(ddId);
|
|
|
|
|
|
|
|
titleElement.appendChild(document.createTextNode(results['books'][i]['title']));
|
|
coverElement.src = 'https://golem.linux.it/cgi/tpdf/output/images/' + results['books'][i]['cover'];
|
|
coverElement.alt = 'Cover of «' + results['books'][i]['title'] + '»';
|
|
|
|
bookElement.appendChild(titleElement);
|
|
bookElement.appendChild(coverElement);
|
|
bookElement.appendChild(dlElement);
|
|
|
|
|
|
TPDF.output.appendChild(bookElement);
|
|
}
|
|
}
|
|
else {
|
|
TPDF.output.childNodes[0].textContent = 'API Error. Try later.';
|
|
}
|
|
|
|
}
|
|
|
|
static submit() {
|
|
TPDF.xhr = new XMLHttpRequest();
|
|
TPDF.xhr.onload = TPDF.display;
|
|
TPDF.xhr.open('GET', 'https://golem.linux.it/cgi/tpdf/main.py?format=json')
|
|
TPDF.xhr.send(null);
|
|
|
|
TPDF.output = document.getElementById('tpdfOutput');
|
|
TPDF.output.childNodes[0].textContent = 'Searching...';
|
|
}
|
|
|
|
}
|
|
|
|
TPDF.xhr = null;
|
|
TPDF.output = null;
|