diff --git a/Provider/Tidal.py b/Provider/Tidal.py index 0fcac71..e962914 100644 --- a/Provider/Tidal.py +++ b/Provider/Tidal.py @@ -20,6 +20,7 @@ from API.Tidal import ( stringify, ) from ProviderCore.base import Provider, SearchResult, parse_inline_query_arguments +from cmdlet._shared import get_field from SYS import pipeline as pipeline_context from SYS.logger import debug, log @@ -1565,7 +1566,7 @@ class Tidal(Provider): except (TypeError, ValueError): return None - path = f"hifi://artist/{artist_id}" + path = f"tidal://artist/{artist_id}" columns: List[tuple[str, str]] = [("Artist", name), ("Artist ID", str(artist_id))] popularity = stringify(item.get("popularity")) @@ -1573,10 +1574,10 @@ class Tidal(Provider): columns.append(("Popularity", popularity)) return SearchResult( - table="hifi.artist", + table="tidal.artist", title=name, path=path, - detail="hifi.artist", + detail="tidal.artist", annotations=["tidal", "artist"], media_kind="audio", columns=columns, @@ -1611,7 +1612,7 @@ class Tidal(Provider): return None # Avoid tidal.com URLs entirely; selection will resolve to a decoded MPD. - path = f"hifi://track/{track_id}" + path = f"tidal://track/{track_id}" artists = extract_artists(item) artist_display = ", ".join(artists) @@ -1660,10 +1661,10 @@ class Tidal(Provider): tags = build_track_tags(full_md) result = SearchResult( - table="hifi.track", + table="tidal.track", title=title, path=path, - detail="hifi.track", + detail="tidal.track", annotations=["tidal", "track"], media_kind="audio", tag=tags, @@ -1738,7 +1739,7 @@ class Tidal(Provider): path = ( payload.get("path") or payload.get("url") - or f"hifi://track/{track_id}" + or f"tidal://track/{track_id}" ) contexts.append((track_id, str(title).strip(), str(path).strip())) return contexts diff --git a/ProviderCore/registry.py b/ProviderCore/registry.py index 3a22008..3db6985 100644 --- a/ProviderCore/registry.py +++ b/ProviderCore/registry.py @@ -172,6 +172,8 @@ class ProviderRegistry: for finder, module_name, _ in pkgutil.iter_modules(package_path): if module_name.startswith("_"): continue + if module_name.strip().lower() == "hifi": + continue module_path = f"{self.package_name}.{module_name}" try: module = importlib.import_module(module_path) diff --git a/SYS/metadata.py b/SYS/metadata.py index 5737535..3d9a646 100644 --- a/SYS/metadata.py +++ b/SYS/metadata.py @@ -343,6 +343,7 @@ def normalize_urls(value: Any) -> List[str]: "magnet:", "torrent:", "ytdl://", + "tidal:", "data:", "ftp:", "sftp:")) diff --git a/readme.md b/readme.md index ec21347..2692098 100644 --- a/readme.md +++ b/readme.md @@ -4,7 +4,7 @@

4 TEXT BASED FILE ONTOLOGY

-Medios-Macina is a CLI file media manager and toolkit focused on downloading, tagging, and media storage (audio, video, images, and text) from a variety of providers and sources. It is designed around a compact, pipeable command language ("cmdlets") so complex workflows can be composed simply and repeatably. +Medios-Macina is a file media manager and virtual toolbox capable of downloading, tagging, archiving, sharing, and media (audio, video, images, and text) managing from a variety of providers and sources. It is designed around a compact, pipeable command language ("cmdlets") so complex workflows can be composed simply and repeatably.

ELEVATED PITCH