0% acharam este documento útil (0 voto)
55 visualizações4 páginas

User Script

Este é um script de usuário para preenchimento automático de formulários no site de vistos da VFS Portugal. Ele permite que usuários selecionem perfis pré-definidos com informações pessoais, como nome, data de nascimento e nacionalidade, que são preenchidas automaticamente nos campos correspondentes do formulário. O script utiliza uma interface personalizada que aparece na tela para facilitar a seleção dos perfis.

Enviado por

Edgar Sacala
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
55 visualizações4 páginas

User Script

Este é um script de usuário para preenchimento automático de formulários no site de vistos da VFS Portugal. Ele permite que usuários selecionem perfis pré-definidos com informações pessoais, como nome, data de nascimento e nacionalidade, que são preenchidas automaticamente nos campos correspondentes do formulário. O script utiliza uma interface personalizada que aparece na tela para facilitar a seleção dos perfis.

Enviado por

Edgar Sacala
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 4

// ==UserScript==

// @name Vfs PORTUGAL Overlay


// @namespace [Link]
// @version 1.9
// @description Preenchimento automático com interface personalizada
// @author MaurícioJS
// @match [Link]
// ==/UserScript==

(function () {
'use strict';

const campos = {
primeiro_nome: '[placeholder="Enter your first name"]',
ultimo_nome: '[placeholder="Please enter last name."]',
data_nascimento: '#dateOfBirth',
nacionalidade: '.mat-select-value', // Para nacionalidade
sexo: '.mat-select-value', // Para sexo
data_exp: '#passportExpirtyDate',
numero_passaporte: '[placeholder="Enter passport number"]',
numero_telefone: '[placeholder="012345648382"]',
email: '[placeholder="Enter Email Address"]',
codigo_discagem: '[placeholder="44"]',
};

const dadosPerfis = [
{
id: "Pro1",
nome: "Daniel SCHENG",
dados: {
primeiro_nome: "DANIEL FORTUNATO DA CONCEIÇÃO",
ultimo_nome: "SETAS",
data_nascimento: "16/07/2005",
nacionalidade: "ANGOLA",
sexo: "Male",
data_exp: "24/05/2033",
numero_passaporte: "N3052256",
codigo_discagem: "244",
numero_telefone: "954908685",
email: "sacalasacala170@[Link]",
},
},
{
id: "Pro2",
nome: "licardo sheng",
dados: {
primeiro_nome: "JOEL LEITÃO",
ultimo_nome: "MATIAS",
data_nascimento: "22/11/2001",
nacionalidade: "ANGOLA",
sexo: "Male",
data_exp: "30/10/2033",
numero_passaporte: "N3169704",
codigo_discagem: "244",
numero_telefone: "954908685",
email: "sacalasacala170@[Link]",
},
},
{
id: "Pro3",
nome: "Kliverth nacional",
dados: {
primeiro_nome: "KLIVERTH PEDRO FERNANDES",
ultimo_nome: "NETO",
data_nascimento: "06/01/2006",
nacionalidade: "ANGOLA",
sexo: "Male",
data_exp: "01/04/2034",
numero_passaporte: "N3226649",
codigo_discagem: "244",
numero_telefone: "954908685",
email: "sacalasacala170@[Link]",
},
},
{
id: "Pro4",
nome: "miro sheng",
dados: {
primeiro_nome: "CANHALA AURÉLIO",
ultimo_nome: "SAMBA",
data_nascimento: "17/04/2003",
nacionalidade: "ANGOLA",
sexo: "Male",
data_exp: "27/02/2033",
numero_passaporte: "N2988288",
codigo_discagem: "244",
numero_telefone: "954908685",
email: "sacalasacala170@[Link]",
},
},
{
id: "Pro5",
nome: "CASTRO schenguein",
dados: {
primeiro_nome:"CASTRO",
ultimo_nome: "PEDRO",
data_nascimento: "02/01/1986",
nacionalidade: "ANGOLA",
sexo: "Male",
data_exp: "06/12/2026",
numero_passaporte: "N2123376",
codigo_discagem: "244",
numero_telefone: "957876543",
email: "beneditootnielb@[Link]",
},
},
];
function criarPainel() {
const painel = [Link]("div");
[Link] = "painel-preenchimento";
[Link] = `
position: fixed;
top: 10px;
right: 20%;
width: auto;
max-width: 300px;
background: rgba(0, 0, 0, 0.8);
color: white;
border-radius: 5px;
z-index: 9999;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
padding: 10px;
font-family: Arial, sans-serif;
display: flex;
flex-wrap: wrap;
gap: 5px;
justify-content: center;
`;

[Link]((perfil) => {
const button = [Link]("button");
[Link] = [Link];
[Link] = `
padding: 5px 10px;
border: none;
border-radius: 5px;
font-size: 12px;
cursor: pointer;
background-color: #03b131;
color: white;
font-weight: bold;
`;
[Link]("click", () => preencherCampos(getCampos(),
[Link]));
[Link](button);
});

[Link](painel);
}

function getCampos() {
return [Link](
[Link](campos).map(([key, selector]) => [key,
[Link](selector)])
);
}

function atualizarCampo(campo, valor) {


if (campo) {
[Link] = valor || "";
[Link](new Event("input", { bubbles: true }));
[Link](new Event("change", { bubbles: true }));
}
}

function preencherCampos(campos, dados) {


[Link](dados).forEach(([key, value]) => {
if (key === "nacionalidade" || key === "sexo") {
selecionarOpcaoPorTexto(campos[key], value);
} else {
atualizarCampo(campos[key], value);
}
});
}

function selecionarOpcaoPorTexto(campo, texto) {


if (!campo) {
[Link]("Campo não encontrado para selecionar opção.");
return;
}

// Abrir o dropdown
[Link]();

// Aguardar o dropdown abrir e localizar a opção


setTimeout(() => {
const opcoes = [...[Link]("mat-option .mat-option-
text")];
const opcao = [Link](
(opt) => [Link]().toLowerCase() ===
[Link]().toLowerCase()
);

if (opcao) {
[Link]();
} else {
[Link]("Opção com texto ","${texto}"," não encontrada.");
}
}, 500);
}

criarPainel();
})();

Você também pode gostar