def lookupUrl(self, url):
     """
     Public method to lookup an URL.
     
     @param url URL to be checked
     @type str or QUrl
     @return tuple containing the list of threat lists the URL was found in
         and an error message
     @rtype tuple of (list of ThreatList, str)
     @exception ValueError raised for an invalid URL
     """
     if self.isEnabled():
         if self.__useLookupApi:
             if isinstance(url, str):
                 url = QUrl(url.strip())
             
             if url.isEmpty():
                 raise ValueError("Empty URL given.")
             
             listNames, error = self.__apiClient.lookupUrl(
                 url, self.__platforms)
             return listNames, error
         else:
             if isinstance(url, QUrl):
                 urlStr = url.toString().strip()
             else:
                 urlStr = url.strip()
             
             if not urlStr:
                 raise ValueError("Empty URL given.")
             
             urlHashes = SafeBrowsingUrl(urlStr).hashes()
             listNames = self.__lookupHashes(urlHashes)
             
             return listNames, ""
     
     return None, ""