mirror of
https://github.com/nathom/streamrip.git
synced 2025-05-27 21:44:27 -04:00
Clean up file structure
This commit is contained in:
parent
3e6284b04d
commit
df79746c71
30 changed files with 90 additions and 53 deletions
16
streamrip/client/__init__.py
Normal file
16
streamrip/client/__init__.py
Normal 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",
|
||||
]
|
|
@ -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(
|
|
@ -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):
|
|
@ -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):
|
|
@ -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")
|
|
@ -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"
|
|
@ -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"
|
21
streamrip/media/__init__.py
Normal file
21
streamrip/media/__init__.py
Normal 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",
|
||||
]
|
|
@ -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")
|
|
@ -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
|
||||
|
||||
|
|
@ -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):
|
|
@ -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()
|
||||
|
|
@ -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):
|
|
@ -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")
|
|
@ -1,6 +1,6 @@
|
|||
import asyncio
|
||||
|
||||
from .config import DownloadsConfig
|
||||
from ..config import DownloadsConfig
|
||||
|
||||
INF = 9999
|
||||
|
|
@ -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")
|
||||
|
|
@ -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",
|
||||
]
|
||||
|
|
|
@ -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")
|
||||
|
|
@ -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
|
||||
|
||||
|
|
3
streamrip/rip/__init__.py
Normal file
3
streamrip/rip/__init__.py
Normal file
|
@ -0,0 +1,3 @@
|
|||
from .cli import rip
|
||||
|
||||
__all__ = ["rip"]
|
Loading…
Add table
Add a link
Reference in a new issue