home, scripts: use fetchers

This commit is contained in:
Guanran Wang 2023-12-02 17:22:38 +08:00
parent 8264702934
commit f38bf90691
Signed by: nyancat
SSH key fingerprint: SHA256:8oWGKciPALWut/6WA27oFKofX+6Wtc0gQnsefXLQx/8
2 changed files with 14 additions and 114 deletions

View file

@ -1,109 +0,0 @@
#!/bin/sh
# i forgot where did i found this script, wasnt made by me
command -v mpv &>/dev/null || { echo "Error: mpv is not installed." && exit 1; }
# should work unless the link has been changed/ended/taken down...
declare -A urls=(
["study"]="https://youtu.be/jfKfPfyJRdk"
["chill"]="https://youtu.be/rUxyKA_-grg"
["game"]="https://youtu.be/MVPTGNGiI-4"
["fcc"]="https://coderadio-relay-ffm.freecodecamp.org/radio/8010/radio.mp3"
)
declare -A messages=(
["study"]="Playing lofi hip hop radio - beats to relax/study to"
["chill"]="Playing lofi hip hop radio - beats to sleep/chill to"
["game"]="Playing synthwave radio - beats to chill/game to"
["fcc"]="Playing freeCodeCamp code Radio"
)
usage() {
cat <<EOF
Usage: $(basename "$0") [OPTIONS]
Play/Stream lofi music audio, and nothing else
- Amberol (probably)
Options:
-s, --study, relax Play lofi radio beats to relax/study music.
-c, --chill, sleep Play lofi radio beats sleeps/chill music.
-g, --game, synthwave Play lofi synthwave radio beats to chill/game music.
-f, --fcc, fcc, code Play freeCodeCamp Code Radio.
-r, --random Play a random station URL (study, chill, game, fcc).
-v, --video Play with video (default: none, no video for fcc).
-h, --help Display this help message.
EOF
}
set_station() { station_name=$1 && url=${urls[$station_name]}; }
set_station_based_on_time_of_the_day() {
hour=$(date +%_H)
if ((hour >= 22 && hour < 6)); then
set_station "chill"
elif ((hour >= 6 && hour < 12)); then
set_station "study"
elif ((hour >= 18 && hour < 22)); then
set_station "game"
else
set_station "fcc"
fi
}
main() {
local url
local video=false
if [[ $# -eq 0 ]]; then
set_station_based_on_time_of_the_day
else
while [[ $# -gt 0 ]]; do
case $1 in
-s | --study | relax | study)
set_station "study"
shift
;;
-c | --chill | sleep | chill)
set_station "chill"
shift
;;
-g | --game | synthwave | game)
set_station "game"
shift
;;
-f | --fcc | code | fcc)
set_station "fcc"
shift
;;
-r | --random)
random_station_name=$(shuf -n 1 -e "${!urls[@]}")
set_station "$random_station_name"
shift
;;
-v | --video)
video=true
shift
;;
-h | --help)
usage
exit 0
;;
*)
echo "Unknown option: $1" >&2
usage
exit 1
;;
esac
done
fi
echo "${messages[$station_name]}..."
if $video; then
mpv "$url"
else
mpv --no-video "$url"
fi
}
main "$@"

View file

@ -1,8 +1,17 @@
{...}: {
{pkgs, ...}: {
home.sessionPath = ["$HOME/.local/bin"];
home.file.".local/bin" = {
home.file = {
".local/bin" = {
source = ./bin;
recursive = true;
executable = true;
};
".local/bin/lofi" = {
source = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/lime-desu/bin/main/lofi";
hash = "sha256-hT+S/rqOHUYnnFcSDFfQht4l1DGasz1L3wDHKUWLraA=";
};
executable = true;
};
};
}