-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.ts
96 lines (80 loc) · 3.19 KB
/
index.ts
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
96
async function loadRankStats() {
const response = await fetch(
"https://awesome-github-stats.azurewebsites.net/user-stats/guylepage3/rank"
);
const data = await response.json();
const starTotal = data.userStats.directStars + data.userStats.indirectStars;
const getMorningCommits = (
(30.78250863061 / 100) *
data.userStats.commits
).toFixed(0);
const getLateMorningCommits = (
(45.265493999671 / 100) *
data.userStats.commits
).toFixed(0);
const getAfternoonCommits = (
(21.477889199408 / 100) *
data.userStats.commits
).toFixed(0);
const getEveningCommits = (
(2.4741081703107 / 100) *
data.userStats.commits
).toFixed(0);
let dataScore = (data.score/300000)
let dataScoreRank = (dataScore*100);
const rankDescriptor = (100 - dataScoreRank).toFixed(2);
const lastFetch = data.userStats.lastFetch
const fetchLastFetch = lastFetch.replace("T", " ").slice(0, -14);
const today = new Date();
const endYear = new Date(2024, 11, 29, 23, 59, 59, 999); // Sets day and month
endYear.setFullYear(today.getFullYear()); // Sets year to this year
const msPerDay = 24 * 60 * 60 * 1000; // Number of milliseconds per day
let daysLeft = (endYear.getTime() - today.getTime()) / msPerDay;
daysLeft = Math.round(daysLeft); //returns days left in the year
const dayCount = (365 - daysLeft);
const calcPercent = ((dayCount/365)*100);
const calcPercentGraph = ((calcPercent*0.01)*25);
type ghRank = {
id?: number;
name?: string;
rank?: number;
rank_percent?: string;
top_rank_percent?: string;
score_calc?: string;
stars?: number;
commits?: number;
pull_requests?: number;
issues?: number;
contributed_to?: number;
followers?: number;
fetch_date_time?: number;
days_left?: string;
years_progress?: string;
years_progress_graph?: string;
morning_commits?: string;
lateMorning_commits?: string;
afternoon_commits?: string;
evening_commits?: string;
};
const obj: ghRank = {};
obj.rank = data.level;
obj.rank_percent = dataScoreRank.toFixed(2) + " %";
obj.top_rank_percent = rankDescriptor + " %";
obj.score_calc = parseInt(data.score, 10).toLocaleString() + " / 300,000";
obj.stars = starTotal.toLocaleString();
obj.commits = data.userStats.commits.toLocaleString();
obj.pull_requests = data.userStats.pullRequests.toLocaleString();
obj.issues = data.userStats.issues.toLocaleString();
obj.contributed_to = data.userStats.contributedTo.toLocaleString();
obj.followers = data.userStats.followers.toLocaleString();
obj.fetch_date_time = fetchLastFetch;
obj.days_left = daysLeft + ":" + 365;
obj.years_progress = calcPercent.toFixed(2) + " %";
obj.years_progress_graph = calcPercentGraph.toFixed(0) + " (25)";
obj.morning_commits = parseInt(getMorningCommits, 10).toLocaleString();
obj.lateMorning_commits = parseInt(getLateMorningCommits, 10).toLocaleString();
obj.afternoon_commits = parseInt(getAfternoonCommits, 10).toLocaleString();
obj.evening_commits = parseInt(getEveningCommits, 10).toLocaleString();
document.getElementById("json")!.innerHTML = JSON.stringify(obj, undefined, 2);
}
loadRankStats();