From 08cabc39de956326b1529ffb199b75760963bf8e Mon Sep 17 00:00:00 2001 From: osbm Date: Thu, 13 Feb 2025 02:03:03 +0300 Subject: [PATCH] add new wanikani scripts --- home/tmux/default.nix | 12 ++++--- ...ni-tmux.sh => wanikani-current-reviews.sh} | 7 +--- home/tmux/wanikani-level.sh | 23 ++++++++++++ home/tmux/wanikani-progression.sh | 35 +++++++++++++++++++ 4 files changed, 66 insertions(+), 11 deletions(-) rename home/tmux/{wanikani-tmux.sh => wanikani-current-reviews.sh} (56%) create mode 100755 home/tmux/wanikani-level.sh create mode 100755 home/tmux/wanikani-progression.sh diff --git a/home/tmux/default.nix b/home/tmux/default.nix index 59211e5..2378bce 100644 --- a/home/tmux/default.nix +++ b/home/tmux/default.nix @@ -3,9 +3,9 @@ pkgs, ... }: let - wanikani-script = builtins.path { - path = ./wanikani-tmux.sh; - }; + wanikani-current-reviews-script = builtins.path { path = ./scripts/wanikani-current-reviews.sh; }; + wanikani-level-script = builtins.path { path = ./scripts/wanikani-level.sh; }; + wanikani-progression-script = builtins.path { path = ./scripts/wanikani-progression.sh; }; tmux-dracula = pkgs.tmuxPlugins.mkTmuxPlugin rec { pluginName = "dracula"; version = "3.0.0"; @@ -17,7 +17,9 @@ }; postInstall = '' # i am adding my custom widget to the plugin here cp the wanikani.sh script to the plugin directory - cp ${wanikani-script} $target/scripts/wanikani.sh + cp ${wanikani-current-reviews-script} $target/scripts/wanikani-current-reviews.sh + cp ${wanikani-level-script} $target/scripts/wanikani-level.sh + cp ${wanikani-progression-script} $target/scripts/wanikani-progression.sh ''; meta = with pkgs.lib; { homepage = "https://draculatheme.com/tmux"; @@ -41,7 +43,7 @@ in { { plugin = tmux-dracula; extraConfig = '' - set -g @dracula-plugins "custom:wanikani.sh cpu-usage ram-usage gpu-usage battery time" + set -g @dracula-plugins "custom:wanikani-level.sh custom:wanikani-progression.sh custom:wanikani-current-reviews.sh cpu-usage ram-usage gpu-usage battery" set -g @dracula-show-left-icon hostname set -g @dracula-git-show-current-symbol ✓ set -g @dracula-git-no-repo-message "no-git" diff --git a/home/tmux/wanikani-tmux.sh b/home/tmux/wanikani-current-reviews.sh similarity index 56% rename from home/tmux/wanikani-tmux.sh rename to home/tmux/wanikani-current-reviews.sh index dc6ffb3..a6a4b59 100755 --- a/home/tmux/wanikani-tmux.sh +++ b/home/tmux/wanikani-current-reviews.sh @@ -1,17 +1,12 @@ #!/usr/bin/env bash #!nix-shell -i bash -p jq curl -# Description: This script is used to display the current WaniKani review count in the tmux status bar. - -# curl -s -H "Authorization: Bearer 2da24e4a-ba89-4c4a-9047-d08f21e9dd01" "https://api.wanikani.com/v2/assignments?immediately_available_for_review=true" | jq '.total_count' - -# lets store the output of the above command in a variable get_wanikani() { wanikani_reviews=$(curl -s -H "Authorization: Bearer 2da24e4a-ba89-4c4a-9047-d08f21e9dd01" "https://api.wanikani.com/v2/assignments?immediately_available_for_review=true" | jq '.total_count') wanikani_lessons=$(curl -s -H "Authorization: Bearer 2da24e4a-ba89-4c4a-9047-d08f21e9dd01" "https://api.wanikani.com/v2/assignments?immediately_available_for_lessons=true" | jq '.total_count') - echo "WaniKani: $wanikani_reviews reviews, $wanikani_lessons lessons" + echo "$wanikani_reviews reviews $wanikani_lessons lessons" } main() diff --git a/home/tmux/wanikani-level.sh b/home/tmux/wanikani-level.sh new file mode 100755 index 0000000..bdb5f8c --- /dev/null +++ b/home/tmux/wanikani-level.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +#!nix-shell -i bash -p jq curl + +get_wanikani() +{ + wanikani_level_data=$(curl -s -H "Authorization: Bearer 2da24e4a-ba89-4c4a-9047-d08f21e9dd01" "https://api.wanikani.com/v2/level_progressions") + wanikani_level=$(echo $wanikani_level_data | jq '.data[-1].data.level') + wanikani_level_start_date_string=$(echo $wanikani_level_data | jq '.data[-1].data.started_at') + wanikani_level_start_timestamp=$(date -d "${wanikani_level_start_date_string//\"/}" +%s) + current_timestamp=$(date +%s) + difference=$((current_timestamp - wanikani_level_start_timestamp)) + wanikani_level_creation_date=$((difference / 86400)) + echo "At $wanikani_level for $wanikani_level_creation_date days" +} + +main() +{ + get_wanikani + # sleep for 1 hour + sleep 3600 +} + +main \ No newline at end of file diff --git a/home/tmux/wanikani-progression.sh b/home/tmux/wanikani-progression.sh new file mode 100755 index 0000000..d1ba173 --- /dev/null +++ b/home/tmux/wanikani-progression.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +#!nix-shell -i bash -p jq curl python312 + +get_wanikani() +{ + all_subjects=$(curl -s -H "Authorization: Bearer 2da24e4a-ba89-4c4a-9047-d08f21e9dd01" "https://api.wanikani.com/v2/subjects") + total_subjects=$(echo $all_subjects | jq '.total_count') + + total=0 + for i in {0..9} + do + srs_level=$(curl -s -H "Authorization: Bearer 2da24e4a-ba89-4c4a-9047-d08f21e9dd01" "https://api.wanikani.com/v2/assignments?srs_stages=$i" | jq '.total_count') + # echo "SRS level $i: $srs_level" + multiplied=$((srs_level * (i + 1))) + # echo "SRS level $i multiplied: $multiplied" + total=$((total + multiplied)) + # echo "Total: $total" + done + + # now i need the percentage of (total/(total_subjects*10)) + # python will be used for this and i need the result to be %23.234 + python_command="python3 -c 'print(f\"{$total/$total_subjects*10:.3f}\")'" + # echo "Python command: $python_command" + percentage=$(nix-shell -p python312 --run "$python_command") + echo "%$percentage" +} + +main() +{ + get_wanikani + # sleep for 1 hour + sleep 3600 +} + +main \ No newline at end of file