async def search_book(metadata: Book, telegram_log: CallbackQuery): lib_search = LibgenSearch() logging.info(metadata) if metadata.Author: #filters = {"Author": metadata.Author} filters = {"Language": "English"} if metadata.subtitle: bQuery = f"{metadata.title} {metadata.subtitle}" else: bQuery = f"{metadata.title}" results = lib_search.search_title_filtered(bQuery, filters, exact_match=False) else: results = lib_search.search_title(metadata.title) pprint.pprint(results) best = find_best_match(metadata, results) while best == None: await telegram_log.answer(text="Performing advanced query 💪") print("advanced") isbns = await alternative_search(bQuery, metadata.Author) results = [] for isbn in isbns: print(isbn) results.extend(lib_search.search_title(isbn)) pprint.pprint(results) best = find_best_match(metadata, results) break if best != None: best = results[best] best = LibgenResult(best) print(best) return best
def search_book(by, value): s = LibgenSearch() if by == 'title': results = s.search_title(value) elif by == 'author': results = s.search_author(value) return results
async def libgen(self, ctx, *args): """Enter a title search query and it will respond with libgen entries""" # Collect their query and search for it search_query = " ".join(args) s = LibgenSearch() results = s.search_title(search_query) # Truncate to at most 6 results results = results[:6] # If no results, tell them their book isn't libgenable if len(results) == 0: await ctx.send("Sorry! Your book isn't libgenable :(") return # Set up discord embed embed = discord.Embed( title="Search Results", description=f"Query: {search_query}", color=0xFF0000 ) # Add all the info of each search result to the embed in its own field for num in range(1, len(results) + 1): info_str = "" info_str += f'Author: {results[num-1]["Author"]}\n' info_str += f'Title: {results[num-1]["Title"]}\n' info_str += f'Publisher: {results[num-1]["Publisher"]}\n' info_str += f'Year: {results[num-1]["Year"]}\n' info_str += f'Extension: {results[num-1]["Extension"]}\n' info_str += "Download Links:\n" info_str += f'[1]({results[num-1]["Mirror_1"]}) [2]({results[num-1]["Mirror_2"]}) [3]({results[num-1]["Mirror_3"]}) [4]({results[num-1]["Mirror_4"]}) [5]({results[num-1]["Mirror_5"]})' embed.add_field(name=f"Result {num}", value=info_str) await ctx.send(embed=embed)
def libgen(update, context): title = ' '.join(context.args) search = LibgenSearch() results = search.search_title(title) len_results = len(results) if len_results != 0: response_message = "Sua busca retornou " + str( len_results) + " resultados. Os valores do primeiro resultado são" response_message = response_message + "\nID: " + results[0]['ID'] response_message = response_message + "\nAutor: " + results[0]['Author'] response_message = response_message + "\nTitulo: " + results[0]['Title'] response_message = response_message + "\nEditora: " + results[0][ 'Publisher'] response_message = response_message + "\nAno: " + results[0]['Year'] response_message = response_message + "\nPaginas: " + results[0][ 'Pages'] response_message = response_message + "\nLingua: " + results[0][ 'Language'] response_message = response_message + "\nTamanho: " + results[0]['Size'] response_message = response_message + "\nExtensão: " + results[0][ 'Extension'] response_message = response_message + "\nPrimeiro Mirror: " + results[ 0]['Mirror_1'] response_message = response_message + "\n\(≧▽≦)/" else: response_message = "Livro não encontrado =<" context.bot.send_message(chat_id=update.effective_chat.id, text=response_message)
def getTextbookSearchResults(): if not request.json or not 'message' in request.json: abort(400) query = request.json['message'] s = LibgenSearch() response = s.search_title(query) response = calculateConfidence(query, response) response = filterBooks(response) response = Cover_URL(response) response = sorted(response, key=lambda i: i['confidence'], reverse=True) return jsonify(response)
def bybook(): name = request.args.get('bookname') if name: s = LibgenSearch() books = s.search_title(name) return jsonify({"books":books})
dicts['Cover_url'] = images[1].get('src') return array_books # Entry Point --------------------------------------------------------------------------------------- s = LibgenSearch() user_test_queries = [ "analysis of biological data", "mathematics", "statistics" ] for query in user_test_queries: print("\n=============\nUSER QUERY :: ", query) response = s.search_title(query) response = confidence_lvl(response, query) print('# QUERIES :: ', len(response)) # filter books response = FilterBooks(response) response = Cover_URL(response) print('# GOOD QUERIES :: ', len(response), '\n') response = sorted(response, key=lambda i: i['Confidence_lvl'], reverse=True)