def init(environment, options): global redirects global config redirects_file = options.get("a11y_redirects") config_file = options.get("a11y_config") # Parse redirects if redirects_file: if not redirects_file.endswith(".yml"): logging.error("--a11y_redirects should be a YML file") return False # if remote, try to download if redirects_file.startswith("http:") or redirects_file.startswith( "https:"): redirects_path = os.path.join(utils.cache_dir(), "a11y_redirects.yml") try: response = requests.get(redirects_file) utils.write(response.text, redirects_path) except: logging.error( "--a11y_redirects URL not downloaded successfully.") return False # Otherwise, read it off the disk else: redirects_path = redirects_file if (not os.path.exists(redirects_path)): logging.error("--a11y_redirects file not found.") return False with open(redirects_path, 'r') as f: redirects = yaml.load(f) # Get config if config_file: if not config_file.endswith(".json"): logging.error("--a11y_config should be a json file") return False # if remote, try to download if config_file.startswith("http:") or config_file.startswith("https:"): config_path = os.path.join(utils.cache_dir(), "a11y_config.json") try: response = requests.get(config_file) utils.write(response.text, config_path) except: logging.error("--a11y_config URL not downloaded successfully.") return False config = config_path return True
def gather(suffix, options): url = options.get("url") if url is None: logging.warn("A --url is required. (Can be a local path.)") exit(1) # remote URL if url.startswith("http:") or url.startswith("https:"): # Though it's saved in cache/, it will be downloaded every time. remote_path = os.path.join(utils.cache_dir(), "url.csv") try: response = requests.get(url) utils.write(response.text, remote_path) except: logging.error("Remote URL not downloaded successfully.") print(utils.format_last_exception()) exit(1) # local path else: remote_path = url for domain in utils.load_domains(remote_path): yield domain
def init(options): global analytics_domains analytics_file = options.get("analytics") if (not analytics_file) or (not analytics_file.endswith(".csv")): no_csv = "--analytics should point to the file path or URL to a CSV of participating domains." logging.error(no_csv) return False # It's a URL, download it first. if analytics_file.startswith("http:") or analytics_file.startswith("https:"): analytics_path = os.path.join(utils.cache_dir(), "analytics.csv") try: response = requests.get(analytics_file) utils.write(response.text, analytics_path) except: no_csv = "--analytics URL not downloaded successfully." logging.error(no_csv) return False # Otherwise, read it off the disk else: analytics_path = analytics_file if (not os.path.exists(analytics_path)): no_csv = "--analytics file not found." logging.error(no_csv) return False analytics_domains = utils.load_domains(analytics_path) return True