from redbot.core.utils.chat_formatting import error


class BibleAccessError(Exception):
    def __init__(
        self,
        message: str = error(
            "The provided API key cannot retrieve sections from the configured Bible. Please report this to the bot owner."
        ),
    ):
        super().__init__(message)
        self.message = message


class Unauthorized(Exception):
    def __init__(
        self,
        message: str = error(
            "The API key for API.Bible is missing or invalid. Please report this to the bot owner.\nIf you are the bot owner, please check the documentation [here](<https://seacogs.coastalcommits.com/bible/#setup>)."
        ),
    ):
        super().__init__(message)
        self.message = message


class NotFound(Exception):
    def __init__(
        self,
        message: str = error("The requested passage was not found."),
    ):
        super().__init__(message)
        self.message = message


class ServiceUnavailable(Exception):
    def __init__(
        self,
        message: str = error("The API.Bible service is currently unavailable."),
    ):
        super().__init__(message)
        self.message = message


class InexplicableError(Exception):
    def __init__(
        self,
        message: str = error(
            "An inexplicable 'Bad Request' error occurred. This error happens occassionally with the API.Bible service. Please try again. If the error persists, please report this to the bot owner."
        ),
    ):
        super().__init__(message)
        self.message = message