Skip to content

Commit

Permalink
📦 NEW: Spinner
Browse files Browse the repository at this point in the history
  • Loading branch information
ahmadawais committed Apr 13, 2021
1 parent 03e067b commit 3ef7ac6
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 158 deletions.
133 changes: 1 addition & 132 deletions data/lahore.json
Original file line number Diff line number Diff line change
@@ -1,132 +1 @@
[
{"no": "#1", "sehar": "04:10 AM", "iftar": "6:32 PM", "date": "2021-04-14"},
{"no": "#2", "sehar": "04:09 AM", "iftar": "6:32 PM", "date": "2021-04-15"},
{"no": "#3", "sehar": "04:07 AM", "iftar": "6:33 PM", "date": "2021-04-16"},
{"no": "#4", "sehar": "04:06 AM", "iftar": "6:34 PM", "date": "2021-04-17"},
{"no": "#5", "sehar": "04:05 AM", "iftar": "6:34 PM", "date": "2021-04-18"},
{"no": "#6", "sehar": "04:03 AM", "iftar": "6:35 PM", "date": "2021-04-19"},
{"no": "#7", "sehar": "04:02 AM", "iftar": "6:36 PM", "date": "2021-04-20"},
{"no": "#8", "sehar": "04:01 AM", "iftar": "6:36 PM", "date": "2021-04-21"},
{"no": "#9", "sehar": "03:59 AM", "iftar": "6:37 PM", "date": "2021-04-22"},
{
"no": "#10",
"sehar": "03:58 AM",
"iftar": "6:38 PM",
"date": "2021-04-23"
},
{
"no": "#11",
"sehar": "03:57 AM",
"iftar": "6:38 PM",
"date": "2021-04-24"
},
{
"no": "#12",
"sehar": "03:55 AM",
"iftar": "6:39 PM",
"date": "2021-04-25"
},
{
"no": "#13",
"sehar": "03:54 AM",
"iftar": "6:40 PM",
"date": "2021-04-26"
},
{
"no": "#14",
"sehar": "03:53 AM",
"iftar": "6:41 PM",
"date": "2021-04-27"
},
{
"no": "#15",
"sehar": "03:51 AM",
"iftar": "6:41 PM",
"date": "2021-04-28"
},
{
"no": "#16",
"sehar": "03:50 AM",
"iftar": "6:42 PM",
"date": "2021-04-29"
},
{
"no": "#17",
"sehar": "03:49 AM",
"iftar": "6:43 PM",
"date": "2021-04-30"
},
{
"no": "#18",
"sehar": "03:48 AM",
"iftar": "6:43 PM",
"date": "2021-05-01"
},
{
"no": "#19",
"sehar": "03:47 AM",
"iftar": "6:44 PM",
"date": "2021-05-02"
},
{
"no": "#20",
"sehar": "03:45 AM",
"iftar": "6:45 PM",
"date": "2021-05-03"
},
{
"no": "#21",
"sehar": "03:44 AM",
"iftar": "6:45 PM",
"date": "2021-05-04"
},
{
"no": "#22",
"sehar": "03:43 AM",
"iftar": "6:46 PM",
"date": "2021-05-05"
},
{
"no": "#23",
"sehar": "03:42 AM",
"iftar": "6:47 PM",
"date": "2021-05-06"
},
{
"no": "#24",
"sehar": "03:41 AM",
"iftar": "6:48 PM",
"date": "2021-05-07"
},
{
"no": "#25",
"sehar": "03:40 AM",
"iftar": "6:48 PM",
"date": "2021-05-08"
},
{
"no": "#26",
"sehar": "03:39 AM",
"iftar": "6:49 PM",
"date": "2021-05-09"
},
{
"no": "#27",
"sehar": "03:38 AM",
"iftar": "6:50 PM",
"date": "2021-05-10"
},
{
"no": "#28",
"sehar": "03:36 AM",
"iftar": "6:50 PM",
"date": "2021-05-11"
},
{
"no": "#29",
"sehar": "03:35 AM",
"iftar": "6:51 PM",
"date": "2021-05-12"
},
{"no": "#30", "sehar": "03:34 AM", "iftar": "6:52 PM", "date": "2021-05-13"}
]
[{"no":"#1","sehar":"04:10 AM","iftar":"6:32 PM","date":"2021-04-14"},{"no":"#2","sehar":"04:09 AM","iftar":"6:32 PM","date":"2021-04-15"},{"no":"#3","sehar":"04:07 AM","iftar":"6:33 PM","date":"2021-04-16"},{"no":"#4","sehar":"04:06 AM","iftar":"6:34 PM","date":"2021-04-17"},{"no":"#5","sehar":"04:05 AM","iftar":"6:34 PM","date":"2021-04-18"},{"no":"#6","sehar":"04:03 AM","iftar":"6:35 PM","date":"2021-04-19"},{"no":"#7","sehar":"04:02 AM","iftar":"6:36 PM","date":"2021-04-20"},{"no":"#8","sehar":"04:01 AM","iftar":"6:36 PM","date":"2021-04-21"},{"no":"#9","sehar":"03:59 AM","iftar":"6:37 PM","date":"2021-04-22"},{"no":"#10","sehar":"03:58 AM","iftar":"6:38 PM","date":"2021-04-23"},{"no":"#11","sehar":"03:57 AM","iftar":"6:38 PM","date":"2021-04-24"},{"no":"#12","sehar":"03:55 AM","iftar":"6:39 PM","date":"2021-04-25"},{"no":"#13","sehar":"03:54 AM","iftar":"6:40 PM","date":"2021-04-26"},{"no":"#14","sehar":"03:53 AM","iftar":"6:41 PM","date":"2021-04-27"},{"no":"#15","sehar":"03:51 AM","iftar":"6:41 PM","date":"2021-04-28"},{"no":"#16","sehar":"03:50 AM","iftar":"6:42 PM","date":"2021-04-29"},{"no":"#17","sehar":"03:49 AM","iftar":"6:43 PM","date":"2021-04-30"},{"no":"#18","sehar":"03:48 AM","iftar":"6:43 PM","date":"2021-05-01"},{"no":"#19","sehar":"03:47 AM","iftar":"6:44 PM","date":"2021-05-02"},{"no":"#20","sehar":"03:45 AM","iftar":"6:45 PM","date":"2021-05-03"},{"no":"#21","sehar":"03:44 AM","iftar":"6:45 PM","date":"2021-05-04"},{"no":"#22","sehar":"03:43 AM","iftar":"6:46 PM","date":"2021-05-05"},{"no":"#23","sehar":"03:42 AM","iftar":"6:47 PM","date":"2021-05-06"},{"no":"#24","sehar":"03:41 AM","iftar":"6:48 PM","date":"2021-05-07"},{"no":"#25","sehar":"03:40 AM","iftar":"6:48 PM","date":"2021-05-08"},{"no":"#26","sehar":"03:39 AM","iftar":"6:49 PM","date":"2021-05-09"},{"no":"#27","sehar":"03:38 AM","iftar":"6:50 PM","date":"2021-05-10"},{"no":"#28","sehar":"03:36 AM","iftar":"6:50 PM","date":"2021-05-11"},{"no":"#29","sehar":"03:35 AM","iftar":"6:51 PM","date":"2021-05-12"},{"no":"#30","sehar":"03:34 AM","iftar":"6:52 PM","date":"2021-05-13"}]
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,16 @@
"get-data": "node ./utils/generateData.js"
},
"dependencies": {
"chalk": "^4.0.0",
"chalk": "^4.1.0",
"cli-alerts": "^1.2.2",
"cli-check-node": "^1.3.0",
"cli-handle-error": "^4.1.0",
"cli-handle-unhandled": "^1.1.0",
"cli-table3": "^0.6.0",
"cli-welcome": "^1.4.0",
"log-symbols": "^3.0.0",
"luxon": "^1.23.0",
"meow": "^6.1.0"
"meow": "^6.1.0",
"ora": "^5.4.0"
}
}
11 changes: 11 additions & 0 deletions utils/formatDate.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module.exports = date => {
const d = new Date(date);
let month = '' + (d.getMonth() + 1);
let day = '' + d.getDate();
const year = d.getFullYear();

if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;

return [year, month, day].join('-');
};
48 changes: 24 additions & 24 deletions utils/generateData.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
const fs = require('fs');
const path = require('path');
const axios = require('axios');
const cheerio = require('cheerio');
let fs = require('fs');
const path = require('path');
const formatDate = require('./formatDate');
const ora = require('ora');
const spinner = ora({text: ''});
const {green: g, red: r, yellow: y, dim: d} = require('chalk');
const alert = require('cli-alerts');

