-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
63 lines (55 loc) · 2 KB
/
index.js
File metadata and controls
63 lines (55 loc) · 2 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
import * as dotenv from "dotenv";
import { DateTime, Settings } from "luxon"; // Not needed maybe?
import { getGithubStats, updateReadme } from "./lib/github.js";
import chalk from "chalk";
import { formatDoc } from "./lib/fomratting.js";
import { getWakaStats } from "./lib/waka.js";
import { stringify } from "querystring";
dotenv.config();
let wakatime_api_key = process.env.WAKATIME_API_KEY;
let gh_token = process.env.GH_TOKEN;
let settings = {
showShortInfo: process.env.SHOW_SHORT_INFO,
showCommits: process.env.SHOW_COMITS,
showDayOfWeek: process.env.SHOW_DAY_OF_WEEK,
showBreakDown: process.env.SHOW_BREAK_DOWN,
showTimeZone: process.env.SHOW_TIMEZONE,
showEditors: process.env.SHOW_EDITORS,
showLanguages: process.env.SHOW_LANGUAGES,
showOS: process.env.SHOW_OS,
showHosts: process.env.SHOW_HOSTS,
showLanguagePerRepo: process.env.SHOW_LANGUAGE_PER_REPO,
showProjects: process.env.SHOW_PROJECTS,
excludeProjects: process.env.EXCLUDE_PROJECT,
graph: ["█░", 25],
entryPoints: {
start: "<!--START_SECTION:devStats-->",
end: "<!--END_SECTION:devStats-->",
},
};
async function start() {
let devStats = {
github: {},
wakatime: {},
currentDate: undefined,
};
try {
if (wakatime_api_key == undefined) throw "No WakaTime Api Key Provided";
if (gh_token == undefined) throw "No Github Token Provided";
console.log(chalk.white.bold("WakaStats"));
devStats.wakatime = await getWakaStats(wakatime_api_key);
devStats.github = await getGithubStats(devStats.wakatime.timezone, gh_token);
Settings.defaultZoneName = devStats.wakatime.timezone;
devStats.currentDate = DateTime.local();
if (settings.excludeProjects) {
settings.excludeProjects = settings.excludeProjects.split(", ");
settings.excludeProjects = settings.excludeProjects.map((project) => project.toLowerCase());
}
let formatted = await formatDoc(devStats, settings);
console.log(formatted);
updateReadme(gh_token, devStats.github.userInfo, settings.entryPoints, formatted);
} catch (e) {
console.log(e);
}
}
start();