mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2024-12-20 19:06:06 +01:00
Remove LibGen provider and package
This commit is contained in:
parent
354cefb9f4
commit
6fc70b8656
2157
package-lock.json
generated
2157
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -42,11 +42,10 @@
|
||||
"fs-extra": "^10.0.0",
|
||||
"htmlparser2": "^8.0.1",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"libgen": "^2.1.0",
|
||||
"node-ffprobe": "^3.0.0",
|
||||
"node-stream-zip": "^1.15.0",
|
||||
"recursive-readdir-async": "^1.1.8",
|
||||
"socket.io": "^4.4.1",
|
||||
"xml2js": "^0.4.23"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,4 @@
|
||||
const OpenLibrary = require('../providers/OpenLibrary')
|
||||
const LibGen = require('../providers/LibGen')
|
||||
const GoogleBooks = require('../providers/GoogleBooks')
|
||||
const Audible = require('../providers/Audible')
|
||||
const iTunes = require('../providers/iTunes')
|
||||
@ -10,7 +9,6 @@ const { levenshteinDistance } = require('../utils/index')
|
||||
class BookFinder {
|
||||
constructor() {
|
||||
this.openLibrary = new OpenLibrary()
|
||||
this.libGen = new LibGen()
|
||||
this.googleBooks = new GoogleBooks()
|
||||
this.audible = new Audible()
|
||||
this.iTunesApi = new iTunes()
|
||||
@ -123,20 +121,6 @@ class BookFinder {
|
||||
})
|
||||
}
|
||||
|
||||
async getLibGenResults(title, author, maxTitleDistance, maxAuthorDistance) {
|
||||
var books = await this.libGen.search(title)
|
||||
if (this.verbose) Logger.debug(`LibGen Book Search Results: ${books.length || 0}`)
|
||||
if (books.errorCode) {
|
||||
Logger.error(`LibGen Search Error ${books.errorCode}`)
|
||||
return []
|
||||
}
|
||||
var booksFiltered = this.filterSearchResults(books, title, author, maxTitleDistance, maxAuthorDistance)
|
||||
if (!booksFiltered.length && books.length) {
|
||||
if (this.verbose) Logger.debug(`Search has ${books.length} matches, but no close title matches`)
|
||||
}
|
||||
return booksFiltered
|
||||
}
|
||||
|
||||
async getOpenLibResults(title, author, maxTitleDistance, maxAuthorDistance) {
|
||||
var books = await this.openLibrary.searchTitle(title)
|
||||
if (this.verbose) Logger.debug(`OpenLib Book Search Results: ${books.length || 0}`)
|
||||
@ -185,27 +169,10 @@ class BookFinder {
|
||||
books = await this.getAudibleResults(title, author, asin)
|
||||
} else if (provider === 'itunes') {
|
||||
books = await this.getiTunesAudiobooksResults(title, author)
|
||||
} else if (provider === 'libgen') {
|
||||
books = await this.getLibGenResults(title, author, maxTitleDistance, maxAuthorDistance)
|
||||
} else if (provider === 'openlibrary') {
|
||||
books = await this.getOpenLibResults(title, author, maxTitleDistance, maxAuthorDistance)
|
||||
} else if (provider === 'all') {
|
||||
var lbBooks = await this.getLibGenResults(title, author, maxTitleDistance, maxAuthorDistance)
|
||||
var olBooks = await this.getOpenLibResults(title, author, maxTitleDistance, maxAuthorDistance)
|
||||
books = books.concat(lbBooks, olBooks)
|
||||
} else {
|
||||
books = await this.getOpenLibResults(title, author, maxTitleDistance, maxAuthorDistance)
|
||||
var hasCloseMatch = books.find(b => (b.totalDistance < 2 && b.totalPossibleDistance > 6))
|
||||
if (!hasCloseMatch) {
|
||||
Logger.debug(`Book Search, openlib has no super close matches - get libgen results also`)
|
||||
var lbBooks = await this.getLibGenResults(title, author, maxTitleDistance, maxAuthorDistance)
|
||||
books = books.concat(lbBooks)
|
||||
}
|
||||
|
||||
if (!books.length && author && options.fallbackTitleOnly) {
|
||||
Logger.debug(`Book Search, no matches for title and author.. check title only`)
|
||||
return this.search(provider, title, null, options)
|
||||
}
|
||||
books = await this.getGoogleBooksResults(title, author)
|
||||
}
|
||||
|
||||
if (!books.length && !options.currentlyTryingCleaned) {
|
||||
|
@ -1,57 +0,0 @@
|
||||
var libgen = require('libgen')
|
||||
|
||||
class LibGen {
|
||||
constructor() {
|
||||
this.mirror = null
|
||||
}
|
||||
|
||||
async init() {
|
||||
this.mirror = await libgen.mirror()
|
||||
console.log(`${this.mirror} is currently fastest`)
|
||||
}
|
||||
|
||||
async search(queryTitle) {
|
||||
if (!this.mirror) {
|
||||
await this.init()
|
||||
}
|
||||
queryTitle = queryTitle.replace(/'/g, '')
|
||||
queryTitle = encodeURIComponent(queryTitle);
|
||||
var options = {
|
||||
mirror: this.mirror,
|
||||
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}"`)
|
||||
var cleanedResults = []
|
||||
while (n--) {
|
||||
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 cleanedResults
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
return {
|
||||
errorCode: 500
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = LibGen
|
Loading…
Reference in New Issue
Block a user