-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
94 lines (79 loc) · 2.88 KB
/
Copy pathapp.js
File metadata and controls
94 lines (79 loc) · 2.88 KB
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
let cards = document.querySelector(".cards");
let articlesGlobe;
let button = document.querySelector("button");
let search = document.querySelector("input");
let url = "https://newsapi.org/v2/everything?q=india&from=2024-05-05&sortBy=publishedAt&apiKey=1f7126e2722548449dabe6f733528847";
let categories = document.querySelector(".categ");
function removeExtraLines(str) {
return str.split('\n').filter(word => word !== '').join(' ');
}
let printCards = () => {
console.log(url);
for (let i = 0; i < articlesGlobe.length; i++) {
let newCard = document.createElement("div");
let pic = document.createElement("img");
pic.src = articlesGlobe[i].urlToImage;
let cardBody = document.createElement("div");
let cardTitle = document.createElement("div");
let p1 = document.createElement("p");
p1.innerText = articlesGlobe[i].title;
cardTitle.appendChild(p1);
cardTitle.classList.add("card-title");
cardBody.appendChild(cardTitle);
let cardText = document.createElement("div");
cardText.innerText = articlesGlobe[i].description;
cardText.classList.add("card-text");
cardBody.appendChild(cardText);
let p2 = document.createElement("p");
p2.innerText = `By on ${articlesGlobe[i].publishedAt.slice(0, 10)} ${articlesGlobe[i].publishedAt.slice(11, 19)} GMT`
p2.classList.add("card-age");
cardBody.appendChild(p2);
let readMore = document.createElement("a");
readMore.innerText = "Read More..";
readMore.href = articlesGlobe[i].url;
cardBody.appendChild(readMore);
newCard.appendChild(pic);
cardBody.classList.add("card-body");
newCard.appendChild(cardBody);
newCard.classList.add("card");
cards.appendChild(newCard);
}
}
let urlSearch = () => {
fetch(url)
.then((res) => {
return res.json();
})
.then((data) => {
articlesGlobe = data.articles;
console.log(articlesGlobe);
})
.catch((err) => {
console.log(err);
});
}
let refresh = (event) => {
let delArts = document.querySelectorAll(".card");
let delArr = [...delArts];
for (art of delArr) {
art.remove();
}
let refSearch;
if (event.target.tagName == "A") {
if (event.target.innerText == "Home") {
refSearch = "India";
} else {
refSearch = "india+" + event.target.innerText;
}
} else {
refSearch = "india+" + search.value;
}
url = `https://newsapi.org/v2/everything?q=${refSearch}&from=2024-05-05&sortBy=publishedAt&apiKey=1f7126e2722548449dabe6f733528847`;
search.value = "";
urlSearch();
setTimeout(printCards, 1000);
}
urlSearch();
button.addEventListener("click", refresh);
categories.addEventListener("click", refresh);
setTimeout(printCards, 1000);