const getData = async () => {
(async () => {
let baseDir = path.join(__dirname, '../data/');
console.log(baseDir);
const BASE_URL =
'https://hamariweb.com/islam/pakistan_ramadan-timings1.aspx?Page=';
let cities = [];
let citiesToSaveInFile = [];

try {
spinner.start(`${y(`FINDING`)} cities in Pakistan …`);
for (let i = 1; i <= 4; i++) {
const response = await axios.get(`${BASE_URL}${i}`);
const $ = cheerio.load(response.data);
Expand All @@ -28,22 +33,26 @@ const getData = async () => {
let href = $(this).attr('href');
citiesToSaveInFile.push(city);
cities.push({
city,
name: city,
timetableLink: `https://hamariweb.com/islam/${href}`
});
});
}

const citiesJSON = JSON.stringify(citiesToSaveInFile);
const dataToWrite = `module.exports = ${citiesJSON}`;

fs.writeFile(`./utils/cities.js`, dataToWrite, 'utf8', err => {
if (err) throw err;
console.log(`File has been saved`);
spinner.succeed(
`${g(`FOUND`)} ${citiesToSaveInFile.length} cities`
);
});

for (let city of cities) {
let data = [];
const cityName = city.name.toUpperCase();

spinner.start(`${y(`DATA`)} for ${cityName} …`);

const timeTableResponse = await axios.get(`${city.timetableLink}`);
const $ = cheerio.load(timeTableResponse.data);
Expand Down Expand Up @@ -75,30 +84,21 @@ const getData = async () => {
});

fs.writeFile(
`${baseDir}/${city.city}.json`,
`${baseDir}/${city.name}.json`,
JSON.stringify(data),
'utf8',
err => {
if (err) throw err;
console.log(`${city.city} File has been saved`);
spinner.succeed(`${g(cityName)}: Data saved`);
}
);
}
} catch (error) {
console.log('There might be problem with API!');
alert({type: `error`, msg: `Something went wrong!`});
}
};

function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();

if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;

return [year, month, day].join('-');
}

getData();
alert({
type: `success`,
msg: `Generated data for ${citiesToSaveInFile.length} cities!`
});
})();

0 comments on commit 3ef7ac6

Please sign in to comment.