Esempio n. 1
0
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
Esempio n. 2
0
def find_book(data):
    print('data')

    filters = list(data.split(','))
    print(filters)
    lb = LibgenSearch()

    title = filters[0]
    author = filters[1]
    year = filters[2]
    lang = filters[3]
    extension = filters[4]

    api_filters = {"Year":year, "Extension":extension, "Language":lang, "Author":author} #{"Title" : title, "Author" : author, "ID" : book_id, "Year" : year, "Language": lang}

    results = lb.search_title_filtered(title, api_filters, exact_match=False) #search_title_filtered(title, api_filters, exact_match = False)

    return jsonify(results)