mirror of
https://github.com/calibrain/shelfmark.git
synced 2026-10-06 10:54:45 +01:00
Base url additions and bug fixes (#519)
- Base URL option in settings for reverse proxy setups - Fix NZB downloads not deleting on completion - Fix handling for audiobook files over 100+ parts - Fix prowlarr search timeout - Fix prowlarr categorisation for expanded searches
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
from shelfmark.metadata_providers import BookMetadata
|
||||
from shelfmark.core.search_plan import build_release_search_plan
|
||||
|
||||
|
||||
class TestReleaseSearchPlanManualQuery:
|
||||
def test_manual_query_overrides_plan(self, monkeypatch):
|
||||
import shelfmark.core.search_plan as sp
|
||||
|
||||
monkeypatch.setattr(sp.config, "BOOK_LANGUAGE", ["en", "hu"], raising=False)
|
||||
|
||||
book = BookMetadata(
|
||||
provider="hardcover",
|
||||
provider_id="123",
|
||||
title="Mistborn: The Final Empire",
|
||||
search_title="The Final Empire",
|
||||
search_author="Brandon Sanderson",
|
||||
authors=["Brandon Sanderson"],
|
||||
titles_by_language={"hu": "A végső birodalom"},
|
||||
isbn_13="9780765311788",
|
||||
)
|
||||
|
||||
plan = build_release_search_plan(book, languages=None, manual_query="some custom query")
|
||||
|
||||
assert plan.manual_query == "some custom query"
|
||||
assert plan.isbn_candidates == []
|
||||
assert plan.languages == ["en", "hu"]
|
||||
assert [v.query for v in plan.title_variants] == ["some custom query"]
|
||||
assert [v.title for v in plan.title_variants] == ["some custom query"]
|
||||
assert [(v.title, v.languages) for v in plan.grouped_title_variants] == [("some custom query", None)]
|
||||
@@ -0,0 +1,70 @@
|
||||
from shelfmark.metadata_providers import BookMetadata
|
||||
from shelfmark.core.search_plan import build_release_search_plan
|
||||
|
||||
|
||||
class TestReleaseSearchPlan:
|
||||
def test_uses_default_languages_when_none(self, monkeypatch):
|
||||
# config.BOOK_LANGUAGE is a Config attribute; patch the instance.
|
||||
import shelfmark.core.search_plan as sp
|
||||
|
||||
monkeypatch.setattr(sp.config, "BOOK_LANGUAGE", ["en", "hu"], raising=False)
|
||||
|
||||
book = BookMetadata(
|
||||
provider="hardcover",
|
||||
provider_id="123",
|
||||
title="Mistborn: The Final Empire",
|
||||
search_title="The Final Empire",
|
||||
search_author="Brandon Sanderson",
|
||||
authors=["Brandon Sanderson"],
|
||||
titles_by_language={
|
||||
"en": "Mistborn: The Final Empire",
|
||||
"hu": "A végső birodalom",
|
||||
},
|
||||
isbn_13="9780765311788",
|
||||
)
|
||||
|
||||
plan = build_release_search_plan(book, languages=None)
|
||||
|
||||
assert plan.languages == ["en", "hu"]
|
||||
assert plan.isbn_candidates == ["9780765311788"]
|
||||
assert [v.query for v in plan.title_variants] == [
|
||||
"The Final Empire Brandon Sanderson",
|
||||
"A végső birodalom Brandon Sanderson",
|
||||
]
|
||||
|
||||
# Title-only variants are used by some sources (e.g. Prowlarr).
|
||||
assert [v.title for v in plan.title_variants] == [
|
||||
"The Final Empire",
|
||||
"A végső birodalom",
|
||||
]
|
||||
|
||||
assert [(v.title, v.languages) for v in plan.grouped_title_variants] == [
|
||||
("The Final Empire", ["en"]),
|
||||
("A végső birodalom", ["hu"]),
|
||||
]
|
||||
|
||||
def test_all_language_disables_grouping(self, monkeypatch):
|
||||
import shelfmark.core.search_plan as sp
|
||||
|
||||
monkeypatch.setattr(sp.config, "BOOK_LANGUAGE", ["en"], raising=False)
|
||||
|
||||
book = BookMetadata(
|
||||
provider="hardcover",
|
||||
provider_id="123",
|
||||
title="The Lightning Thief",
|
||||
authors=["Rick Riordan"],
|
||||
titles_by_language={"hu": "A villámtolvaj"},
|
||||
)
|
||||
|
||||
plan = build_release_search_plan(book, languages=["all"])
|
||||
|
||||
assert plan.languages is None
|
||||
assert [v.query for v in plan.title_variants] == [
|
||||
"The Lightning Thief Rick Riordan",
|
||||
]
|
||||
assert [v.title for v in plan.title_variants] == [
|
||||
"The Lightning Thief",
|
||||
]
|
||||
assert [(v.title, v.languages) for v in plan.grouped_title_variants] == [
|
||||
("The Lightning Thief", None),
|
||||
]
|
||||
Reference in New Issue
Block a user