import { ExtractResult } from "./result"; const URL_REG = /^\s*(https?):\/\//im; export function parseUrls(...args) { if (!args.length) return []; let arg = args.shift(); if (arg instanceof Array) { return arg; } else if (arg instanceof ExtractResult) { return arg.squash().filter(v => URL_REG.test(v)); } else { let urlTempl = arg; if (urlTempl) { if (args[0] instanceof Array) { return args[0].map(p => urlTempl.replace("${page}", p)); } else if (args.length >= 3) { let urls = []; let from = args.shift(); let to = args.shift(); let interval = args.shift(); for (let i = from; i <= to; i += interval) { urls.push(urlTempl.replace("${page}", i)); } return urls; } } } return []; } export function saveFile(data: string, mimeType: string, fileName?: string) { fileName = fileName || document.title || "result"; let blob: Blob; if (typeof window.Blob == "function") { blob = new Blob([data], { type: mimeType }) } else { var BlobBuiler = window.MSBlobBuilder; var builer = new BlobBuiler(); builer.append(data); blob = builer.getBlob(mimeType) } var URL = window.URL || window.webkitURL; var url = URL.createObjectURL(blob); var link = document.createElement("a"); if ('download' in link) { link.style.visibility = "hidden"; link.href = url; link.download = fileName; document.body.appendChild(link); var j = document.createEvent("MouseEvents"); j.initEvent("click", true, true); link.dispatchEvent(j); document.body.removeChild(link) } else if (navigator.msSaveBlob) { navigator.msSaveBlob(blob, fileName) } else { location.href = url } }