From b1c38d291c432f196107a27af8dc26bc00179c10 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Thu, 29 Apr 2021 10:40:49 -0700 Subject: [PATCH] Set preferred language --- .env.dev.example | 3 +++ .env.prod.example | 3 +++ bookwyrm/connectors/inventaire.py | 14 ++++++++++---- bookwyrm/models/book.py | 10 +++++++++- bookwyrm/settings.py | 1 + 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/.env.dev.example b/.env.dev.example index 5e605d744..538d1611d 100644 --- a/.env.dev.example +++ b/.env.dev.example @@ -7,6 +7,9 @@ DEBUG=true DOMAIN=your.domain.here #EMAIL=your@email.here +# Used for deciding which editions to prefer +DEFAULT_LANGUAGE="English" + ## Leave unset to allow all hosts # ALLOWED_HOSTS="localhost,127.0.0.1,[::1]" diff --git a/.env.prod.example b/.env.prod.example index 0013bf9d2..ac9fe70f8 100644 --- a/.env.prod.example +++ b/.env.prod.example @@ -7,6 +7,9 @@ DEBUG=false DOMAIN=your.domain.here EMAIL=your@email.here +# Used for deciding which editions to prefer +DEFAULT_LANGUAGE="English" + ## Leave unset to allow all hosts # ALLOWED_HOSTS="localhost,127.0.0.1,[::1]" diff --git a/bookwyrm/connectors/inventaire.py b/bookwyrm/connectors/inventaire.py index a50a2584d..ca84338d8 100644 --- a/bookwyrm/connectors/inventaire.py +++ b/bookwyrm/connectors/inventaire.py @@ -23,7 +23,9 @@ class Connector(AbstractConnector): Mapping("title", remote_field="wdt:P1476", formatter=get_first), Mapping("subtitle", remote_field="wdt:P1680", formatter=get_first), Mapping("inventaireId", remote_field="uri"), - Mapping("description", remote_field="sitelinks", formatter=self.get_description), + Mapping( + "description", remote_field="sitelinks", formatter=self.get_description + ), Mapping("cover", remote_field="image", formatter=self.get_cover_url), Mapping("isbn13", remote_field="wdt:P212", formatter=get_first), Mapping("isbn10", remote_field="wdt:P957", formatter=get_first), @@ -84,7 +86,9 @@ class Connector(AbstractConnector): return SearchResult( title=search_result.get("label"), key=self.get_remote_id(search_result.get("uri")), - view_link="{:s}/entity/{:s}".format(self.base_url, search_result.get("uri")), + view_link="{:s}/entity/{:s}".format( + self.base_url, search_result.get("uri") + ), cover=cover, connector=self, ) @@ -104,7 +108,9 @@ class Connector(AbstractConnector): return SearchResult( title=title[0], key=self.get_remote_id(search_result.get("uri")), - view_link="{:s}/entity/{:s}".format(self.base_url, search_result.get("uri")), + view_link="{:s}/entity/{:s}".format( + self.base_url, search_result.get("uri") + ), cover=self.get_cover_url(search_result.get("image")), connector=self, ) @@ -187,7 +193,7 @@ class Connector(AbstractConnector): return results def get_description(self, links): - """ grab an extracted except from wikipedia """ + """grab an extracted except from wikipedia""" link = links.get("enwiki") if not link: return "" diff --git a/bookwyrm/models/book.py b/bookwyrm/models/book.py index 0bbae0336..10af9b5b5 100644 --- a/bookwyrm/models/book.py +++ b/bookwyrm/models/book.py @@ -5,7 +5,7 @@ from django.db import models from model_utils.managers import InheritanceManager from bookwyrm import activitypub -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import DOMAIN, DEFAULT_LANGUAGE from .activitypub_mixin import OrderedCollectionPageMixin, ObjectMixin from .base_model import BookWyrmModel @@ -211,7 +211,15 @@ class Edition(Book): def get_rank(self): """calculate how complete the data is on this edition""" rank = 0 + # big ups for havinga cover rank += int(bool(self.cover)) * 3 + # is it in the instance's preferred language? + rank += int(bool(DEFAULT_LANGUAGE in self.languages)) + print(DEFAULT_LANGUAGE) + # prefer print editions + rank += int(bool(self.physical_format.lower() in ['paperback', 'hardcover'])) + + # does it have metadata? rank += int(bool(self.isbn_13)) rank += int(bool(self.isbn_10)) rank += int(bool(self.oclc_number)) diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index b679e2d44..1bc3c587b 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -11,6 +11,7 @@ DOMAIN = env("DOMAIN") VERSION = "0.0.1" PAGE_LENGTH = env("PAGE_LENGTH", 15) +DEFAULT_LANGUAGE = env("DEFAULT_LANGUAGE", "English") # celery CELERY_BROKER = env("CELERY_BROKER")