From 24e5f866c054f4e11e62ea5c15262d9b86416dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferdinand=20M=C3=BCtsch?= Date: Mon, 8 Mar 2021 07:09:43 +0100 Subject: [PATCH] feat: allow to customize wakatime range (#874) * chore: allow to customize wakatime data range * docs: document wakatime range parameter docs: add wakatime section to german readme Co-authored-by: Anurag Hazra --- api/wakatime.js | 3 ++- docs/readme_de.md | 29 +++++++++++++++++++++++++++++ readme.md | 3 ++- src/fetchers/wakatime-fetcher.js | 4 ++-- tests/fetchWakatime.test.js | 2 +- 5 files changed, 36 insertions(+), 5 deletions(-) diff --git a/api/wakatime.js b/api/wakatime.js index fcad8282a2b0e..029d64e923dc7 100644 --- a/api/wakatime.js +++ b/api/wakatime.js @@ -26,6 +26,7 @@ module.exports = async (req, res) => { locale, layout, api_domain, + range, border_radius, } = req.query; @@ -36,7 +37,7 @@ module.exports = async (req, res) => { } try { - const stats = await fetchWakatimeStats({ username, api_domain }); + const stats = await fetchWakatimeStats({ username, api_domain, range }); let cacheSeconds = clampValue( parseInt(cache_seconds || CONSTANTS.TWO_HOURS, 10), diff --git a/docs/readme_de.md b/docs/readme_de.md index 696845b65e525..83ba425bdb894 100644 --- a/docs/readme_de.md +++ b/docs/readme_de.md @@ -63,6 +63,7 @@ - [GitHub Statistiken-Karte](#github-statistiken-karte) - [GitHub Extra Pins](#github-extra-pins) - [Top Programmiersprachen-Karte](#top-programmiersprachen-karte) +- [Wakatime Wochen-Statistik](#wakatime-wochen-statistik) - [Erscheinungsbild/Themes](#erscheinungsbildthemes) - [Anpassungen/Personalisierung](#anpassungenpersonalisierung) - [Selber betreiben](#betreibe-es-auf-deiner-eigenen-vercel-instanz) @@ -166,6 +167,16 @@ Du kannst mehrere, mit Kommas separierte, Werte in der bg_color Option angeben, > Sprachennamen sollten uri-escaped sein, wie hier angegeben: [Percent Encoding](https://en.wikipedia.org/wiki/Percent-encoding) > (z.B.: `c++` sollte zu `c%2B%2B` werden, `jupyter notebook` sollte zu `jupyter%20notebook` werden, usw.) +#### Exklusive Optionen der WakaTime-Karte: + +- `hide_title` - _(boolean)_ +- `line_height` - Legt die Zeilenhöhe des Texts fest _(number)_ +- `hide_progress` - Verbirgt die Fortschrittanzeige und Prozentzahl _(boolean)_ +- `custom_title` - Legt einen benutzerdefinierten Titel fest +- `layout` - Wechselt zwischen zwei verschiedenen Layouts: `default` & `compact` +- `api_domain` - Legt eine benutzerdefinierte API Domain fest, z.B. für [Hakatime](https://github.com/mujx/hakatime) oder [Wakapi](https://github.com/muety/wakapi) +- `range` – Fragt eine eine Zeitspanne an, als die standardmäßig in WakaTime hinterlegte, z.B. `last_7_days`. Siehe [WakaTime API Dokumentation](https://wakatime.com/developers#stats). + --- # GitHub Extra Pins @@ -232,6 +243,24 @@ Du kannst die `&layout=compact` Option nutzen, um das Karten Design zu ändern. [![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=anuraghazra&layout=compact)](https://github.com/anuraghazra/github-readme-stats) +# Wakatime Wochen-Statistik + +Ändere `?username=` in den eigenen [Wakatime](https://wakatime.com) Benutzernamen. + +```md +[![willianrod's wakatime stats](https://github-readme-stats.vercel.app/api/wakatime?username=willianrod)](https://github.com/anuraghazra/github-readme-stats) +``` + +### Beispiel + +[![willianrod's wakatime stats](https://github-readme-stats.vercel.app/api/wakatime?username=willianrod)](https://github.com/anuraghazra/github-readme-stats) + +[![willianrod's wakatime stats](https://github-readme-stats.vercel.app/api/wakatime?username=willianrod&hide_progress=true)](https://github.com/anuraghazra/github-readme-stats) + +- Kompaktes Layout + +[![willianrod's wakatime stats](https://github-readme-stats.vercel.app/api/wakatime?username=willianrod&layout=compact)](https://github.com/anuraghazra/github-readme-stats) + --- ### Alle Beispiele diff --git a/readme.md b/readme.md index 929783335e3a9..3fb04c9e3e581 100644 --- a/readme.md +++ b/readme.md @@ -195,7 +195,8 @@ You can provide multiple comma-separated values in bg_color option to render a g - `hide_progress` - Hides the progress bar and percentage _(boolean)_ - `custom_title` - Sets a custom title for the card - `layout` - Switch between two available layouts `default` & `compact` -- `api_domain` - Set a custom api domain for the card +- `api_domain` - Set a custom API domain for the card, e.g. to use services like [Hakatime](https://github.com/mujx/hakatime) or [Wakapi](https://github.com/muety/wakapi) +- `range` – Request a range different from your WakaTime default, e.g. `last_7_days`. See [WakaTime API docs](https://wakatime.com/developers#stats) for list of available options. --- diff --git a/src/fetchers/wakatime-fetcher.js b/src/fetchers/wakatime-fetcher.js index 64bde3a05bc30..55809e2a0ab7b 100644 --- a/src/fetchers/wakatime-fetcher.js +++ b/src/fetchers/wakatime-fetcher.js @@ -1,11 +1,11 @@ const axios = require("axios"); -const fetchWakatimeStats = async ({ username, api_domain }) => { +const fetchWakatimeStats = async ({ username, api_domain, range }) => { try { const { data } = await axios.get( `https://${ api_domain ? api_domain.replace(/[^a-z-.0-9]/gi, "") : "wakatime.com" - }/api/v1/users/${username}/stats?is_including_today=true`, + }/api/v1/users/${username}/stats/${range || ''}?is_including_today=true`, ); return data.data; diff --git a/tests/fetchWakatime.test.js b/tests/fetchWakatime.test.js index 76f48ee0dac59..9ff7cc15f8182 100644 --- a/tests/fetchWakatime.test.js +++ b/tests/fetchWakatime.test.js @@ -105,7 +105,7 @@ describe("Wakatime fetcher", () => { const username = "anuraghazra"; mock .onGet( - `https://wakatime.com/api/v1/users/${username}/stats?is_including_today=true`, + `https://wakatime.com/api/v1/users/${username}/stats/?is_including_today=true`, ) .reply(200, wakaTimeData);