@@ -4,8 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
44} ;
55Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
66exports . ma = void 0 ;
7+ const utils_1 = __importDefault ( require ( "src/utils/utils" ) ) ;
78const validation_1 = __importDefault ( require ( "../validations/validation" ) ) ;
8- const puppeteer_1 = __importDefault ( require ( "puppeteer " ) ) ;
9+ const form_data_1 = __importDefault ( require ( "form-data " ) ) ;
910class Ma {
1011 constructor ( ) {
1112 this . index = async ( req , res ) => {
@@ -19,43 +20,125 @@ class Ma {
1920 res . status ( 200 ) . json ( multas ) ;
2021 } ;
2122 this . scrap = async ( placa , renavam ) => {
22- const browser = await puppeteer_1 . default . launch ( {
23- headless : process . env . NODE_ENV === 'production' ? 'new' : false ,
24- slowMo : process . env . NODE_ENV === 'production' ? 0 : 50 ,
25- timeout : 5000 ,
26- args : [
27- '--no-sandbox' ,
28- '--disable-setuid-sandbox' ,
29- '--disable-dev-shm-usage' ,
30- '--disable-accelerated-2d-canvas' ,
31- ]
32- } ) ;
33- const page = await browser . newPage ( ) ;
34- await page . goto ( `${ process . env . MA_URL } ` ) ;
35- const placaSelector = '#placa' ;
36- const renavamSelector = '#renavam' ;
37- const linkPadraoSelector = '.link-padrao' ;
38- const buttonsSelector = '#btn-veiculo' ;
39- const inputPlaca = await page . $ ( placaSelector ) ;
40- const inputRenavam = await page . $ ( renavamSelector ) ;
41- await ( inputPlaca === null || inputPlaca === void 0 ? void 0 : inputPlaca . type ( placa ) ) ;
42- await ( inputRenavam === null || inputRenavam === void 0 ? void 0 : inputRenavam . type ( renavam ) ) ;
43- //buttonSubmit remove disabled
44- const button = await page . $ ( buttonsSelector ) ;
45- //remove disabled
46- await page . evaluate ( ( button ) => {
47- button . removeAttribute ( 'disabled' ) ;
48- } , button ) ;
49- await ( button === null || button === void 0 ? void 0 : button . click ( ) ) ;
50- //get value from alert alert-danger alert-dismissible show
51- const alertDanger = await page . $ ( '.alert-danger' ) ;
52- const alertDangerText = await page . evaluate ( ( alertDanger ) => {
53- return alertDanger . textContent ;
54- } , alertDanger ) ;
55- if ( alertDangerText ) {
56- return { message : alertDangerText } ;
23+ let data = new form_data_1 . default ( ) ;
24+ data . append ( 'placa' , placa ) ;
25+ data . append ( 'renavam' , renavam ) ;
26+ const payload = await utils_1 . default . request ( `${ process . env . MA_URL } ` , 'POST' , {
27+ 'Accept-Encoding' : 'gzip' ,
28+ 'User-Agent' : 'okhttp/3.12.12' ,
29+ 'Accept' : 'application/json'
30+ } , data ) ;
31+ if ( payload . includes ( 'alert alert-danger' ) ) {
32+ let contentFromHtml = payload . split ( '<div class="alert alert-danger alert-dismissible show" role="alert">' ) [ 1 ] ;
33+ contentFromHtml = contentFromHtml . split ( '\r\n' ) [ 1 ] . trim ( ) ;
34+ return { message : contentFromHtml } ;
5735 }
58- return { placa, renavam } ;
36+ // payload contein
37+ // <input type="hidden" name="idAcesso" id="idAcesso" value="19353678" />
38+ // [1] <input type="hidden" name="placa" id="placa" value="OTL4C21" />
39+ // [1] <input type="hidden" name="renavam" id="renavam" value="513200223" />
40+ // [1] <input type="hidden" name="chassi" id="chassi" value="9C2JC4830DR018207" />
41+ // [1] <input type="hidden" name="idVeiculo" id="idVeiculo" value="1319444" />
42+ // [1] <input type="hidden" name="documentoProprietario" id="documentoProprietario" value="80895654768">
43+ const idAcesso = payload . split ( '<input type="hidden" name="idAcesso" id="idAcesso" value="' ) [ 1 ] . split ( '"' ) [ 0 ] ;
44+ const idVeiculo = payload . split ( '<input type="hidden" name="idVeiculo" id="idVeiculo" value="' ) [ 1 ] . split ( '"' ) [ 0 ] ;
45+ const documentoProprietario = payload . split ( '<input type="hidden" name="documentoProprietario" id="documentoProprietario" value="' ) [ 1 ] . split ( '"' ) [ 0 ] ;
46+ const chassi = payload . split ( '<input type="hidden" name="chassi" id="chassi" value="' ) [ 1 ] . split ( '"' ) [ 0 ] ;
47+ // payload contein
48+ // <table class="table table-striped table-sm table-bordered table-hover">
49+ // <tbody><tr>
50+ // <td>
51+ // <div class="text-muted">Placa</div>
52+ // OTL4C21
53+ // </td>
54+ // <td>
55+ // <div class="text-muted">Renavam</div>
56+ // 513200223
57+ // </td>
58+ // <td>
59+ // <div class="text-muted">Placa Anterior</div>
60+ // OTL4C21/PA
61+ // </td>
62+ // <td>
63+ // <div class="text-muted ">Tipo</div>
64+ // 3 - MOTONETA
65+ // </td>
66+ // <td colspan="2">
67+ // <div class="text-muted ">Carroceria</div>
68+ // 999 - NAO APLICAVEL/NENHUMA
69+ // </td>
70+ // <td>
71+ // <div class="text-muted ">Espécie</div>
72+ // 1 - PASSAGEIRO
73+ // </td>
74+ // </tr>
75+ // <tr>
76+ // <td colspan="7">
77+ // <div class="text-muted">Nome do proprietário</div>
78+ // ANTONIO CARLOS GERA
79+ // </td>
80+ // </tr>
81+ // <tr>
82+ // <td colspan="2">
83+ // <div class="text-muted">Marca/Modelo</div>
84+ // 2009 - HONDA/BIZ 125 EX
85+ // </td>
86+ // <td>
87+ // <div class="text-muted">Cor</div>
88+ // 4 - BRANCA
89+ // </td>
90+ // <td>
91+ // <div class="text-muted">Categoria</div>
92+ // 1 - PARTICULAR
93+ // </td>
94+ // <td>
95+ // <div class="text-muted">Lugares</div>
96+ // 2
97+ // </td>
98+ // <td>
99+ // <div class="text-muted">Potência</div>
100+ // </td>
101+ // <td>
102+ // <div class="text-muted">Combustível</div>
103+ // 16 - ALCOOL/GASOLINA
104+ // </td>
105+ // </tr>
106+ // <tr>
107+ // <td colspan="4">
108+ // <div class="text-muted">Licenciado até</div>
109+ // 2023 em 17/05/2023, Licenciamento Anual (CRLV emitido por DETRAN\ServicosDetran)(Via 1)
110+ // </td>
111+ // <td class="text-center" colspan="2">
112+ // <font style="color: #015f85; font-weight: bold;">CRLV ELETRONICO 2023</font> <br> <img src="/imagens/impressora.png" style="cursor:pointer !important;" onclick="ConsultaCRLVe();">
113+ // </td>
114+ // <td>
115+ // <div class="text-muted">Adquirido em</div>
116+ // 08/02/2021
117+ // </td>
118+ // </tr>
119+ // <tr>
120+ // <td colspan="7">
121+ // <div class="text-muted">Informação da financeira via SNG - Sistema Nacional de Gravame</div>
122+ // Nenhuma informação pendente até esta data
123+ // </td>
124+ // </tr>
125+ // <tr>
126+ // <td colspan="7" class="">
127+ // <div class="text-muted">Impedimentos</div>
128+ // Nenhum impedimento registrado até esta data
129+ // </td>
130+ // </tr>
131+ // <tr>
132+ // <td colspan="7">
133+ // <div class="text-muted">Informações Adicionais</div>
134+ // Nenhuma informação adicional até esta data
135+ // </td>
136+ // </tr>
137+ // </tbody></table>
138+ //payload corpo_2049 contein table
139+ // const contentFromDivCorpo2049 = $('table')
140+ const multas = [ ] ;
141+ return { multas : multas , placa : placa , renavam : renavam } ;
59142 } ;
60143 }
61144}
0 commit comments