def METHOD_NAME(url: str) -> Tuple[bool, Optional[str], str]:
    reply = http_get_async(url, head_only=True)
    while not reply.isFinished():
        QApplication.processEvents()
    status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)
    if status == 301:
        location = reply.header(QNetworkRequest.LocationHeader).toString()
        if location != url:
            info("Moved permanently, new location is: {}", location)
            return METHOD_NAME(location)
    success: bool = status == 200
    error: Optional[str] = None
    info("URL check for '{}': status '{}'", url, status)
    if not success:
        if status == 302:
            error = "Loading error: Moved Temporarily.\n\nURL incorrect? Missing or incorrect API key?"
        elif status == 404:
            error = "Loading error: Resource not found.\n\nURL incorrect?"
        elif reply.error():
            error = "Loading error: {}\n\nURL incorrect? (HTTP Status {})".format(reply.errorString(), status)
        else:
            error = "Something went wrong with '{}'. HTTP Status is {}".format(remove_key(url), status)
    return success, error, url