Skip to content

Commit

Permalink
add new state SC
Browse files Browse the repository at this point in the history
  • Loading branch information
jhowbhz committed Sep 23, 2023
1 parent 47d1694 commit 1bcda42
Show file tree
Hide file tree
Showing 21 changed files with 353 additions and 39 deletions.
6 changes: 3 additions & 3 deletions dist/controllers/ALController.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class Al {
const browser = await puppeteer_1.default.launch({
headless: process.env.NODE_ENV === 'production' ? 'new' : false,
slowMo: process.env.NODE_ENV === 'production' ? 0 : 50,
timeout: 5000,
timeout: 10000,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
Expand All @@ -32,7 +32,7 @@ class Al {
]
});
const page = await browser.newPage();
await page.goto(`${process.env.AL_URL}`);
await page.goto(`${process.env.AL_URL}`, { waitUntil: 'networkidle2', timeout: 10000 });
const placaSelector = '#id_placa';
const renavamSelector = '#id_renavam';
const buttonsSelector = 'button[type="submit"]';
Expand Down Expand Up @@ -72,7 +72,7 @@ class Al {
this.checkErros = async (browser, page, placa, renavam) => {
try {
const divErrorSelector = '.error';
const divErrors = await page.waitForSelector(divErrorSelector, { timeout: 5000 });
const divErrors = await page.waitForSelector(divErrorSelector, { timeout: 10000 });
const divErrorsHtml = await page.evaluate((divErrors) => divErrors.innerHTML, divErrors);
const errosClear = divErrorsHtml.replace(/(<([^>]+)>)/gi, "").replace(/\n\t/g, "").trim();
await browser.close();
Expand Down
2 changes: 1 addition & 1 deletion dist/controllers/MAController.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class Ma {
let data = new form_data_1.default();
data.append('placa', placa);
data.append('renavam', renavam);
const payload = await utils_1.default.request(`${process.env.MA_URL}`, { waitUntil: 'networkidle2', timeout: 5000 }'POST', {
const payload = await utils_1.default.request(`${process.env.MA_URL}`, 'POST', {
'Accept-Encoding': 'gzip',
'User-Agent': 'okhttp/3.12.12',
'Accept': 'application/json'
Expand Down
4 changes: 2 additions & 2 deletions dist/controllers/MGController.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class Mg {
const browser = await puppeteer_1.default.launch({
headless: process.env.NODE_ENV === 'production' ? 'new' : false,
slowMo: process.env.NODE_ENV === 'production' ? 0 : 50,
timeout: 5000,
timeout: 10000,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
Expand All @@ -32,7 +32,7 @@ class Mg {
]
});
const page = await browser.newPage();
await page.goto(`${process.env.MG_URL}`);
await page.goto(`${process.env.MG_URL}`, { waitUntil: 'networkidle2', timeout: 10000 });
const placaSelector = '#placa';
const renavamSelector = '#renavam';
const linkPadraoSelector = '.link-padrao';
Expand Down
2 changes: 1 addition & 1 deletion dist/controllers/MSController.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class Ms {
'Content-Type': 'text/plain',
};
let data = `AEANPA10 ${placa} 1${renavam}`;
const request = await utils_1.default.request(`${process.env.MS_URL}`, { waitUntil: 'networkidle2', timeout: 5000 }'POST', headers, data);
const request = await utils_1.default.request(`${process.env.MS_URL}`, 'POST', headers, data);
const dataResponse = {};
const response = await request;
// RENAAM INFORMADO NAO PERTENCE
Expand Down
21 changes: 13 additions & 8 deletions dist/controllers/PAController.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,21 +38,26 @@ class Pa {
const renavam = req.body.renavam;
const webhook = req.body.webhook;
const twocaptchaapikey = req.body.twocaptchaapikey;
if (!twocaptchaapikey) {
return res.status(400).json({ message: 'Informe a chave da API do 2captcha para esse DETRAN, pois o mesmo possui captcha.' });
}
const errors = validation_1.default.generic(placa, renavam);
if (errors) {
return res.status(400).json(errors);
}
const multas = await this.scrap(placa, renavam, twocaptchaapikey, webhook);
res.status(200).json(multas);
if (!twocaptchaapikey) {
return res.status(400).json({ message: 'Informe a chave da API do 2captcha para esse DETRAN, pois o mesmo possui captcha.' });
}
await this.scrap(placa, renavam, twocaptchaapikey, webhook);
res.status(200).json({
placa,
renavam,
message: 'As multas serão enviadas para o webhook',
webhook: webhook
});
};
this.scrap = async (placa, renavam, twocaptchaapikey, webhook) => {
const browser = await puppeteer_1.default.launch({
headless: process.env.NODE_ENV === 'production' ? 'new' : false,
slowMo: process.env.NODE_ENV === 'production' ? 0 : 50,
timeout: 5000,
timeout: 10000,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
Expand All @@ -61,7 +66,7 @@ class Pa {
]
});
const page = await browser.newPage();
await page.goto(`${process.env.PA_URL}`);
await page.goto(`${process.env.PA_URL}`, { waitUntil: 'networkidle2', timeout: 10000 });
// forms
const inputPlacaSelect = await page.$('input[maxlength="7"]');
const inputRenavamSelect = await page.$('input[maxlength="11"]');
Expand All @@ -86,7 +91,7 @@ class Pa {
inputSubmitSelect === null || inputSubmitSelect === void 0 ? void 0 : inputSubmitSelect.click();
const multas = [];
try {
await page.waitForSelector("table[class='stilo_dataTable']", { timeout: 5000 });
await page.waitForSelector("table[class='stilo_dataTable']", { timeout: 10000 });
const ths = await page.$$('table[class="stilo_dataTable"] th');
const trs = await page.$$('table[class="stilo_dataTable"] tbody tr');
await Promise.all(trs.map(async (tr, i) => {
Expand Down
4 changes: 2 additions & 2 deletions dist/controllers/PBController.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class PB {
const browser = await puppeteer_1.default.launch({
headless: process.env.NODE_ENV === 'production' ? 'new' : false,
slowMo: process.env.NODE_ENV === 'production' ? 0 : 50,
timeout: 5000,
timeout: 10000,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
Expand All @@ -35,7 +35,7 @@ class PB {
const tablesMultas = 'table[width="648"]';
const tablesDados = 'table[width="650"]';
const tablesPagamento = 'table[width="647"]';
await page.goto(`${process.env.PB_URL}/BBDT_MULTABOLETO_CLIENTE/MultaBoleto?placa=${placa}&renavam=${renavam}&opcao=I&display=web&redirect=ok`);
await page.goto(`${process.env.PB_URL}/BBDT_MULTABOLETO_CLIENTE/MultaBoleto?placa=${placa}&renavam=${renavam}&opcao=I&display=web&redirect=ok`, { waitUntil: 'networkidle2', timeout: 10000 });
// <td height="92"><div align="center">
// <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
// <a name=" CODATA-Cia.Proc.de Dados do Estado da Paraiba "></a>
Expand Down
4 changes: 2 additions & 2 deletions dist/controllers/PIController.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ class Pi {
const browser = await puppeteer_1.default.launch({
headless: process.env.NODE_ENV === 'production' ? 'new' : false,
slowMo: process.env.NODE_ENV === 'production' ? 0 : 50,
timeout: 5000,
timeout: 10000,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
Expand All @@ -66,7 +66,7 @@ class Pi {
]
});
const page = await browser.newPage();
await page.goto(`${process.env.PI_URL}`);
await page.goto(`${process.env.PI_URL}`, { waitUntil: 'networkidle2', timeout: 10000 });
//form itens
const inputPlacaSelect = await page.$('#inputPlaca');
const inputRenavamSelect = await page.$('#inputRenavam');
Expand Down
4 changes: 2 additions & 2 deletions dist/controllers/RRController.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Rr {
const browser = await puppeteer_1.default.launch({
headless: process.env.NODE_ENV === 'production' ? 'new' : false,
slowMo: process.env.NODE_ENV === 'production' ? 0 : 50,
timeout: 5000,
timeout: 10000,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
Expand All @@ -31,7 +31,7 @@ class Rr {
]
});
const page = await browser.newPage();
await page.goto(`${process.env.RR_URL}`);
await page.goto(`${process.env.RR_URL}`, { waitUntil: 'networkidle2', timeout: 10000 });
const inputPlacaSelect = await page.$('input[placeholder="BWC1140"]');
const inputRenavamSelect = await page.$('input[placeholder="12345678910"]');
const buttonSubmit = await page.$('button[id="submeter"]');
Expand Down
25 changes: 25 additions & 0 deletions dist/controllers/SCController.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { Request, Response } from 'express';
declare class SCController {
index: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
scrap: (placa: string, renavam: string, twocaptchaapikey: string) => Promise<{
placa: string;
renavam: string;
multas: never[];
message: string;
error?: undefined;
} | {
placa: string;
renavam: string;
multas: any;
message?: undefined;
error?: undefined;
} | {
placa: string;
renavam: string;
multas: never[];
error: any;
message?: undefined;
}>;
}
export declare const sc: SCController;
export {};
Loading

0 comments on commit 1bcda42

Please sign in to comment.