from functools import lru_cache
from fba.helpers import tidyup
+from fba.helpers import version
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
logger.debug("found='%s' - EXIT!", found)
return found
+
+def remove_extras(software: str):
+ logger.debug("software[%s]='%s' - CALLED!", type(software), software)
+ if not isinstance(software, str):
+ raise ValueError(f"software[]='%s' is not type of 'str'", type(software))
+
+ if software == "":
+ logger.debug("Corrected empty string to None for software.")
+ software = None
+ elif ("." in software or " " in software):
+ logger.debug("software='%s' may contain a version number, removing it ...", software)
+ software = version.remove(software)
+
+ logger.debug("software[%s]='%s'", type(software), software)
+ if software is None:
+ logger.debug("software is None - EXIT!")
+ return None
+ elif "powered by " in software:
+ logger.debug("software='%s' has 'powered by' in it", software)
+ software = version.remove(strip_powered_by(software))
+ elif " hosted on " in software:
+ logger.debug("software='%s' has 'hosted on' in it", software)
+ software = version.remove(strip_hosted_on(software))
+ elif " by " in software:
+ logger.debug("software='%s' has ' by ' in it", software)
+ software = strip_until(software, " by ")
+ elif " see " in software:
+ logger.debug("software='%s' has ' see ' in it", software)
+ software = strip_until(software, " see ")
+
+ logger.debug("software[%s]='%s' - EXIT!", type(software), software)
+ return software
raise requests.exceptions.TooManyRedirects(message)
logger.debug("software[]='%s'", type(software))
- if isinstance(software, str) and software == "":
- logger.debug("Corrected empty string to None for software of domain='%s'", domain)
- software = None
- elif isinstance(software, str) and ("." in software or " " in software):
- logger.debug("software='%s' may contain a version number, domain='%s', removing it ...", software, domain)
- software = version.remove(software)
-
- logger.debug("software[%s]='%s'", type(software), software)
- if isinstance(software, str) and "powered by " in software:
- logger.debug("software='%s' has 'powered by' in it", software)
- software = version.remove(software_helper.strip_powered_by(software))
- elif isinstance(software, str) and " hosted on " in software:
- logger.debug("software='%s' has 'hosted on' in it", software)
- software = version.remove(software_helper.strip_hosted_on(software))
- elif isinstance(software, str) and " by " in software:
- logger.debug("software='%s' has ' by ' in it", software)
- software = software_helper.strip_until(software, " by ")
- elif isinstance(software, str) and " see " in software:
- logger.debug("software='%s' has ' see ' in it", software)
- software = software_helper.strip_until(software, " see ")
+ software = software_helper.remove_extras(software) if isinstance(software, str) else None
logger.debug("software[%s]='%s' - EXIT!", type(software), software)
return software