main
parent
2cb284594f
commit
81bb646b2a
@ -1,114 +0,0 @@
|
||||
const Zombie = require('zombie');
|
||||
|
||||
class Browser {
|
||||
constructor(options) {
|
||||
this.options = options;
|
||||
|
||||
this.browser = new Zombie({
|
||||
proxy: options.proxy,
|
||||
silent: true,
|
||||
strictSSL: false,
|
||||
userAgent: options.userAgent,
|
||||
waitDuration: options.maxWait,
|
||||
});
|
||||
|
||||
this.statusCode = null;
|
||||
this.contentType = null;
|
||||
this.headers = null;
|
||||
this.statusCode = null;
|
||||
this.contentType = null;
|
||||
this.html = null;
|
||||
this.scripts = null;
|
||||
this.cookies = null;
|
||||
|
||||
this.window = this.browser.window;
|
||||
this.document = this.browser.document;
|
||||
|
||||
this.browser.on('authenticate', (auth) => {
|
||||
auth.username = this.options.username;
|
||||
auth.password = this.options.password;
|
||||
});
|
||||
}
|
||||
|
||||
visit(url) {
|
||||
return new Promise((resolve) => {
|
||||
this.browser.visit(url, () => {
|
||||
const resource = this.browser.resources.length
|
||||
? this.browser.resources.filter(_resource => _resource.response).shift() : null;
|
||||
|
||||
this.headers = this.getHeaders();
|
||||
this.statusCode = resource ? resource.response.status : 0;
|
||||
this.contentType = this.headers['content-type'] ? this.headers['content-type'].shift() : null;
|
||||
this.html = this.getHtml();
|
||||
this.scripts = this.getScripts();
|
||||
this.cookies = this.getCookies();
|
||||
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
getHeaders() {
|
||||
const headers = {};
|
||||
|
||||
const resource = this.browser.resources.length
|
||||
? this.browser.resources.filter(_resource => _resource.response).shift() : null;
|
||||
|
||||
if (resource) {
|
||||
// eslint-disable-next-line no-underscore-dangle
|
||||
resource.response.headers._headers.forEach((header) => {
|
||||
if (!headers[header[0]]) {
|
||||
headers[header[0]] = [];
|
||||
}
|
||||
|
||||
headers[header[0]].push(header[1]);
|
||||
});
|
||||
}
|
||||
|
||||
return headers;
|
||||
}
|
||||
|
||||
getHtml() {
|
||||
let html = '';
|
||||
|
||||
if (this.browser.document && this.browser.document.documentElement) {
|
||||
try {
|
||||
html = this.browser.html();
|
||||
} catch (error) {
|
||||
this.log(error.message, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
getScripts() {
|
||||
if (!this.browser.document || !this.browser.document.scripts) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const scripts = Array.prototype.slice
|
||||
.apply(this.browser.document.scripts)
|
||||
.filter(script => script.src)
|
||||
.map(script => script.src);
|
||||
|
||||
return scripts;
|
||||
}
|
||||
|
||||
getCookies() {
|
||||
const cookies = [];
|
||||
|
||||
if (this.browser.cookies) {
|
||||
this.browser.cookies.forEach(cookie => cookies.push({
|
||||
name: cookie.key,
|
||||
value: cookie.value,
|
||||
domain: cookie.domain,
|
||||
path: cookie.path,
|
||||
}));
|
||||
}
|
||||
|
||||
return cookies;
|
||||
}
|
||||
}
|
||||
|
||||
export default Browser;
|
@ -1,73 +1,77 @@
|
||||
{
|
||||
"github": { "message": "Fork Wappalyzer no GitHub!" },
|
||||
"noAppsDetected": { "message": "Não foi detectada nenhuma tecnologia." },
|
||||
"nothingToDo": { "message": "Nada a fazer aqui." },
|
||||
"optionDynamicIcon": { "message": "Utilizar o ícone da tecnologia em vez do logótipo do Wappalyzer" },
|
||||
"optionTracking": { "message": "Envie anonimamente tecnologias identificadas para wappalyzer.com" },
|
||||
"optionUpgradeMessage": { "message": "Fale-me sobre actualizações" },
|
||||
"options": { "message": "Opções" },
|
||||
"optionsSave": { "message": "Opções de Guardar" },
|
||||
"optionsSaved": { "message": "Guardado" },
|
||||
"twitter": { "message": "Seguir Wappalyzer no Twitter" },
|
||||
"website": { "message": "Ir para wappalyzer.com" },
|
||||
"categoryPin": { "message": "Mostrar sempre ícone" },
|
||||
"categoryName1": { "message": "CMS" },
|
||||
"categoryName2": { "message": "Fórum" },
|
||||
"categoryName3": { "message": "Gestor de Base de Dados" },
|
||||
"categoryName4": { "message": "Ferramenta de Documentação" },
|
||||
"categoryName5": { "message": "Widget" },
|
||||
"categoryName6": { "message": "Comércio Eletrónico" },
|
||||
"categoryName7": { "message": "Galeria de Fotos" },
|
||||
"categoryName8": { "message": "Wikis" },
|
||||
"categoryName9": { "message": "Painéis de Hospedagem" },
|
||||
"categoryName10": { "message": "Analítica" },
|
||||
"categoryName11": { "message": "Blog" },
|
||||
"categoryName12": { "message": "Framework JavaScript" },
|
||||
"categoryName13": { "message": "Rastreador de Problemas" },
|
||||
"categoryName14": { "message": "Leitor Vídeo" },
|
||||
"categoryName15": { "message": "Sistema de Comentários" },
|
||||
"categoryName16": { "message": "Captcha" },
|
||||
"categoryName17": { "message": "Script de Tipos de Letra" },
|
||||
"categoryName18": { "message": "Framework Web" },
|
||||
"categoryName19": { "message": "Diversos" },
|
||||
"categoryName20": { "message": "Editor" },
|
||||
"categoryName21": { "message": "LMS" },
|
||||
"categoryName22": { "message": "Servidor Web" },
|
||||
"categoryName23": { "message": "Ferramenta de Cache" },
|
||||
"categoryName24": { "message": "Editor WYSIWYG" },
|
||||
"categoryName25": { "message": "Gráficos JavaScript" },
|
||||
"categoryName26": { "message": "Framework Mobile" },
|
||||
"categoryName27": { "message": "Linguagem de Programação" },
|
||||
"categoryName28": { "message": "Sistema Operativo" },
|
||||
"categoryName29": { "message": "Motor de Busca" },
|
||||
"categoryName30": { "message": "Web Mail" },
|
||||
"categoryName31": { "message": "CDN" },
|
||||
"categoryName32": { "message": "Automação de Marketing" },
|
||||
"categoryName33": { "message": "Extensão de Servidor Web" },
|
||||
"categoryName34": { "message": "Base de Dados" },
|
||||
"categoryName35": { "message": "Mapa" },
|
||||
"categoryName36": { "message": "Rede de Publicidade" },
|
||||
"categoryName37": { "message": "Serviço de Rede" },
|
||||
"categoryName38": { "message": "Servidor de Média" },
|
||||
"categoryName39": { "message": "Webcam" },
|
||||
"categoryName40": { "message": "Impressão" },
|
||||
"categoryName41": { "message": "Processador de Pagamento" },
|
||||
"categoryName42": { "message": "Gestor de Etiquetas" },
|
||||
"categoryName43": { "message": "Sistema de Subscrição Paga" },
|
||||
"categoryName44": { "message": "Sistema Build/CI" },
|
||||
"categoryName45": { "message": "Sistema SCADA" },
|
||||
"categoryName46": { "message": "Acesso Remoto" },
|
||||
"categoryName47": { "message": "Ferramenta de Desenvolvimento" },
|
||||
"categoryName48": { "message": "Rede de Armazenamento" },
|
||||
"categoryName49": { "message": "Leitores de Feed" },
|
||||
"categoryName50": { "message": "Sistema de Gestão de Documentos" },
|
||||
"categoryName51": { "message": "Criador de Páginas de Destino" },
|
||||
"categoryName52": { "message": "Chat ao Vivo" },
|
||||
"categoryName53": { "message": "CRM" },
|
||||
"categoryName54": { "message": "SEO" },
|
||||
"categoryName55": { "message": "Contabilidade" },
|
||||
"categoryName56": { "message": "Cryptominer" },
|
||||
"categoryName57": { "message": "Gerador de Site Estático" },
|
||||
"categoryName58": { "message": "User Onboarding" },
|
||||
"categoryName59": { "message": "JavaScript Libraries" }
|
||||
"github": { "message": "Fork Wappalyzer no GitHub!" },
|
||||
"noAppsDetected": { "message": "Não foi detectada nenhuma tecnologia." },
|
||||
"nothingToDo": { "message": "Nada a fazer aqui." },
|
||||
"optionDynamicIcon": { "message": "Utilizar o ícone da tecnologia em vez do logótipo do Wappalyzer" },
|
||||
"optionTracking": { "message": "Envie anonimamente tecnologias identificadas para wappalyzer.com" },
|
||||
"optionUpgradeMessage": { "message": "Fale-me sobre actualizações" },
|
||||
"options": { "message": "Opções" },
|
||||
"optionsSave": { "message": "Opções de Guardar" },
|
||||
"optionsSaved": { "message": "Guardado" },
|
||||
"twitter": { "message": "Seguir Wappalyzer no Twitter" },
|
||||
"website": { "message": "Ir para wappalyzer.com" },
|
||||
"categoryPin": { "message": "Mostrar sempre ícone" },
|
||||
"categoryName1": { "message": "CMS" },
|
||||
"categoryName2": { "message": "Fórum" },
|
||||
"categoryName3": { "message": "Gestor de Base de Dados" },
|
||||
"categoryName4": { "message": "Ferramenta de Documentação" },
|
||||
"categoryName5": { "message": "Widget" },
|
||||
"categoryName6": { "message": "Comércio Eletrónico" },
|
||||
"categoryName7": { "message": "Galeria de Fotos" },
|
||||
"categoryName8": { "message": "Wikis" },
|
||||
"categoryName9": { "message": "Painéis de Hospedagem" },
|
||||
"categoryName10": { "message": "Analítica" },
|
||||
"categoryName11": { "message": "Blog" },
|
||||
"categoryName12": { "message": "Framework JavaScript" },
|
||||
"categoryName13": { "message": "Rastreador de Problemas" },
|
||||
"categoryName14": { "message": "Leitor Vídeo" },
|
||||
"categoryName15": { "message": "Sistema de Comentários" },
|
||||
"categoryName16": { "message": "Captcha" },
|
||||
"categoryName17": { "message": "Script de Tipos de Letra" },
|
||||
"categoryName18": { "message": "Framework Web" },
|
||||
"categoryName19": { "message": "Diversos" },
|
||||
"categoryName20": { "message": "Editor" },
|
||||
"categoryName21": { "message": "LMS" },
|
||||
"categoryName22": { "message": "Servidor Web" },
|
||||
"categoryName23": { "message": "Ferramenta de Cache" },
|
||||
"categoryName24": { "message": "Editor WYSIWYG" },
|
||||
"categoryName25": { "message": "Gráficos JavaScript" },
|
||||
"categoryName26": { "message": "Framework Mobile" },
|
||||
"categoryName27": { "message": "Linguagem de Programação" },
|
||||
"categoryName28": { "message": "Sistema Operativo" },
|
||||
"categoryName29": { "message": "Motor de Busca" },
|
||||
"categoryName30": { "message": "Web Mail" },
|
||||
"categoryName31": { "message": "CDN" },
|
||||
"categoryName32": { "message": "Automação de Marketing" },
|
||||
"categoryName33": { "message": "Extensão de Servidor Web" },
|
||||
"categoryName34": { "message": "Base de Dados" },
|
||||
"categoryName35": { "message": "Mapa" },
|
||||
"categoryName36": { "message": "Rede de Publicidade" },
|
||||
"categoryName37": { "message": "Serviço de Rede" },
|
||||
"categoryName38": { "message": "Servidor de Média" },
|
||||
"categoryName39": { "message": "Webcam" },
|
||||
"categoryName40": { "message": "Impressão" },
|
||||
"categoryName41": { "message": "Processador de Pagamento" },
|
||||
"categoryName42": { "message": "Gestor de Etiquetas" },
|
||||
"categoryName43": { "message": "Sistema de Subscrição Paga" },
|
||||
"categoryName44": { "message": "Sistema Build/CI" },
|
||||
"categoryName45": { "message": "Sistema SCADA" },
|
||||
"categoryName46": { "message": "Acesso Remoto" },
|
||||
"categoryName47": { "message": "Ferramenta de Desenvolvimento" },
|
||||
"categoryName48": { "message": "Rede de Armazenamento" },
|
||||
"categoryName49": { "message": "Leitores de Feed" },
|
||||
"categoryName50": { "message": "Sistema de Gestão de Documentos" },
|
||||
"categoryName51": { "message": "Criador de Páginas de Destino" },
|
||||
"categoryName52": { "message": "Chat ao Vivo" },
|
||||
"categoryName53": { "message": "CRM" },
|
||||
"categoryName54": { "message": "SEO" },
|
||||
"categoryName55": { "message": "Contabilidade" },
|
||||
"categoryName56": { "message": "Cryptominer" },
|
||||
"categoryName57": { "message": "Gerador de Site Estático" },
|
||||
"categoryName58": { "message": "User Onboarding" },
|
||||
"categoryName59": { "message": "JavaScript Libraries" },
|
||||
"categoryName60": { "message": "Containers" },
|
||||
"categoryName61": { "message": "SaaS" },
|
||||
"categoryName62": { "message": "PaaS" },
|
||||
"categoryName63": { "message": "IaaS" }
|
||||
}
|
||||
|
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Loading…
Reference in new issue