1
0
mirror of https://github.com/janeczku/calibre-web synced 2024-11-23 18:17:24 +00:00

Fixed google scholar issues

This commit is contained in:
cbartondock 2021-12-23 23:16:41 -05:00
parent 222929e741
commit 4edd1914b4
3 changed files with 4 additions and 11 deletions

View File

@ -19,21 +19,17 @@
from scholarly import scholarly
from cps.services.Metadata import Metadata
import pprint
pp = pprint.PrettyPrinter(indent=4)
class scholar(Metadata):
__name__ = "Google Scholar"
__id__ = "googlescholar"
def search(self, query, generic_cover=None):
def search(self, query, generic_cover=""):
val = list()
if self.active:
scholar_gen = scholarly.search_pubs(' '.join(query.split('+')))
i = 0
for publication in scholar_gen:
print(f"PUBLICATION {i + 1}")
pp.pprint(publication)
v = dict()
v['id'] = publication['url_scholarbib'].split(':')[1]
v['title'] = publication['bib'].get('title')
@ -58,7 +54,6 @@ class scholar(Metadata):
i += 1
if (i >= 10):
break
pp.pprint(val)
return val

View File

@ -103,9 +103,9 @@ def metadata_search():
data = list()
active = current_user.view_settings.get('metadata', {})
if query:
static_cover = url_for('static', filename='generic_cover.jpg')
generic_cover = ""
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
meta = {executor.submit(c.search, query, static_cover): c for c in cl if active.get(c.__id__, True)}
meta = {executor.submit(c.search, query, generic_cover): c for c in cl if active.get(c.__id__, True)}
for future in concurrent.futures.as_completed(meta):
data.extend(future.result())
return Response(json.dumps(data), mimetype='application/json')

View File

@ -40,7 +40,7 @@ $(function () {
$("#book_title").val(book.title);
$("#tags").val(uniqueTags.join(", "));
$("#rating").data("rating").setValue(Math.round(book.rating));
if(book.cover !== null){
if(book.cover){
$(".cover img").attr("src", book.cover);
$("#cover_url").val(book.cover);
}
@ -128,9 +128,7 @@ $(function () {
e.preventDefault();
keyword = $("#keyword").val();
$('.pill').each(function(){
// console.log($(this).data('control'));
$(this).data("initial", $(this).prop('checked'));
// console.log($(this).data('initial'));
});
doSearch(keyword);
});