diff options
| author | Fuwn <[email protected]> | 2024-01-18 22:04:37 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-01-18 22:04:37 -0800 |
| commit | 5e795978e750bba9ca920ae2b712a3f5b3d12ebf (patch) | |
| tree | 6b862f717713bb0db59a90f3d90dd91c9e55ef7e | |
| parent | docs(readme): link to anilist for tama (diff) | |
| download | tama-5e795978e750bba9ca920ae2b712a3f5b3d12ebf.tar.xz tama-5e795978e750bba9ca920ae2b712a3f5b3d12ebf.zip | |
feat: recommendations
| -rw-r--r-- | src/bashly.yml | 7 | ||||
| -rw-r--r-- | src/recommend_command.sh | 1 | ||||
| -rwxr-xr-x | tama | 124 |
3 files changed, 126 insertions, 6 deletions
diff --git a/src/bashly.yml b/src/bashly.yml index 1b0e954..b6f3b73 100644 --- a/src/bashly.yml +++ b/src/bashly.yml @@ -47,3 +47,10 @@ commands: required: true help: An anime's episodes dependencies: [head] + - name: recommend + alias: r + args: + - name: id + required: true + help: | + View recommended and similar anime to an anime diff --git a/src/recommend_command.sh b/src/recommend_command.sh new file mode 100644 index 0000000..b8c22f0 --- /dev/null +++ b/src/recommend_command.sh @@ -0,0 +1 @@ +print "/recommendations/${args[id]}" @@ -34,12 +34,13 @@ tama_usage() { echo # :command.usage_commands printf "%s\n" "Commands:" - printf " %s Trending anime\n" "trending" - printf " %s Popular anime\n" "popular " - printf " %s Upcoming anime\n" "upcoming" - printf " %s Search for a number of anime\n" "search " - printf " %s Watch an anime by episode\n" "watch " - printf " %s An anime's episodes\n" "episodes" + printf " %s Trending anime\n" "trending " + printf " %s Popular anime\n" "popular " + printf " %s Upcoming anime\n" "upcoming " + printf " %s Search for a number of anime\n" "search " + printf " %s Watch an anime by episode\n" "watch " + printf " %s An anime's episodes\n" "episodes " + printf " %s \n" "recommend" echo # :command.long_usage @@ -290,6 +291,46 @@ tama_episodes_usage() { fi } +# :command.usage +tama_recommend_usage() { + if [[ -n $long_usage ]]; then + printf "tama recommend\n" + echo + + else + printf "tama recommend\n" + echo + + fi + + printf "Alias: r\n" + echo + + printf "%s\n" "Usage:" + printf " tama recommend ID\n" + printf " tama recommend --help | -h\n" + echo + + # :command.long_usage + if [[ -n $long_usage ]]; then + printf "%s\n" "Options:" + + # :command.usage_fixed_flags + printf " %s\n" "--help, -h" + printf " Show this help\n" + echo + + # :command.usage_args + printf "%s\n" "Arguments:" + + # :argument.usage + printf " %s\n" "ID" + printf " View recommended and similar anime to an anime\n" + echo + + fi +} + # :command.normalize_input normalize_input() { local arg flags @@ -430,6 +471,13 @@ tama_episodes_command() { } +# :command.function +tama_recommend_command() { + # src/recommend_command.sh + print "/recommendations/${args[id]}" + +} + # :command.parse_requirements parse_requirements() { # :command.fixed_flags_filter @@ -544,6 +592,13 @@ parse_requirements() { shift $# ;; + recommend | r) + action="recommend" + shift + tama_recommend_parse_requirements "$@" + shift $# + ;; + # :command.command_fallback "") tama_usage >&2 @@ -936,6 +991,62 @@ tama_episodes_parse_requirements() { } +# :command.parse_requirements +tama_recommend_parse_requirements() { + # :command.fixed_flags_filter + while [[ $# -gt 0 ]]; do + case "${1:-}" in + --help | -h) + long_usage=yes + tama_recommend_usage + exit + ;; + + *) + break + ;; + + esac + done + + # :command.command_filter + action="recommend" + + # :command.parse_requirements_while + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?*) + printf "invalid option: %s\n" "$key" >&2 + exit 1 + ;; + + *) + # :command.parse_requirements_case + # :command.parse_requirements_case_simple + if [[ -z ${args['id']+x} ]]; then + + args['id']=$1 + shift + else + printf "invalid argument: %s\n" "$key" >&2 + exit 1 + fi + + ;; + + esac + done + + # :command.required_args_filter + if [[ -z ${args['id']+x} ]]; then + printf "missing required argument: ID\nusage: tama recommend ID\n" >&2 + exit 1 + fi + +} + # :command.initialize initialize() { version="0.1.0" @@ -960,6 +1071,7 @@ run() { "search") tama_search_command ;; "watch") tama_watch_command ;; "episodes") tama_episodes_command ;; + "recommend") tama_recommend_command ;; esac } |