import httpx

from linguee_api.downloaders.interfaces import DownloaderError, IDownloader


class HTTPXDownloader(IDownloader):
    """
    Real downloader.

    Sends request to linguee.com to read the page.
    """

    async def download(self, url: str) -> str:
        async with httpx.AsyncClient() as client:
            try:
                response = await client.get(url)
            except httpx.ConnectError as e:
                raise DownloaderError(str(e)) from e
            if response.status_code != 200:
                raise DownloaderError(
                    f"The Linguee server returned {response.status_code}"
                )
            return response.text

@@ -84,16 +84,254 @@
 loader%0A%0A
+ERROR_503 = (%0A    %22The Linguee server returned 503. The API proxy was temporarily blocked by %22%0A    %22Linguee. For more details, see https://github.com/imankulov/linguee-api#%22%0A    %22the-api-server-returns-the-linguee-server-returned-503%22%0A)%0A%0A
 %0Aclass H
@@ -709,16 +709,111 @@
  from e%0A
+%0A            if response.status_code == 503:%0A                raise DownloaderError(ERROR_503)%0A%0A
         

Update the 503 error message.