mirror of
https://github.com/KevinMidboe/waka-box.git
synced 2025-10-28 17:30:21 +00:00
Update gist with WakaTime stats
This commit is contained in:
26
index.js
26
index.js
@@ -1,7 +1,6 @@
|
||||
require("dotenv").config();
|
||||
const { WakaTimeClient, RANGE } = require("wakatime-client");
|
||||
const Octokit = require("@octokit/rest");
|
||||
const wordwrap = require("wordwrap");
|
||||
|
||||
const {
|
||||
GIST_ID: gistId,
|
||||
@@ -17,13 +16,10 @@ const octokit = new Octokit({
|
||||
|
||||
async function main() {
|
||||
const stats = await wakatime.getMyStats({ range: RANGE.LAST_7_DAYS });
|
||||
console.log(stats.data.languages);
|
||||
// await updateGist(tweet);
|
||||
await updateGist(stats);
|
||||
}
|
||||
|
||||
async function updateGist(tweet) {
|
||||
const wrap = wordwrap(46);
|
||||
|
||||
async function updateGist(stats) {
|
||||
let gist;
|
||||
try {
|
||||
gist = await octokit.gists.get({ gist_id: gistId });
|
||||
@@ -32,18 +28,24 @@ async function updateGist(tweet) {
|
||||
}
|
||||
// Get original filename to update that same file
|
||||
const filename = Object.keys(gist.data.files)[0];
|
||||
const parsedDate = new Date(tweet.created_at);
|
||||
const timeAgo = formatDistanceStrict(parsedDate, new Date());
|
||||
|
||||
const lines = [];
|
||||
for (let i = 0; i < 5; i++) {
|
||||
const data = stats.data.languages[i];
|
||||
const name = data.name.padEnd(10);
|
||||
const percent = data.percent;
|
||||
const time = data.text;
|
||||
|
||||
lines.push(`${name} - ${time}`);
|
||||
}
|
||||
|
||||
try {
|
||||
await octokit.gists.update({
|
||||
gist_id: gistId,
|
||||
files: {
|
||||
[filename]: {
|
||||
filename: `@${twitterHandle} - ${timeAgo} ago | ❤ ${
|
||||
tweet.favorite_count
|
||||
} | 🔁 ${tweet.retweet_count}`,
|
||||
content: wrap(tweet.text)
|
||||
filename: `📊 Weekly development breakdown`,
|
||||
content: lines.join("\n")
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
5
package-lock.json
generated
5
package-lock.json
generated
@@ -919,11 +919,6 @@
|
||||
"execa": "^0.10.0"
|
||||
}
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
|
||||
@@ -8,8 +8,7 @@
|
||||
"@octokit/rest": "^16.18.1",
|
||||
"axios": "^0.18.0",
|
||||
"dotenv": "^7.0.0",
|
||||
"wakatime-client": "^2.0.2",
|
||||
"wordwrap": "^1.0.0"
|
||||
"wakatime-client": "^2.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"husky": "^1.3.1",
|
||||
|
||||
Reference in New Issue
Block a user