Skip to content

Commit 4f4e7d7

Browse files
authored
Merge pull request #39 from ianvizarra/dev
Refactored Core Tracker lib
2 parents eee8df7 + 75ab822 commit 4f4e7d7

File tree

5 files changed

+546
-274
lines changed

5 files changed

+546
-274
lines changed
File renamed without changes.

bin/util/helper.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
const ansi = require("ansi-styles");
2+
3+
const color = {
4+
tblclr: (border) => ansi.cyan.open + border + ansi.cyan.close,
5+
white: (txt) => ansi.white.open + txt + ansi.white.close,
6+
black: (txt) => ansi.black.open + txt + ansi.black.close,
7+
green: (txt) => ansi.green.open + txt + ansi.green.close,
8+
cyan: (txt) => ansi.cyan.open + txt + ansi.cyan.close,
9+
magenta: (txt) => ansi.magenta.open + txt + ansi.magenta.close,
10+
yellow: (txt) => ansi.yellow.open + txt + ansi.yellow.close,
11+
red: (txt) => ansi.red.open + txt + ansi.red.close,
12+
cyanBright: (txt) => ansi.cyanBright.open + txt + ansi.cyanBright.close,
13+
magentaBright: (txt) =>
14+
ansi.magentaBright.open + txt + ansi.magentaBright.close,
15+
redBright: (txt) => ansi.redBright.open + txt + ansi.redBright.close,
16+
greenBright: (txt) => ansi.greenBright.open + txt + ansi.greenBright.close,
17+
cyanBG: (txt) => ansi.bgCyan.open + txt + ansi.bgCyan.close,
18+
};
19+
exports.color = color;
20+
21+
exports.txt = {
22+
line: "-".repeat(60),
23+
tab: " ",
24+
space: " ",
25+
br: "\n",
26+
};
27+
28+
exports.formatNumber = (value) =>
29+
value.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
30+
exports.ucfirst = (string) => string.charAt(0).toUpperCase() + string.slice(1);
31+
32+
exports.table = {
33+
borders: {
34+
top: color.tblclr("═"),
35+
"top-mid": color.tblclr("╤"),
36+
"top-left": color.tblclr("╔"),
37+
"top-right": color.tblclr("╗"),
38+
bottom: color.tblclr("═"),
39+
"bottom-mid": color.tblclr("╧"),
40+
"bottom-left": color.tblclr("╚"),
41+
"bottom-right": color.tblclr("╝"),
42+
left: color.tblclr("║"),
43+
"left-mid": color.tblclr("╟"),
44+
mid: color.tblclr("─"),
45+
"mid-mid": color.tblclr("┼"),
46+
right: color.tblclr("║"),
47+
"right-mid": color.tblclr("╢"),
48+
middle: color.tblclr("│"),
49+
},
50+
col5: (txt) => {
51+
return { colSpan: 5, content: txt };
52+
},
53+
};

