Clean up file structure

This commit is contained in:
Nathan Thomas 2023-11-24 18:50:06 -08:00
parent 3e6284b04d
commit df79746c71
30 changed files with 90 additions and 53 deletions

View File

@ -0,0 +1,16 @@
from .client import Client
from .deezer_client import DeezerClient
from .downloadable import BasicDownloadable, Downloadable
from .qobuz_client import QobuzClient
from .soundcloud_client import SoundcloudClient
from .tidal_client import TidalClient
__all__ = [
"Client",
"DeezerClient",
"TidalClient",
"QobuzClient",
"SoundcloudClient",
"Downloadable",
"BasicDownloadable",
]

View File

@ -1,9 +1,7 @@
"""The clients that interact with the streaming service APIs."""
import asyncio
import logging
from abc import ABC, abstractmethod
from typing import Optional, Union
import aiohttp
import aiolimiter
@ -42,7 +40,7 @@ class Client(ABC):
@staticmethod
def get_rate_limiter(
requests_per_min: int,
) -> Optional[aiolimiter.AsyncLimiter]:
) -> aiolimiter.AsyncLimiter | None:
return (
aiolimiter.AsyncLimiter(requests_per_min, 60)
if requests_per_min > 0
@ -50,7 +48,7 @@ class Client(ABC):
)
@staticmethod
async def get_session(headers: Optional[dict] = None) -> aiohttp.ClientSession:
async def get_session(headers: dict | None = None) -> aiohttp.ClientSession:
if headers is None:
headers = {}
return aiohttp.ClientSession(

View File

@ -4,10 +4,10 @@ import hashlib
import deezer
from Cryptodome.Cipher import AES
from ..config import Config
from ..exceptions import AuthenticationError, MissingCredentials, NonStreamable
from .client import Client
from .config import Config
from .downloadable import DeezerDownloadable
from .exceptions import AuthenticationError, MissingCredentials, NonStreamable
class DeezerClient(Client):

View File

@ -17,8 +17,8 @@ import aiohttp
import m3u8
from Cryptodome.Cipher import Blowfish
from . import converter
from .exceptions import NonStreamable
from .. import converter
from ..exceptions import NonStreamable
def generate_temp_path(url: str):

View File

@ -5,10 +5,8 @@ import re
import time
from typing import AsyncGenerator, Optional
from .client import Client
from .config import Config
from .downloadable import BasicDownloadable, Downloadable
from .exceptions import (
from ..config import Config
from ..exceptions import (
AuthenticationError,
IneligibleError,
InvalidAppIdError,
@ -16,6 +14,8 @@ from .exceptions import (
MissingCredentials,
NonStreamable,
)
from .client import Client
from .downloadable import BasicDownloadable, Downloadable
from .qobuz_spoofer import QobuzSpoofer
logger = logging.getLogger("streamrip")

View File

@ -3,10 +3,10 @@ import itertools
import logging
import re
from ..config import Config
from ..exceptions import NonStreamable
from .client import Client
from .config import Config
from .downloadable import SoundcloudDownloadable
from .exceptions import NonStreamable
BASE = "https://api-v2.soundcloud.com"
SOUNDCLOUD_USER_ID = "672320-86895-162383-801513"

View File

@ -1,8 +1,8 @@
import base64
import time
from ..config import Config
from .client import Client
from .config import Config
BASE = "https://api.tidalhifi.com/v1"
AUTH_URL = "https://auth.tidal.com/v1/oauth2"

View File

@ -0,0 +1,21 @@
from .album import Album, PendingAlbum
from .artist import Artist, PendingArtist
from .label import Label, PendingLabel
from .media import Media
from .playlist import PendingPlaylist, PendingPlaylistTrack, Playlist
from .track import PendingTrack, Track
__all__ = [
"Album",
"Artist",
"Label",
"Media",
"PendingAlbum",
"PendingArtist",
"PendingLabel",
"PendingPlaylist",
"PendingPlaylistTrack",
"PendingTrack",
"Playlist",
"Track",
]

View File

@ -3,15 +3,15 @@ import logging
import os
from dataclasses import dataclass
from . import progress
from .. import progress
from ..client import Client
from ..config import Config
from ..db import Database
from ..exceptions import NonStreamable
from ..metadata import AlbumMetadata
from ..metadata.util import get_album_track_ids
from .artwork import download_artwork
from .client import Client
from .config import Config
from .db import Database
from .exceptions import NonStreamable
from .media import Media, Pending
from .metadata import AlbumMetadata
from .metadata.util import get_album_track_ids
from .track import PendingTrack
logger = logging.getLogger("streamrip")

View File

@ -1,9 +1,9 @@
import asyncio
from dataclasses import dataclass
from ..client import Client
from ..config import Config
from .album import PendingAlbum
from .client import Client
from .config import Config
from .media import Media

View File

@ -1,12 +1,12 @@
from dataclasses import dataclass
from ..client import Client
from ..config import Config
from ..db import Database
from ..metadata import ArtistMetadata
from .album import PendingAlbum
from .album_list import AlbumList
from .client import Client
from .config import Config
from .db import Database
from .media import Pending
from .metadata import ArtistMetadata
class Artist(AlbumList):

View File

@ -6,9 +6,9 @@ import shutil
import aiohttp
from PIL import Image
from .config import ArtworkConfig
from .downloadable import BasicDownloadable
from .metadata import Covers
from ..client import BasicDownloadable
from ..config import ArtworkConfig
from ..metadata import Covers
_artwork_tempdirs: set[str] = set()

View File

@ -1,12 +1,12 @@
from dataclasses import dataclass
from ..client import Client
from ..config import Config
from ..db import Database
from ..metadata import LabelMetadata
from .album import PendingAlbum
from .album_list import AlbumList
from .client import Client
from .config import Config
from .db import Database
from .media import Pending
from .metadata import LabelMetadata
class Label(AlbumList):

View File

@ -3,14 +3,14 @@ import logging
import os
from dataclasses import dataclass
from . import progress
from .. import progress
from ..client import Client
from ..config import Config
from ..db import Database
from ..filepath_utils import clean_filename
from ..metadata import AlbumMetadata, Covers, PlaylistMetadata, TrackMetadata
from .artwork import download_artwork
from .client import Client
from .config import Config
from .db import Database
from .filepath_utils import clean_filename
from .media import Media, Pending
from .metadata import AlbumMetadata, Covers, PlaylistMetadata, TrackMetadata
from .track import Track
logger = logging.getLogger("streamrip")

View File

@ -1,6 +1,6 @@
import asyncio
from .config import DownloadsConfig
from ..config import DownloadsConfig
INF = 9999

View File

@ -3,18 +3,16 @@ import logging
import os
from dataclasses import dataclass
from . import converter
from .. import converter
from ..client import Client, Downloadable
from ..config import Config
from ..db import Database
from ..filepath_utils import clean_filename
from ..metadata import AlbumMetadata, Covers, TrackMetadata, tag_file
from ..progress import get_progress_callback
from .artwork import download_artwork
from .client import Client
from .config import Config
from .db import Database
from .downloadable import Downloadable
from .filepath_utils import clean_filename
from .media import Media, Pending
from .metadata import AlbumMetadata, Covers, TrackMetadata
from .progress import get_progress_callback
from .semaphore import global_download_semaphore
from .tagger import tag_file
logger = logging.getLogger("streamrip")

View File

@ -5,6 +5,7 @@ from .artist_metadata import ArtistMetadata
from .covers import Covers
from .label_metadata import LabelMetadata
from .playlist_metadata import PlaylistMetadata
from .tagger import tag_file
from .track_metadata import TrackMetadata
__all__ = [
@ -14,5 +15,6 @@ __all__ = [
"TrackMetadata",
"PlaylistMetadata",
"Covers",
"tag_file",
"util",
]

View File

@ -9,7 +9,7 @@ from mutagen.id3 import APIC # type: ignore
from mutagen.id3 import ID3
from mutagen.mp4 import MP4, MP4Cover
from .metadata import TrackMetadata
from . import TrackMetadata
logger = logging.getLogger("streamrip")

View File

@ -3,7 +3,6 @@ from __future__ import annotations
from dataclasses import dataclass
from typing import Optional
from ..exceptions import NonStreamable
from .album_metadata import AlbumMetadata
from .util import safe_get, typed

View File

@ -0,0 +1,3 @@
from .cli import rip
__all__ = ["rip"]