/
exame-negocios.js
95 lines (75 loc) · 2.08 KB
/
exame-negocios.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
function postProcess(output, input) {
const currentDate = new Date().toString();
const parseMonth = (monthPT) => {
switch(monthPT.toLowerCase()) {
case 'jan':
return 1;
case 'fev':
return 2;
case 'mar':
return 3;
case 'abr':
return 4;
case 'mai':
return 5;
case 'jun':
return 6;
case 'jul':
return 7;
case 'ago':
return 8;
case 'set':
return 9;
case 'out':
return 10;
case 'nov':
return 11;
case 'dez':
return 12;
default:
return 1 + new Date().getMonth();
}
}
const parseDate = (dateTime) => {
if(dateTime) {
// 26 fev 2018, 18h21
let date, time, hours, minutes, day, month, year;
[date, time] = dateTime.split(', ');
[day, month, year] = date.split(' ');
[hours, minutes] = time.split('h');
let formattedDate = `${parseMonth(month)}/${day}/${year}`;
let formattedDateTime = `${formattedDate} ${hours}:${minutes} GMT-0200`;
return new Date(formattedDateTime).toString();
}
return new Date().toString();
}
const processArticle = (article) => {
if(!article.link || !article.title) {
return {valid: false}
}
let pubdate;
if(article.pubdate) {
pubdate = parseDate(article.pubdate);
}
else {
pubdate = currentDate;
}
let description = article.description || "";
let image = article.image || "";
article.pubdate = pubdate;
article.date = currentDate;
article.author = "Exame Negócios";
article.valid = true;
article.summary = description;
article.description = description;
article.image = image;
return article;
}
let processedArticles = output.data.articles.map(processArticle);
if(output.data.highlights && output.data.highlights.length > 0) {
const highlights = output.data.highlights.map(processArticle);
processedArticles = [...processedArticles, ...highlights]
}
output.data.articles = processedArticles;
return output;
}