From 79b2dc439424fac9372ff4b8dc1fac4b9a0b8921 Mon Sep 17 00:00:00 2001 From: Hellow2 Date: Thu, 30 Mar 2023 12:23:57 +0200 Subject: [PATCH] implemented funtion in search --- src/music_kraken/pages/abstract.py | 2 +- .../pages/download_center/search.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/music_kraken/pages/abstract.py b/src/music_kraken/pages/abstract.py index 5adbc0e..51ce217 100644 --- a/src/music_kraken/pages/abstract.py +++ b/src/music_kraken/pages/abstract.py @@ -196,7 +196,7 @@ class Page: def fetch_object_from_source(cls, source: Source, stop_at_level: int = 2): obj_type = cls._get_type_of_url(source.url) if obj_type is None: - return Artist() + return None music_object = cls._fetch_object_from_source(source=source, obj_type=obj_type, stop_at_level=stop_at_level) diff --git a/src/music_kraken/pages/download_center/search.py b/src/music_kraken/pages/download_center/search.py index 4b17493..ca33a78 100644 --- a/src/music_kraken/pages/download_center/search.py +++ b/src/music_kraken/pages/download_center/search.py @@ -4,7 +4,7 @@ from typing import Tuple, List, Set, Dict, Type, Union, Optional from . import page_attributes from .download import Download from ..abstract import Page -from ...objects import Options, DatabaseObject +from ...objects import Options, DatabaseObject, Source class MultiPageOptions: @@ -180,3 +180,18 @@ class Search(Download): self._current_option = self._previous_options except IndexError: pass + + def search_url(self, url: str) -> bool: + source = Source.match_url(url=url) + if source is None: + return False + + new_object = self.fetch_source(source) + if new_object is None: + return False + + page = page_attributes.SOURCE_PAGE_MAP[source.page_enum] + mpo = self.next_options + mpo[page] = new_object.options + + return True