bin/util/label.js

Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
const say = require("../../lib/sayings/threads.json"); // sayings
2+
const { color, txt } = require("./helper");
3+
const pkg = require("../../package.json"); // package.json info
4+
const { space, line, br, tab } = txt;
5+
6+
const randomSay = () => say[Math.floor(Math.random() * say.length)];
7+
8+
exports.randomSay = randomSay;
9+
10+
const source = "Source: https://www.worldometers.info/coronavirus/",
11+
repo = "Code: https://github.com/warengonzaga/covid19-tracker-cli",
12+
help = "Help: Try to append the URL with /help to learn more...",
13+
bmcurl = "warengonza.ga/coffee4dev",
14+
twitterhandle = "@warengonzaga",
15+
twitterhashtag = "#covid19trackercli",
16+
bmc = "(Buy Me A Coffee) ",
17+
bmcline = "Love this project? Help us to help others by means of coffee!",
18+
twitterline = "Follow me on twitter for more updates!",
19+
gcashNum = "+639176462753",
20+
ansiBMC = color.redBright("(Buy Me A Coffee) " + bmcurl),
21+
ansiTwitter =
22+
color.cyanBG(color.black(twitterhandle)) +
23+
space +
24+
color.cyanBG(color.black(twitterhashtag)),
25+
gCash = "(GCash) ",
26+
ansiGCash = color.cyan(gCash + gcashNum),
27+
title = {
28+
global: "COVID-19 Tracker CLI v" + pkg.version + " - Global Update",
29+
country: (name) =>
30+
"COVID-19 Tracker CLI v" + pkg.version + " - " + name + " Update",
31+
globalHistory:
32+
"COVID-19 Tracker CLI v" + pkg.version + " - Global Historical Chart",
33+
history: (name) =>
34+
`COVID-19 Tracker CLI v ${pkg.version} - ${name} Historical Chart`,
35+
},
36+
asOfDate = (asof, currentdate) =>
37+
"As of " + asof.toLocaleString() + " [Date:" + currentdate + "]",
38+
footerOne = br + br + " " + line + br + " " + bmcline + br + " ",
39+
footerTwo = br + " " + line + br + " " + twitterline + br + " ",
40+
defaultFooter = footerOne + ansiBMC + footerTwo + ansiTwitter + br + br,
41+
specialFooter =
42+
footerOne +
43+
ansiGCash +
44+
br +
45+
" " +
46+
ansiBMC +
47+
footerTwo +
48+
ansiTwitter +
49+
br +
50+
br,
51+
plainDefaultFooter =
52+
br +
53+
tab +
54+
line +
55+
br +
56+
tab +
57+
bmcline +
58+
br +
59+
tab +
60+
bmc +
61+
bmcurl +
62+
br +
63+
tab +
64+
line +
65+
br +
66+
tab +
67+
twitterline +
68+
br +
69+
tab +
70+
twitterhandle +
71+
space +
72+
twitterhashtag +
73+
br +
74+
br,
75+
plainCountryDefaultFooter =
76+
br +
77+
tab +
78+
line +
79+
br +
80+
tab +
81+
bmcline +
82+
br +
83+
tab +
84+
bmc +
85+
bmcurl +
86+
br +
87+
tab +
88+
line +
89+
br +
90+
tab +
91+
twitterline +
92+
br +
93+
tab +
94+
twitterhandle +
95+
space +
96+
twitterhashtag +
97+
br +
98+
br,
99+
plainCountrySpecialFooter =
100+
br +
101+
tab +
102+
line +
103+
br +
104+
tab +
105+
bmcline +
106+
br +
107+
tab +
108+
gCash +
109+
gcashNum +
110+
br +
111+
tab +
112+
bmc +
113+
bmcurl +
114+
br +
115+
tab +
116+
line +
117+
br +
118+
tab +
119+
twitterline +
120+
br +
121+
tab +
122+
twitterhandle +
123+
space +
124+
twitterhashtag +
125+
br +
126+
br,
127+
manual = `
128+
${line}
129+
COVID-19 Tracker CLI v${pkg.version} by Waren Gonzaga
130+
${line}
131+
132+
Basic Usage:
133+
134+
/<country name> ................... by country stats
135+
ex. /philippines /korea
136+
/<ISO 3166-1 code> ................ by country stats shortcut
137+
ex. /ph /kor
138+
139+
/cmd .............................. if using CMD
140+
/cmd/<country name> ............... by country stats on CMD
141+
/cmd/<ISO 3166-1 code> ............ by country stats shortcut on CMD
142+
143+
/plain or /basic .................. if your cli does not support ANSI encoding
144+
similar to /cmd usage and layout
145+
ex. /plain/philippines or /plain/ph
146+
/basic/philippines or /basic/ph
147+
148+
${line}
149+
150+
ANSI Supported Features
151+
152+
/history/ or /history/all ......... historical chart globally
153+
154+
/history/<country name> ........... historical chart for cases of a country
155+
ex. /history/philippines /history/korea
156+
/history/<ISO 3166-1 code> ........ shortcut historical chart for cases of a country
157+
ex. /history/ph /history/kor
158+
159+
Cases and Deaths is currently available for historical chart.
160+
161+
/history/ph/cases or /history/ph/deaths
162+
163+
${line}
164+
165+
To learn more about the usage... please visit
166+
https://warengonza.ga/covid19-tracker-cli
167+
168+
ISO 3166-1 Code List:
169+
https://warengonza.ga/iso-3166-1-codes
170+
171+
${line}
172+
${repo}
173+
${line}
174+
175+
${randomSay()}
176+
`,
177+
helpMenu =
178+
manual +
179+
br +
180+
tab +
181+
line +
182+
br +
183+
tab +
184+
bmcline +
185+
br +
186+
tab +
187+
bmc +
188+
bmcurl +
189+
br +
190+
tab +
191+
txt.line +
192+
br +
193+
tab +
194+
twitterline +
195+
br +
196+
tab +
197+
twitterhandle +
198+
space +
199+
twitterhashtag +
200+
br +
201+
br;
202+
203+
exports.labels = {
204+
pkg,
205+
source,
206+
repo,
207+
help,
208+
bmcurl,
209+
twitterhandle,
210+
twitterhashtag,
211+
bmc,
212+
bmcline,
213+
twitterline,
214+
gCash,
215+
gcashNum,
216+
ansiBMC,
217+
ansiTwitter,
218+
ansiGCash,
219+
title,
220+
asOfDate,
221+
footerOne,
222+
footerTwo,
223+
defaultFooter,
224+
specialFooter,
225+
plainDefaultFooter,
226+
plainCountryDefaultFooter,
227+
plainCountrySpecialFooter,
228+
manual,
229+
helpMenu,
230+
};

0 commit comments

Comments
 (0)