Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- import interval from 'interval-promise';
- import cheerio from 'cheerio';
- import request from 'request-promise';
- require('dotenv').config();
- //Não mexer na função requestBody, somente se necessário
- export function requestBody(config) {
- return new Promise((resolve, reject) => {
- const requestWithProxy = request.defaults({proxy: process.env.PROXY});
- requestWithProxy.get({
- uri: config.url,
- transform: (body) => cheerio.load(body),
- rejectUnauthorized: false,
- headers: {
- 'Authorization': 'Basic ' + Buffer.from(config.username + ":" + config.password).toString('base64')
- }
- })
- .then(($) => {
- resolve(config.callback($));
- })
- .catch((err) => {console.error('Deu errado', err); reject(err)});
- });
- }
- function getTasksByProject(projectName) {
- const configRedmine = {
- url: process.env.URL_BASE + projectName + process.env.URL_FILTRO,
- username: process.env.USERNAME_REDMINE,
- password: process.env.PASSWORD_REDMINE,
- callback: ($) => {
- let tasks = [{}];
- //Caso haja alteração no filtro para tabela, devera ser adicionado aqui também
- $('.list > tbody:nth-child(2) tr').each((i, item) => {
- let task = {
- id: $(item).find('td:nth-child(2)').text().trim(),
- status: $(item).find('td:nth-child(3)').text().trim(),
- type: $(item).find('td:nth-child(4)').text().trim(),
- subject: $(item).find('td:nth-child(5)').text().trim(),
- project: $(item).find('td:nth-child(6)').text().trim(),
- startDate: $(item).find('td:nth-child(7)').text().trim(),
- endDate: $(item).find('td:nth-child(8)').text().trim()
- };
- tasks.push(task);
- });
- return tasks;
- }
- };
- let tasksResult = requestBody(configRedmine)
- .then((data) => {
- return data;
- })
- .catch((err) => {
- console.log('Error: ', err);
- });
- return tasksResult;
- }
- //Executar de forma interval
- interval(async () => {
- console.log('Resultado: ', await getTasksByProject('platbr'));
- }, parseInt(process.env.INTERVAL));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement