mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-12-29 15:19:38 +00:00
Update book finder and cover matching - includes LibGen provider
This commit is contained in:
parent
744aacbb4b
commit
7d4e2e3d97
14 changed files with 379 additions and 76 deletions
|
|
@ -10,28 +10,40 @@ class LibGen {
|
|||
console.log(`${this.mirror} is currently fastest`)
|
||||
}
|
||||
|
||||
async search(query) {
|
||||
async search(queryTitle) {
|
||||
if (!this.mirror) {
|
||||
await this.init()
|
||||
}
|
||||
queryTitle = queryTitle.replace(/'/g, '')
|
||||
var options = {
|
||||
mirror: this.mirror,
|
||||
query: query,
|
||||
query: queryTitle,
|
||||
search_in: 'title'
|
||||
}
|
||||
var httpsMirror = this.mirror
|
||||
if (httpsMirror.startsWith('http:')) {
|
||||
httpsMirror = httpsMirror.replace('http:', 'https:')
|
||||
}
|
||||
// console.log('LibGen Search Options', options)
|
||||
try {
|
||||
const data = await libgen.search(options)
|
||||
let n = data.length
|
||||
console.log(`${n} results for "${options.query}"`)
|
||||
// console.log(`${n} results for "${options.query}"`)
|
||||
var cleanedResults = []
|
||||
while (n--) {
|
||||
console.log('');
|
||||
console.log('Title: ' + data[n].title)
|
||||
console.log('Author: ' + data[n].author)
|
||||
console.log('Download: ' +
|
||||
'http://gen.lib.rus.ec/book/index.php?md5=' +
|
||||
data[n].md5.toLowerCase())
|
||||
var resultObj = {
|
||||
id: data[n].id,
|
||||
title: data[n].title,
|
||||
author: data[n].author,
|
||||
publisher: data[n].publisher,
|
||||
description: data[n].descr,
|
||||
cover: `${httpsMirror}/covers/${data[n].coverurl}`,
|
||||
year: data[n].year
|
||||
}
|
||||
if (!resultObj.title) continue;
|
||||
cleanedResults.push(resultObj)
|
||||
}
|
||||
return data
|
||||
return cleanedResults
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class OpenLibrary {
|
|||
return {
|
||||
title: doc.title,
|
||||
author: doc.author_name ? doc.author_name.join(', ') : null,
|
||||
first_publish_year: doc.first_publish_year,
|
||||
year: doc.first_publish_year,
|
||||
edition: doc.cover_edition_key,
|
||||
cover: doc.cover_edition_key ? `https://covers.openlibrary.org/b/OLID/${doc.cover_edition_key}-L.jpg` : null,
|
||||
...worksData
|
||||
|
|
@ -68,5 +68,17 @@ class OpenLibrary {
|
|||
var searchDocs = await Promise.all(lookupData.docs.map(d => this.cleanSearchDoc(d)))
|
||||
return searchDocs
|
||||
}
|
||||
|
||||
async searchTitle(title) {
|
||||
title = title.replace(/'/g, '')
|
||||
var lookupData = await this.get(`/search.json?title=${title}`)
|
||||
if (!lookupData) {
|
||||
return {
|
||||
errorCode: 404
|
||||
}
|
||||
}
|
||||
var searchDocs = await Promise.all(lookupData.docs.map(d => this.cleanSearchDoc(d)))
|
||||
return searchDocs
|
||||
}
|
||||
}
|
||||
module.exports = OpenLibrary
|
||||
Loading…
Add table
Add a link
Reference in a new issue