From aa57a5105776637b088a814338c609a063119146 Mon Sep 17 00:00:00 2001 From: Migatu Date: Tue, 2 Apr 2024 13:15:18 +0200 Subject: [PATCH] Final version before tests --- bot.py | 22 ++++++++++++++-------- conjurer_librarian/conjurer_librarian.py | 14 ++++++++++++-- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/bot.py b/bot.py index 7eee2bd..47fb391 100644 --- a/bot.py +++ b/bot.py @@ -1998,18 +1998,24 @@ class DoSearchView(discord.ui.View): ) async def wyszukaj_linki_do_dokumentow(ctx): query = ctx.message.content - query_uuid = uuid.uuid4() + #query_uuid = uuid.uuid4() + query_uuid = "test" #3 wyslij Librariana - json_query = {"UUID" : str(query_uuid), "query" : str(query)[30:]} - #query_response = requests.post(f"{LIBRARIAN_SERVICE_ADDRESS}{SEND_QUERY}", json=json_query, timeout=360) - #logger.info(query_response.json()) - - #4 zwroc 5 wyników od librariana + json_query = {"UUID" : str(query_uuid), "query" : str(query)[30:], "page" : 1} + query_response = requests.post(f"{LIBRARIAN_SERVICE_ADDRESS}{SEND_QUERY}", json=json_query, timeout=360) + if not query_response.status_code == 200: + await ctx.send("Wołaj szefa - coś się wyjebało") + return + #4 zwroc 4 wyniki od librariana #5 przyciski przy każdym wierszu pozwalają sprawdzić czy plik istnieje na scihubie - jeśli tak podaje link do sciagniecia #6 ostatni wiersz to dalej, wróć, skasuj, zaciagnij kolejne wyniki (jeśli jest ich więcej niż 1000) result_view = DoSearchView() - resulttab = ["r1", "r2", "r3", "r4"] - + resulttab = [] + resultlink = [] + for item in query_response.json(): + resulttab.append(item["title"]) + item_link = f"https://scihub.se/{item["DOI"]}" + resultlink.append(item_link) for i in range(1,5): query = quote_plus(resulttab[i-1]) url = f'https://www.google.com/search?q={query}' diff --git a/conjurer_librarian/conjurer_librarian.py b/conjurer_librarian/conjurer_librarian.py index b0942aa..003d7a4 100644 --- a/conjurer_librarian/conjurer_librarian.py +++ b/conjurer_librarian/conjurer_librarian.py @@ -1,6 +1,7 @@ import re import logging import threading +import time from flask import Flask, jsonify, request import netrc import json @@ -51,7 +52,6 @@ class Librarian(object): container = "YES" print(item['title']) print(item['DOI']) - summarized_results.append({"DOI" : item['DOI'], "title": item['title'], "type": item['type'], "container": container}) result = {"UUID": uuid, "total_results": self.last_search['message']['total-results'], "on_page" : 1, "summary":summarized_results, "results":self.last_search['message']['items'], } file_data.append(result) @@ -89,6 +89,16 @@ class Librarian(object): if self.check_if_exists(page_url): return page_url return None + def refine_query(self, unrefined_reqult): + refined_result = [] + for item in unrefined_reqult["summary"] + if item["container"] == "NO": + item_link = f"https://scihub.se/{item["DOI"]}" + if self.check_if_exists(item_link): + refined_result.append(item) + print item_link + time.wait(0.2) + return refined_result def answer_query(self, query, uuid): #Search sql for UUID @@ -111,7 +121,7 @@ class Librarian(object): if uuid_found: return self.last_search self.search_crossref(query=query, uuid=uuid) - return self.last_search + return self.refine_query(self.last_search) #example not exists #sample_non_existing_page_url = "https://sci-hub.se/10.4324/9781003006237"